OLD | NEW |
1 // Protocol Buffers - Google's data interchange format | 1 // Protocol Buffers - Google's data interchange format |
2 // Copyright 2008 Google Inc. All rights reserved. | 2 // Copyright 2008 Google Inc. All rights reserved. |
3 // https://developers.google.com/protocol-buffers/ | 3 // https://developers.google.com/protocol-buffers/ |
4 // | 4 // |
5 // Redistribution and use in source and binary forms, with or without | 5 // Redistribution and use in source and binary forms, with or without |
6 // modification, are permitted provided that the following conditions are | 6 // modification, are permitted provided that the following conditions are |
7 // met: | 7 // met: |
8 // | 8 // |
9 // * Redistributions of source code must retain the above copyright | 9 // * Redistributions of source code must retain the above copyright |
10 // notice, this list of conditions and the following disclaimer. | 10 // notice, this list of conditions and the following disclaimer. |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
51 ~StringFieldGenerator(); | 51 ~StringFieldGenerator(); |
52 | 52 |
53 // implements FieldGenerator --------------------------------------- | 53 // implements FieldGenerator --------------------------------------- |
54 void GeneratePrivateMembers(io::Printer* printer) const; | 54 void GeneratePrivateMembers(io::Printer* printer) const; |
55 void GenerateStaticMembers(io::Printer* printer) const; | 55 void GenerateStaticMembers(io::Printer* printer) const; |
56 void GenerateAccessorDeclarations(io::Printer* printer) const; | 56 void GenerateAccessorDeclarations(io::Printer* printer) const; |
57 void GenerateInlineAccessorDefinitions(io::Printer* printer, | 57 void GenerateInlineAccessorDefinitions(io::Printer* printer, |
58 bool is_inline) const; | 58 bool is_inline) const; |
59 void GenerateNonInlineAccessorDefinitions(io::Printer* printer) const; | 59 void GenerateNonInlineAccessorDefinitions(io::Printer* printer) const; |
60 void GenerateClearingCode(io::Printer* printer) const; | 60 void GenerateClearingCode(io::Printer* printer) const; |
| 61 void GenerateMessageClearingCode(io::Printer* printer) const; |
61 void GenerateMergingCode(io::Printer* printer) const; | 62 void GenerateMergingCode(io::Printer* printer) const; |
62 void GenerateSwappingCode(io::Printer* printer) const; | 63 void GenerateSwappingCode(io::Printer* printer) const; |
63 void GenerateConstructorCode(io::Printer* printer) const; | 64 void GenerateConstructorCode(io::Printer* printer) const; |
| 65 void GenerateCopyConstructorCode(io::Printer* printer) const; |
64 void GenerateDestructorCode(io::Printer* printer) const; | 66 void GenerateDestructorCode(io::Printer* printer) const; |
65 void GenerateDefaultInstanceAllocator(io::Printer* printer) const; | 67 void GenerateDefaultInstanceAllocator(io::Printer* printer) const; |
66 void GenerateShutdownCode(io::Printer* printer) const; | 68 void GenerateShutdownCode(io::Printer* printer) const; |
67 void GenerateMergeFromCodedStream(io::Printer* printer) const; | 69 void GenerateMergeFromCodedStream(io::Printer* printer) const; |
68 void GenerateSerializeWithCachedSizes(io::Printer* printer) const; | 70 void GenerateSerializeWithCachedSizes(io::Printer* printer) const; |
69 void GenerateSerializeWithCachedSizesToArray(io::Printer* printer) const; | 71 void GenerateSerializeWithCachedSizesToArray(io::Printer* printer) const; |
70 void GenerateByteSize(io::Printer* printer) const; | 72 void GenerateByteSize(io::Printer* printer) const; |
71 | 73 |
72 protected: | 74 protected: |
73 const FieldDescriptor* descriptor_; | 75 const FieldDescriptor* descriptor_; |
74 map<string, string> variables_; | 76 std::map<string, string> variables_; |
75 | 77 |
76 private: | 78 private: |
77 GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(StringFieldGenerator); | 79 GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(StringFieldGenerator); |
78 }; | 80 }; |
79 | 81 |
80 class StringOneofFieldGenerator : public StringFieldGenerator { | 82 class StringOneofFieldGenerator : public StringFieldGenerator { |
81 public: | 83 public: |
82 StringOneofFieldGenerator(const FieldDescriptor* descriptor, | 84 StringOneofFieldGenerator(const FieldDescriptor* descriptor, |
83 const Options& options); | 85 const Options& options); |
84 ~StringOneofFieldGenerator(); | 86 ~StringOneofFieldGenerator(); |
85 | 87 |
86 // implements FieldGenerator --------------------------------------- | 88 // implements FieldGenerator --------------------------------------- |
87 void GenerateInlineAccessorDefinitions(io::Printer* printer, | 89 void GenerateInlineAccessorDefinitions(io::Printer* printer, |
88 bool is_inline) const; | 90 bool is_inline) const; |
89 void GenerateClearingCode(io::Printer* printer) const; | 91 void GenerateClearingCode(io::Printer* printer) const; |
| 92 |
| 93 // StringFieldGenerator, from which we inherit, overrides this so we need to |
| 94 // override it as well. |
| 95 void GenerateMessageClearingCode(io::Printer* printer) const; |
90 void GenerateSwappingCode(io::Printer* printer) const; | 96 void GenerateSwappingCode(io::Printer* printer) const; |
91 void GenerateConstructorCode(io::Printer* printer) const; | 97 void GenerateConstructorCode(io::Printer* printer) const; |
92 void GenerateDestructorCode(io::Printer* printer) const; | 98 void GenerateDestructorCode(io::Printer* printer) const; |
93 void GenerateMergeFromCodedStream(io::Printer* printer) const; | 99 void GenerateMergeFromCodedStream(io::Printer* printer) const; |
94 | 100 |
95 private: | 101 private: |
96 const bool dependent_field_; | 102 const bool dependent_field_; |
97 GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(StringOneofFieldGenerator); | 103 GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(StringOneofFieldGenerator); |
98 }; | 104 }; |
99 | 105 |
100 class RepeatedStringFieldGenerator : public FieldGenerator { | 106 class RepeatedStringFieldGenerator : public FieldGenerator { |
101 public: | 107 public: |
102 RepeatedStringFieldGenerator(const FieldDescriptor* descriptor, | 108 RepeatedStringFieldGenerator(const FieldDescriptor* descriptor, |
103 const Options& options); | 109 const Options& options); |
104 ~RepeatedStringFieldGenerator(); | 110 ~RepeatedStringFieldGenerator(); |
105 | 111 |
106 // implements FieldGenerator --------------------------------------- | 112 // implements FieldGenerator --------------------------------------- |
107 void GeneratePrivateMembers(io::Printer* printer) const; | 113 void GeneratePrivateMembers(io::Printer* printer) const; |
108 void GenerateAccessorDeclarations(io::Printer* printer) const; | 114 void GenerateAccessorDeclarations(io::Printer* printer) const; |
109 void GenerateInlineAccessorDefinitions(io::Printer* printer, | 115 void GenerateInlineAccessorDefinitions(io::Printer* printer, |
110 bool is_inline) const; | 116 bool is_inline) const; |
111 void GenerateClearingCode(io::Printer* printer) const; | 117 void GenerateClearingCode(io::Printer* printer) const; |
112 void GenerateMergingCode(io::Printer* printer) const; | 118 void GenerateMergingCode(io::Printer* printer) const; |
113 void GenerateSwappingCode(io::Printer* printer) const; | 119 void GenerateSwappingCode(io::Printer* printer) const; |
114 void GenerateConstructorCode(io::Printer* printer) const; | 120 void GenerateConstructorCode(io::Printer* printer) const; |
| 121 void GenerateCopyConstructorCode(io::Printer* printer) const; |
115 void GenerateMergeFromCodedStream(io::Printer* printer) const; | 122 void GenerateMergeFromCodedStream(io::Printer* printer) const; |
116 void GenerateSerializeWithCachedSizes(io::Printer* printer) const; | 123 void GenerateSerializeWithCachedSizes(io::Printer* printer) const; |
117 void GenerateSerializeWithCachedSizesToArray(io::Printer* printer) const; | 124 void GenerateSerializeWithCachedSizesToArray(io::Printer* printer) const; |
118 void GenerateByteSize(io::Printer* printer) const; | 125 void GenerateByteSize(io::Printer* printer) const; |
119 | 126 |
120 private: | 127 private: |
121 const FieldDescriptor* descriptor_; | 128 const FieldDescriptor* descriptor_; |
122 map<string, string> variables_; | 129 std::map<string, string> variables_; |
123 | 130 |
124 GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RepeatedStringFieldGenerator); | 131 GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RepeatedStringFieldGenerator); |
125 }; | 132 }; |
126 | 133 |
127 } // namespace cpp | 134 } // namespace cpp |
128 } // namespace compiler | 135 } // namespace compiler |
129 } // namespace protobuf | 136 } // namespace protobuf |
130 | 137 |
131 } // namespace google | 138 } // namespace google |
132 #endif // GOOGLE_PROTOBUF_COMPILER_CPP_STRING_FIELD_H__ | 139 #endif // GOOGLE_PROTOBUF_COMPILER_CPP_STRING_FIELD_H__ |
OLD | NEW |