Go to the documentation of this file.
31 #ifndef GOOGLE_PROTOBUF_MAP_ENTRY_LITE_H__
32 #define GOOGLE_PROTOBUF_MAP_ENTRY_LITE_H__
48 #include <google/protobuf/port_def.inc>
50 #error "You cannot SWIG proto headers"
56 template <
typename Derived,
typename Key,
typename Value,
60 template <
typename Derived,
typename Key,
typename Value,
75 template <
bool is_enum,
bool is_message,
bool is_
stringlike,
typename T>
80 template <
bool is_message,
bool is_
stringlike,
typename T>
88 template <
bool is_
stringlike,
typename T>
96 #if __cplusplus >= 201103L
137 size_t inner_length =
144 return 2 + KeyTypeHandler::GetCachedSize(
key) +
145 ValueTypeHandler::GetCachedSize(
value);
152 template <
typename Derived,
typename Base,
typename Key,
typename Value,
199 ValueTypeHandler::InitializeMaybeByDefaultEnum(&
value_, default_enum_value,
206 ValueTypeHandler::InitializeMaybeByDefaultEnum(&
value_, default_enum_value,
213 KeyTypeHandler::DeleteNoArena(
key_);
214 ValueTypeHandler::DeleteNoArena(
value_);
220 return KeyTypeHandler::GetExternalReference(
key_);
223 return ValueTypeHandler::DefaultIfNotInitialized(
242 MergeFromInternal(*::google::protobuf::internal::DownCast<const Derived*>(&other));
245 #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
247 while (!ctx->Done(&ptr)) {
255 if (!Derived::ValidateKey(
key))
return nullptr;
260 if (!Derived::ValidateValue(
value))
return nullptr;
264 ctx->SetLastTag(tag);
286 tag =
input->ReadTagNoLastTag();
300 if (
input->ExpectAtEnd())
return true;
344 KeyTypeHandler::GetCachedSize(
key())
347 ValueTypeHandler::GetCachedSize(
value())
356 Base*
New()
const override {
357 Derived* entry =
new Derived;
361 Base*
New(Arena* arena)
const override {
362 Derived* entry = Arena::CreateMessage<Derived>(arena);
394 Derived*
d =
const_cast<Derived*
>(Derived::internal_default_instance());
395 KeyTypeHandler::AssignDefaultValue(&
d->key_);
396 ValueTypeHandler::AssignDefaultValue(&
d->value_);
403 template <
typename MapField,
typename Map>
427 static_assert(
kTagSize == 1,
"tag size must be 1");
431 if (PROTOBUF_PREDICT_TRUE(map_size !=
map_->
size())) {
441 if (
input->ExpectAtEnd())
return true;
457 if (PROTOBUF_PREDICT_TRUE(!ctx->
Done(&ptr) && *ptr ==
kKeyTag)) {
459 if (PROTOBUF_PREDICT_FALSE(!ptr || !Derived::ValidateKey(&
key_))) {
462 if (PROTOBUF_PREDICT_TRUE(!ctx->
Done(&ptr) && *ptr ==
kValueTag)) {
465 if (PROTOBUF_PREDICT_TRUE(map_size !=
map_->
size())) {
470 if (PROTOBUF_PREDICT_FALSE(!ptr ||
475 if (PROTOBUF_PREDICT_TRUE(ctx->
Done(&ptr)))
return ptr;
476 if (!ptr)
return nullptr;
483 if (!ptr)
return nullptr;
489 if (!ptr)
return nullptr;
492 ptr =
entry_->_InternalParse(ptr, ctx);
497 template <
typename Metadata>
499 bool (*is_valid)(
int),
uint32 field_num,
502 ptr = entry->_InternalParse(ptr, ctx);
503 if (!ptr)
return nullptr;
504 if (is_valid(entry->value())) {
508 metadata->mutable_unknown_fields());
545 typedef MoveHelper<KeyTypeHandler::kIsEnum, KeyTypeHandler::kIsMessage,
546 KeyTypeHandler::kWireType ==
550 typedef MoveHelper<ValueTypeHandler::kIsEnum, ValueTypeHandler::kIsMessage,
551 ValueTypeHandler::kWireType ==
581 friend class ::PROTOBUF_NAMESPACE_ID::Arena;
594 template <
typename T,
typename Key,
typename Value,
598 :
public MapEntryImpl<T, MessageLite, Key, Value, kKeyFieldType,
599 kValueFieldType, default_enum_value> {
602 kValueFieldType, default_enum_value>
614 template <
typename Derived>
624 static const int default_enum_value = default_enum;
633 template <
typename Key,
typename PtrToKeyValuePair>
642 template <
typename T>
647 template <
typename T>
654 template <WireFormatLite::FieldType FieldType>
656 template <
typename T>
684 template <
typename T>
686 return const_cast<T*
>(&
x);
690 template <
typename MapEntryType>
693 template <
typename T,
typename Key,
typename Value,
697 kValueFieldType, default_enum_value> > {
730 #include <google/protobuf/port_undef.inc>
732 #endif // GOOGLE_PROTOBUF_MAP_ENTRY_LITE_H__
static const WireFormatLite::FieldType kEntryKeyFieldType
static const int kValueFieldNumber
void InternalArenaConstructable_
int GetCachedSize() const override
const Descriptor::ReservedRange value
const char * ParseWithEnumValidation(const char *ptr, ParseContext *ctx, bool(*is_valid)(int), uint32 field_num, Metadata *metadata)
static const size_t kTagSize
ValueMapEntryAccessorType * mutable_value()
const Value & entry_value() const
MapTypeHandler< kKeyFieldType, Key > KeyTypeHandler
static const T & From(const T &x)
EntryType * NewEntry() const
MapTypeHandler< kValueFieldType, Value > ValueTypeHandler
void MergeFrom(const MapEntryLite &other)
const Value & value() const
void UnsafeSetTaggedPointer(TaggedPtr< ::std::string > value)
static const int kKeyFieldNumber
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MapEntryLite)
static const WireFormatLite::FieldType kEntryValueFieldType
GLsizei const GLchar *const * string
Arena * GetArenaNoVirtual() const
static uint8 * WriteVarint32ToArray(uint32 value, uint8 *target)
MapTypeHandler< kValueFieldType, Value > ValueTypeHandler
#define T(upbtypeconst, upbtype, ctype, default_value)
MapEntryImpl< T, MessageLite, Key, Value, kKeyFieldType, kValueFieldType, default_enum_value > SuperType
static const int kEntryDefaultEnumValue
void CheckTypeAndMergeFrom(const MessageLite &other) override
size_t ByteSizeLong() const override
GLboolean GLboolean GLboolean b
bool ReadBeyondKeyValuePair(io::CodedInputStream *input) PROTOBUF_COLD
std::string GetTypeName() const override
void UseKeyAndValueFromEntry()
static void Move(T *src, T *dest)
int Read(int fd, void *buf, unsigned int count)
static void SerializeToCodedStream(int field_number, const Key &key, const Value &value, io::CodedOutputStream *output)
ValueTypeHandler::TypeOnMemory ValueOnMemory
bool Done(const char **ptr)
MoveHelper< KeyTypeHandler::kIsEnum, KeyTypeHandler::kIsMessage, KeyTypeHandler::kWireType==WireFormatLite::WIRETYPE_LENGTH_DELIMITED, Key > KeyMover
void MergeFromInternal(const MapEntryImpl &from)
void WriteLengthDelimited(uint32 num, StringPiece val, std::string *s)
static const uint8 kKeyTag
MapEntryImpl * NewEntry()
static int GetCachedSize(const Key &key, const Value &value)
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MapEntryImpl)
static size_t VarintSize32(uint32 value)
const char * UnknownFieldParse(uint32 tag, std::string *unknown, const char *ptr, ParseContext *ctx)
MapTypeHandler< kValueFieldType, Value > ValueTypeHandler
KeyTypeHandler::TypeOnMemory KeyOnMemory
static const uint8 kValueTag
::google::protobuf::uint8 * SerializeToArray(int field_number, const Key &key, const Value &value, ::google::protobuf::uint8 *output)
Base * New() const override
bool operator()(const T &a, const T &b) const
MapEntryHelper(const MapPair< Key, Value > &map_pair)
::google::protobuf::uint8 * InternalSerializeWithCachedSizesToArray(::google::protobuf::uint8 *output) const override
const SETUP_TEARDOWN_TESTCONTEXT char * key
ValueTypeHandler::MapEntryAccessorType ValueMapEntryAccessorType
virtual const ValueMapEntryAccessorType & value() const
Base * New(Arena *arena) const override
bool IsInitialized() const override
MapEntryFuncs< Key, Value, kKeyFieldType, kValueFieldType > Funcs
KeyTypeHandler::MapEntryAccessorType KeyMapEntryAccessorType
SortItem(PtrToKeyValuePair p)
MoveHelper< ValueTypeHandler::kIsEnum, ValueTypeHandler::kIsMessage, ValueTypeHandler::kWireType==WireFormatLite::WIRETYPE_LENGTH_DELIMITED, Value > ValueMover
const Key & entry_key() const
static void Move(T *src, T *dest)
bool MergePartialFromCodedStream(io::CodedInputStream *input)
int Write(int fd, const void *buf, unsigned int count)
static void Move(T *src, T *dest)
static size_t ByteSizeLong(const Key &key, const Value &value)
Arena * GetArena() const override
static const int kValueFieldNumber
MapEntryImpl(Arena *arena)
static void Move(T *src, T *dest)
const char * _InternalParse(const char *ptr, ParseContext *ctx)
IMGUI_API void Initialize(ImGuiContext *context)
static const int kKeyFieldNumber
bool MergePartialFromCodedStream(io::CodedInputStream *input) override
static void Move(T *src, int *dest)
static void InitAsDefaultInstance()
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
KeyTypeHandler::TypeOnMemory KeyOnMemory
MapEntryLite(Arena *arena)
MapTypeHandler< kKeyFieldType, Key > KeyTypeHandler
static void Move(int *src, T *dest)
const char * ReadTag(const char *p, uint32 *out)
KeyMapEntryAccessorType * mutable_key()
size_type erase(const key_type &key)
ValueTypeHandler::TypeOnMemory ValueOnMemory
void MapEntryHasMergeTypeTrait
void SerializeWithCachedSizes(io::CodedOutputStream *output) const override
GLsizei const GLfloat * value
const upb_json_parsermethod const upb_symtab upb_sink * output
MapTypeHandler< kKeyFieldType, Key > KeyTypeHandler
GLboolean GLboolean GLboolean GLboolean a
bool operator()(const T &a, const T &b) const
#define GOOGLE_PROTOBUF_PARSER_ASSERT(predicate)
def Merge(text, message, allow_unknown_extension=False, allow_field_number=False, descriptor_pool=None, allow_unknown_field=False)
virtual const KeyMapEntryAccessorType & key() const
void DestructorSkippable_
libaditof
Author(s):
autogenerated on Wed May 21 2025 02:06:56