1 // Protocol Buffers - Google's data interchange format 2 // Copyright 2008 Google Inc. All rights reserved. 3 // 4 // Use of this source code is governed by a BSD-style 5 // license that can be found in the LICENSE file or at 6 // https://developers.google.com/open-source/licenses/bsd 7 8 #ifndef GOOGLE_PROTOBUF_COMPILER_CSHARP_REPEATED_PRIMITIVE_FIELD_H__ 9 #define GOOGLE_PROTOBUF_COMPILER_CSHARP_REPEATED_PRIMITIVE_FIELD_H__ 10 11 #include "google/protobuf/compiler/code_generator.h" 12 #include "google/protobuf/compiler/csharp/csharp_field_base.h" 13 14 namespace google { 15 namespace protobuf { 16 namespace compiler { 17 namespace csharp { 18 19 class RepeatedPrimitiveFieldGenerator : public FieldGeneratorBase { 20 public: 21 RepeatedPrimitiveFieldGenerator(const FieldDescriptor* descriptor, 22 int presenceIndex, const Options* options); 23 ~RepeatedPrimitiveFieldGenerator(); 24 25 RepeatedPrimitiveFieldGenerator(const RepeatedPrimitiveFieldGenerator&) = delete; 26 RepeatedPrimitiveFieldGenerator& operator=(const RepeatedPrimitiveFieldGenerator&) = delete; 27 28 virtual void GenerateCloningCode(io::Printer* printer) override; 29 virtual void GenerateFreezingCode(io::Printer* printer) override; 30 virtual void GenerateMembers(io::Printer* printer) override; 31 virtual void GenerateMergingCode(io::Printer* printer) override; 32 virtual void GenerateParsingCode(io::Printer* printer) override; 33 virtual void GenerateParsingCode(io::Printer* printer, bool use_parse_context) override; 34 virtual void GenerateSerializationCode(io::Printer* printer) override; 35 virtual void GenerateSerializationCode(io::Printer* printer, bool use_write_context) override; 36 virtual void GenerateSerializedSizeCode(io::Printer* printer) override; 37 virtual void GenerateExtensionCode(io::Printer* printer) override; 38 39 virtual void WriteHash(io::Printer* printer) override; 40 virtual void WriteEquals(io::Printer* printer) override; 41 virtual void WriteToString(io::Printer* printer) override; 42 }; 43 44 } // namespace csharp 45 } // namespace compiler 46 } // namespace protobuf 47 } // namespace google 48 49 #endif // GOOGLE_PROTOBUF_COMPILER_CSHARP_REPEATED_PRIMITIVE_FIELD_H__ 50 51