Index: tools/json_schema_compiler/cc_generator.py |
diff --git a/tools/json_schema_compiler/cc_generator.py b/tools/json_schema_compiler/cc_generator.py |
index fff945762c379dd46c55d3e04446731444d33966..2cc2e5d15aee03e0c3ea1116269f676730150f20 100644 |
--- a/tools/json_schema_compiler/cc_generator.py |
+++ b/tools/json_schema_compiler/cc_generator.py |
@@ -11,11 +11,22 @@ import sys |
import util_cc_helper |
class CCGenerator(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 .cc 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)) |
self._util_cc_helper = ( |
@@ -36,7 +47,7 @@ class CCGenerator(object): |
.Append('#include "%s/%s.h"' % |
(self._namespace.source_file_dir, self._namespace.unix_name)) |
.Cblock(self._type_helper.GenerateIncludes(include_soft=True)) |
- .Concat(self._type_helper.GetRootNamespaceStart()) |
+ .Concat(cpp_util.OpenNamespace(self._cpp_namespace)) |
.Cblock(self._type_helper.GetNamespaceStart()) |
) |
if self._namespace.properties: |
@@ -76,7 +87,7 @@ class CCGenerator(object): |
for event in self._namespace.events.values(): |
c.Cblock(self._GenerateEvent(event)) |
(c.Concat(self._type_helper.GetNamespaceEnd()) |
- .Cblock(self._type_helper.GetRootNamespaceEnd()) |
+ .Cblock(cpp_util.CloseNamespace(self._cpp_namespace)) |
) |
return c |