| // Protocol Buffers - Google's data interchange format |
| // Copyright 2008 Google Inc. All rights reserved. |
| // |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file or at |
| // https://developers.google.com/open-source/licenses/bsd |
| |
| #ifndef GOOGLE_PROTOBUF_COMPILER_OBJECTIVEC_PRIMITIVE_FIELD_H__ |
| #define GOOGLE_PROTOBUF_COMPILER_OBJECTIVEC_PRIMITIVE_FIELD_H__ |
| |
| #include "google/protobuf/compiler/objectivec/field.h" |
| #include "google/protobuf/compiler/objectivec/options.h" |
| #include "google/protobuf/descriptor.h" |
| |
| namespace google { |
| namespace protobuf { |
| namespace compiler { |
| namespace objectivec { |
| |
| class PrimitiveFieldGenerator : public SingleFieldGenerator { |
| friend FieldGenerator* FieldGenerator::Make( |
| const FieldDescriptor* field, |
| const GenerationOptions& generation_options); |
| |
| protected: |
| PrimitiveFieldGenerator(const FieldDescriptor* descriptor, |
| const GenerationOptions& generation_options); |
| ~PrimitiveFieldGenerator() override = default; |
| |
| PrimitiveFieldGenerator(const PrimitiveFieldGenerator&) = delete; |
| PrimitiveFieldGenerator& operator=(const PrimitiveFieldGenerator&) = delete; |
| |
| void GenerateFieldStorageDeclaration(io::Printer* printer) const override; |
| |
| int ExtraRuntimeHasBitsNeeded() const override; |
| void SetExtraRuntimeHasBitsBase(int index_base) override; |
| }; |
| |
| class PrimitiveObjFieldGenerator : public ObjCObjFieldGenerator { |
| friend FieldGenerator* FieldGenerator::Make( |
| const FieldDescriptor* field, |
| const GenerationOptions& generation_options); |
| |
| protected: |
| PrimitiveObjFieldGenerator(const FieldDescriptor* descriptor, |
| const GenerationOptions& generation_options); |
| ~PrimitiveObjFieldGenerator() override = default; |
| |
| PrimitiveObjFieldGenerator(const PrimitiveObjFieldGenerator&) = delete; |
| PrimitiveObjFieldGenerator& operator=(const PrimitiveObjFieldGenerator&) = |
| delete; |
| }; |
| |
| class RepeatedPrimitiveFieldGenerator : public RepeatedFieldGenerator { |
| friend FieldGenerator* FieldGenerator::Make( |
| const FieldDescriptor* field, |
| const GenerationOptions& generation_options); |
| |
| protected: |
| RepeatedPrimitiveFieldGenerator(const FieldDescriptor* descriptor, |
| const GenerationOptions& generation_options); |
| ~RepeatedPrimitiveFieldGenerator() override = default; |
| |
| RepeatedPrimitiveFieldGenerator(const RepeatedPrimitiveFieldGenerator&) = |
| delete; |
| RepeatedPrimitiveFieldGenerator& operator=( |
| const RepeatedPrimitiveFieldGenerator&) = delete; |
| }; |
| |
| } // namespace objectivec |
| } // namespace compiler |
| } // namespace protobuf |
| } // namespace google |
| |
| #endif // GOOGLE_PROTOBUF_COMPILER_OBJECTIVEC_PRIMITIVE_FIELD_H__ |