76 lines
2.7 KiB
C++
76 lines
2.7 KiB
C++
// 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__
|