Go to the documentation of this file.
31 #ifndef GOOGLE_PROTOBUF_REFLECTION_INTERNAL_H__
32 #define GOOGLE_PROTOBUF_REFLECTION_INTERNAL_H__
34 #include <google/protobuf/map_field.h>
35 #include <google/protobuf/reflection.h>
36 #include <google/protobuf/repeated_field.h>
44 class RandomAccessRepeatedFieldAccessor :
public RepeatedFieldAccessor {
67 Value* scratch_space)
const override {
87 class RepeatedFieldWrapper :
public RandomAccessRepeatedFieldAccessor {
97 Value* scratch_space)
const override {
136 Value* scratch_space)
const = 0;
141 template <
typename T>
142 class RepeatedPtrFieldWrapper :
public RandomAccessRepeatedFieldAccessor {
151 Value* scratch_space)
const override {
198 Value* scratch_space)
const = 0;
203 class MapFieldAccessor final :
public RandomAccessRepeatedFieldAccessor {
214 Value* scratch_space)
const override {
235 Field* other_data)
const override {
267 template <
typename T>
268 class RepeatedFieldPrimitiveAccessor final :
public RepeatedFieldWrapper<T> {
276 Field* other_data)
const override {
286 return *
static_cast<const T*
>(
value);
289 Value* )
const override {
296 class RepeatedPtrFieldStringAccessor final
297 :
public RepeatedPtrFieldWrapper<std::string> {
305 Field* other_data)
const override {
306 if (
this == other_mutator) {
311 int other_size = other_mutator->
Size(other_data);
312 for (
int i = 0;
i < other_size; ++
i) {
316 other_mutator->
Clear(other_data);
317 for (
int i = 0;
i <
size; ++
i) {
329 Value* )
const override {
335 class RepeatedPtrFieldMessageAccessor final
336 :
public RepeatedPtrFieldWrapper<Message> {
343 Field* other_data)
const override {
356 Value* )
const override {
364 #endif // GOOGLE_PROTOBUF_REFLECTION_INTERNAL_H__
void ConvertToT(const Value *value, std::string *result) const override
RepeatedPtrField< Message > RepeatedFieldType
const Descriptor::ReservedRange value
void Add(Field *data, const Value *value) const override
const Value * GetIteratorValue(const Field *data, const Iterator *iterator, Value *scratch_space) const override
Iterator * EndIterator(const Field *data) const override
RepeatedFieldPrimitiveAccessor()
void Swap(Field *data, const internal::RepeatedFieldAccessor *other_mutator, Field *other_data) const override
Iterator * BeginIterator(const Field *) const override
static const RepeatedFieldType * GetRepeatedField(const Field *data)
virtual ~MapFieldAccessor()
RepeatedField< T > RepeatedFieldType
RepeatedPtrFieldStringAccessor()
void Add(Field *data, const Value *value) const override
virtual T ConvertToT(const Value *value) const =0
static RepeatedFieldType * MutableRepeatedField(Field *data)
void SwapElements(Field *data, int index1, int index2) const override
bool IsEmpty(const Field *data) const override
const typedef MCPhysReg * iterator
void Swap(Field *data, const internal::RepeatedFieldAccessor *other_mutator, Field *other_data) const override
void Add(const Element &value)
virtual Message * New(const Value *value) const
#define T(upbtypeconst, upbtype, ctype, default_value)
bool IsEmpty(const Field *data) const override
const Value * Get(const Field *data, int index, Value *scratch_space) const override
virtual int Size(const Field *data) const =0
static RepeatedFieldType * MutableRepeatedField(Field *data)
virtual const Value * ConvertFromT(const T &value, Value *scratch_space) const =0
virtual const Value * ConvertFromEntry(const Message &value, Value *) const
const Value * Get(const Field *data, int index, Value *scratch_space) const override
bool IsEmpty(const Field *data) const override
virtual const Value * ConvertFromEntry(const Message &value, Value *scratch_space) const
~RandomAccessRepeatedFieldAccessor()=default
static const RepeatedFieldType * GetRepeatedField(const Field *data)
void Clear(Field *data) const override
std::string * New(const Value *) const override
Iterator * CopyIterator(const Field *, const Iterator *iterator) const override
void Clear(Field *data) const override
int Size(const Field *data) const override
int Size(const Field *data) const override
void Set(Field *data, int index, const Value *value) const override
void ConvertToT(const Value *value, Message *result) const override
virtual void ConvertToT(const Value *value, T *result) const =0
Message * New(const Value *value) const override
void Set(Field *data, int index, const Value *value) const override
~RepeatedFieldWrapper()=default
const Value * ConvertFromT(const T &value, Value *) const override
void Clear(Field *data) const override
void DeleteIterator(const Field *, Iterator *) const override
const Value * Get(const Field *data, int index, Value *scratch_space) const override
void Swap(RepeatedPtrField *other)
void Swap(Field *data, const internal::RepeatedFieldAccessor *other_mutator, Field *other_data) const override
void SwapElements(int index1, int index2)
static Iterator * PositionToIterator(intptr_t position)
void Set(int index, const Element &value)
virtual void Add(Field *data, const Value *value) const =0
virtual T * New(const Value *value) const =0
void RemoveLast(Field *data) const override
void SwapElements(Field *data, int index1, int index2) const override
const Value * ConvertFromT(const std::string &value, Value *) const override
void Swap(Field *data, const internal::RepeatedFieldAccessor *other_mutator, Field *other_data) const override
#define GOOGLE_CHECK(EXPRESSION)
virtual const Value * ConvertFromT(const T &value, Value *scratch_space) const =0
const Value * ConvertFromT(const Message &value, Value *) const override
virtual void Clear(Field *data) const =0
RepeatedPtrFieldMessageAccessor()
virtual const Value * Get(const Field *data, int index, Value *scratch_space) const =0
~RepeatedPtrFieldWrapper()=default
static intptr_t IteratorToPosition(const Iterator *iterator)
int Size(const Field *data) const override
void Swap(RepeatedField *other)
static const RepeatedFieldType * GetRepeatedField(const Field *data)
Iterator * AdvanceIterator(const Field *, Iterator *iterator) const override
void Add(Field *data, const Value *value) const override
RepeatedPtrField< T > RepeatedFieldType
void SwapElements(Field *data, int index1, int index2) const override
void RemoveLast(Field *data) const override
virtual void ConvertToEntry(const Value *value, Message *result) const
T ConvertToT(const Value *value) const override
void Set(Field *data, int index, const Value *value) const override
static RepeatedFieldType * MutableRepeatedField(Field *data)
void AddAllocated(Element *value)
void SwapElements(int index1, int index2)
bool EqualsIterator(const Field *, const Iterator *a, const Iterator *b) const override
void RemoveLast(Field *data) const override
grpc
Author(s):
autogenerated on Fri May 16 2025 03:00:01