Pārlūkot izejas kodu

Split out namespaces as this was not yet in c++14.

Bart Hertog 5 gadi atpakaļ
vecāks
revīzija
f3f5bcb3df
2 mainītis faili ar 8 papildinājumiem un 9 dzēšanām
  1. 5 6
      generator/Header_Template.h
  2. 3 3
      generator/protoc-gen-eams.py

+ 5 - 6
generator/Header_Template.h

@@ -517,12 +517,11 @@ class {{ msg.name }} final: public ::EmbeddedProto::MessageInterface
 {% for dependency in dependencies %}
 #include <{{dependency}}>
 {% endfor %}
-{% endif %}
-{% if namespace %}
 
-namespace {{ namespace }}
-{
 {% endif %}
+{% for namespace in namespaces %}
+namespace {{ namespace }} {
+{% endfor %}
 
 {% for enum in enums %}
 {{ enum_macro(enum) }}
@@ -530,8 +529,8 @@ namespace {{ namespace }}
 {% for msg in messages %}
 {{ msg_macro(msg) }}
 {% endfor %}
-{% if namespace %}
+{% for namespace in namespaces %}
 } // End of namespace {{ namespace }}
-{% endif %}
+{% endfor %}
 #endif // _{{filename.upper()}}_H_
 

+ 3 - 3
generator/protoc-gen-eams.py

@@ -303,12 +303,12 @@ def generate_code(request, respones):
         if proto_file.dependency:
             imported_dependencies = [os.path.splitext(dependency)[0] + ".h" for dependency in proto_file.dependency]
 
-        namespace_name = ""
+        namespace_names = ""
         if proto_file.package:
-            namespace_name = proto_file.package.replace(".", "::")
+            namespace_names = proto_file.package.split(".")
 
         try:
-            file_str = template.render(filename=filename_str, namespace=namespace_name,
+            file_str = template.render(filename=filename_str, namespaces=namespace_names,
                                        messages=messages_array[number_of_processed_msg:],
                                        enums=enums_generator, dependencies=imported_dependencies)