Browse Source

Working string and bytes fields.

Bart Hertog 5 năm trước cách đây
mục cha
commit
b3e79f4ddd

+ 2 - 8
generator/support/Field.py

@@ -230,14 +230,11 @@ class FieldString(Field):
         return "LENGTH_DELIMITED"
 
     def get_type(self):
-        return "::EmbeddedProto::FieldString"
+        return "::EmbeddedProto::FieldString<" + self.template_param_str + ">"
 
     def get_short_type(self):
         return "FieldString"
 
-    def get_default_value(self):
-        return "''"
-
     def get_template_parameters(self):
         return [{"name": self.template_param_str, "type": "uint32_t"}]
 
@@ -269,14 +266,11 @@ class FieldBytes(Field):
         return "LENGTH_DELIMITED"
 
     def get_type(self):
-        return "::EmbeddedProto::FieldBytes"
+        return "::EmbeddedProto::FieldBytes<" + self.template_param_str + ">"
 
     def get_short_type(self):
         return "FieldBytes"
 
-    def get_default_value(self):
-        return "0U"
-
     def get_template_parameters(self):
         return [{"name": self.template_param_str, "type": "uint32_t"}]
 

+ 2 - 2
generator/templates/FieldBytes_GetSet.h

@@ -33,10 +33,10 @@ inline void clear_{{field.get_name()}}()
   if(id::{{field.get_variable_id_name()}} == {{field.get_which_oneof()}})
   {
     {{field.get_which_oneof()}} = id::NOT_SET;
-    {{field.get_variable_name()}}.~{{field.get_type()}}();
+    {{field.get_variable_name()}}.~{{field.get_short_type()}}();
   }
 }
-inline {{field.repeated_type}}& mutable_{{field.get_name()}}()
+inline {{field.get_type()}}& mutable_{{field.get_name()}}()
 {
   if(id::{{field.get_variable_id_name()}} != {{field.get_which_oneof()}})
   {

+ 1 - 1
generator/templates/FieldString_GetSet.h

@@ -36,7 +36,7 @@ inline void clear_{{field.get_name()}}()
     {{field.get_variable_name()}}.~{{field.get_short_type()}}();
   }
 }
-inline {{field.repeated_type}}& mutable_{{field.get_name()}}()
+inline {{field.get_type()}}& mutable_{{field.get_name()}}()
 {
   if(id::{{field.get_variable_id_name()}} != {{field.get_which_oneof()}})
   {

+ 1 - 1
test/proto/string_bytes.proto

@@ -49,4 +49,4 @@ message string_or_bytes
     string txt = 1;
     bytes b = 2;
   }
-}
+}