Index: tools/json_schema_compiler/h_generator.py |
diff --git a/tools/json_schema_compiler/h_generator.py b/tools/json_schema_compiler/h_generator.py |
index 43d14f8f7724c75436fd9ec3b4ca031111bb93a6..140670d7d0df34731b2ee9e0defa493f280d1888 100644 |
--- a/tools/json_schema_compiler/h_generator.py |
+++ b/tools/json_schema_compiler/h_generator.py |
@@ -8,11 +8,22 @@ import cpp_util |
import schema_util |
class HGenerator(object): |
+ def __init__(self, type_generator, cpp_namespace): |
+ self._type_generator = type_generator |
+ self._cpp_namespace = cpp_namespace |
+ |
+ def Generate(self, namespace): |
+ return _Generator(namespace, |
+ self._type_generator, |
+ self._cpp_namespace).Generate() |
+ |
+class _Generator(object): |
"""A .h generator for a namespace. |
""" |
- def __init__(self, namespace, cpp_type_generator): |
- self._type_helper = cpp_type_generator |
+ def __init__(self, namespace, cpp_type_generator, cpp_namespace): |
self._namespace = namespace |
+ self._type_helper = cpp_type_generator |
+ self._cpp_namespace = cpp_namespace |
self._target_namespace = ( |
self._type_helper.GetCppNamespaceName(self._namespace)) |
@@ -44,7 +55,7 @@ class HGenerator(object): |
.Append() |
) |
- c.Concat(self._type_helper.GetRootNamespaceStart()) |
+ c.Concat(cpp_util.OpenNamespace(self._cpp_namespace)) |
# TODO(calamity): These forward declarations should be #includes to allow |
# $ref types from other files to be used as required params. This requires |
# some detangling of windows and tabs which will currently lead to circular |
@@ -96,7 +107,7 @@ class HGenerator(object): |
for event in self._namespace.events.values(): |
c.Cblock(self._GenerateEvent(event)) |
(c.Concat(self._type_helper.GetNamespaceEnd()) |
- .Cblock(self._type_helper.GetRootNamespaceEnd()) |
+ .Concat(cpp_util.CloseNamespace(self._cpp_namespace)) |
.Append('#endif // %s' % ifndef_name) |
.Append() |
) |
@@ -242,6 +253,7 @@ class HGenerator(object): |
is_in_container=True))) |
) |
(c.Eblock() |
+ .Append() |
.Sblock(' private:') |
.Append('DISALLOW_COPY_AND_ASSIGN(%(classname)s);') |
.Eblock('};') |
@@ -320,6 +332,7 @@ class HGenerator(object): |
.Cblock(self._GenerateTypes(p.type_ for p in function.params)) |
.Cblock(self._GenerateFields(function.params)) |
.Eblock() |
+ .Append() |
.Sblock(' private:') |
.Append('Params();') |
.Append() |