Go to the documentation of this file.
39 #ifndef GOOGLE_PROTOBUF_SUPPORT_WINDOWS_XP
43 #endif // #ifndef GOOGLE_PROTOBUF_SUPPORT_WINDOWS_XP
58 #include <google/protobuf/port_def.inc>
88 const void*
end = &
str + 1;
93 return str.capacity();
98 const T&
Get(
const void* ptr) {
99 return *
static_cast<const T*
>(ptr);
257 template <
typename O,
int type>
260 template <
int type,
typename O>
265 template <
typename O>
267 SerializeTo<WireFormatLite::TYPE_UINT32>(&tag,
output);
270 template <
typename O>
272 SerializeTo<WireFormatLite::TYPE_UINT32>(&
length,
output);
302 if (
output->is_deterministic) {
319 if (!
output->IsSerializationDeterministic()) {
321 uint8* ptr =
output->GetDirectBufferForNBytesAndAdvance(cached_size);
343 template <
typename O>
356 int cached_size = *
reinterpret_cast<const int32*
>(
base + field_table->
offset);
358 int num_fields =
table->num_fields - 1;
364 template <
typename O>
376 int cached_size = *
reinterpret_cast<const int32*
>(
base + field_table->
offset);
377 int num_fields =
table->num_fields - 1;
384 template <
typename O>
393 template <
typename O>
396 SerializeTo<WireFormatLite::TYPE_STRING>(&Get<ArenaStringPtr>(
field).
Get(),
407 template <
typename O>
418 template <
typename O>
428 template <
typename O>
431 SerializeTo<FieldMetadata::kInlinedType>(&Get<std::string>(
field),
output);
437 template <
typename O>
441 for (
int i = 0;
i <
array.size();
i++) {
453 return x.raw_data()[
idx];
459 template <
typename O>
462 Get<internal::RepeatedPtrFieldBase>(
field);
477 template <
typename O>
480 Get<internal::RepeatedPtrFieldBase>(
field);
493 template <
typename O>
496 Get<internal::RepeatedPtrFieldBase>(
field);
513 template <
typename O>
517 if (
array.empty())
return;
522 for (
int i = 0;
i <
array.size();
i++) {
530 template <
typename O>
552 template <
typename O>
561 template <
typename O>
573 #define SERIALIZE_TABLE_OP(type, type_class) \
574 ((type - 1) + static_cast<int>(type_class) * FieldMetadata::kNumTypes)
588 bool IsNull<WireFormatLite::TYPE_STRING>(
const void* ptr) {
593 bool IsNull<WireFormatLite::TYPE_BYTES>(
const void* ptr) {
598 bool IsNull<WireFormatLite::TYPE_GROUP>(
const void* ptr) {
599 return Get<const MessageLite*>(ptr) ==
NULL;
603 bool IsNull<WireFormatLite::TYPE_MESSAGE>(
const void* ptr) {
604 return Get<const MessageLite*>(ptr) ==
NULL;
609 bool IsNull<FieldMetadata::kInlinedType>(
const void* ptr) {
610 return static_cast<const std::string*
>(ptr)->empty();
613 #define SERIALIZERS_FOR_TYPE(type) \
614 case SERIALIZE_TABLE_OP(type, FieldMetadata::kPresence): \
615 if (!IsPresent(base, field_metadata.has_offset)) continue; \
616 SingularFieldHelper<type>::Serialize(ptr, field_metadata, output); \
618 case SERIALIZE_TABLE_OP(type, FieldMetadata::kNoPresence): \
619 if (IsNull<type>(ptr)) continue; \
620 SingularFieldHelper<type>::Serialize(ptr, field_metadata, output); \
622 case SERIALIZE_TABLE_OP(type, FieldMetadata::kRepeated): \
623 RepeatedFieldHelper<type>::Serialize(ptr, field_metadata, output); \
625 case SERIALIZE_TABLE_OP(type, FieldMetadata::kPacked): \
626 PackedFieldHelper<type>::Serialize(ptr, field_metadata, output); \
628 case SERIALIZE_TABLE_OP(type, FieldMetadata::kOneOf): \
629 if (!IsOneofPresent(base, field_metadata.has_offset, field_metadata.tag)) \
631 OneOfFieldHelper<type>::Serialize(ptr, field_metadata, output); \
638 for (
int i = 0;
i < num_fields;
i++) {
641 switch (field_metadata.
type) {
665 const_cast<void*
>(field_metadata.
ptr));
678 int32 num_fields,
bool is_deterministic,
683 for (
int i = 0;
i < num_fields;
i++) {
686 switch (field_metadata.
type) {
710 output.SetSerializationDeterministic(is_deterministic);
712 const_cast<void*
>(field_metadata.
ptr));
722 return array_output.
ptr;
724 #undef SERIALIZERS_FOR_TYPE
729 ->SerializeWithCachedSizes(tag, has_offset,
output);
751 std::unique_ptr<MessageLite> tmp(m1->
New());
752 tmp->CheckTypeAndMergeFrom(*m1);
763 Arena* submessage_arena) {
766 if (message_arena !=
NULL && submessage_arena ==
NULL) {
767 message_arena->Own(submessage);
778 void InitSCC_DFS(SCCInfoBase* scc) {
779 if (scc->visit_status.load(std::memory_order_relaxed) !=
784 auto deps =
reinterpret_cast<SCCInfoBase*
const*
>(scc + 1);
785 for (
int i = 0;
i < scc->num_deps;
i++) {
786 if (deps[
i]) InitSCC_DFS(deps[
i]);
801 #ifndef GOOGLE_PROTOBUF_SUPPORT_WINDOWS_XP
802 static std::atomic<std::thread::id> runner;
803 auto me = std::this_thread::get_id();
808 static std::atomic_llong runner(-1);
809 auto me = ::GetCurrentThreadId();
810 #endif // #ifndef GOOGLE_PROTOBUF_SUPPORT_WINDOWS_XP
814 if (runner.load(std::memory_order_relaxed) == me) {
823 runner.store(me, std::memory_order_relaxed);
826 #ifndef GOOGLE_PROTOBUF_SUPPORT_WINDOWS_XP
829 runner.store(-1, std::memory_order_relaxed);
830 #endif // #ifndef GOOGLE_PROTOBUF_SUPPORT_WINDOWS_XP
static int Size(const RepeatedPtrFieldBase &x)
#define SERIALIZERS_FOR_TYPE(type)
#define GOOGLE_CHECK_EQ(A, B)
bool IsNull(const void *ptr)
uint8 * SerializeInternalToArray(const uint8 *base, const FieldMetadata *table, int32 num_fields, bool is_deterministic, uint8 *buffer)
void InitSCCImpl(SCCInfoBase *scc)
void(* SpecialSerializer)(const uint8 *base, uint32 offset, uint32 tag, uint32 has_offset, io::CodedOutputStream *output)
static void Serialize(const void *ptr, io::CodedOutputStream *output)
static bool InitProtobufDefaultsImpl()
virtual int GetCachedSize() const =0
const T & Get(const void *ptr)
virtual Arena * GetArena() const
GLenum GLuint GLenum GLsizei length
static void Serialize(const void *ptr, ArrayOutput *output)
void SerializeTo(const void *ptr, O *output)
void ExtensionSerializer(const uint8 *ptr, uint32 offset, uint32 tag, uint32 has_offset, io::CodedOutputStream *output)
GLsizei const GLchar *const * string
void SetSerializationDeterministic(bool value)
void GenericSwap(MessageLite *m1, MessageLite *m2)
PROTOBUF_EXPORT void SerializeInternal(const uint8 *base, const FieldMetadata *table, int32 num_fields, io::CodedOutputStream *output)
#define GOOGLE_PROTOBUF_LINKER_INITIALIZED
static void Serialize(const void *field, const FieldMetadata &md, O *output)
#define T(upbtypeconst, upbtype, ctype, default_value)
void WriteLengthTo(uint32 length, O *output)
void InitProtobufDefaults()
static uint32_t idx(tarjan *t, const upb_refcounted *r)
void SerializeGroupTo(const MessageLite *msg, const void *table_ptr, O *output)
void DestroyString(const void *s)
virtual void SerializeWithCachedSizes(io::CodedOutputStream *output) const
void SerializeMessageDispatch(const MessageLite &msg, const FieldMetadata *field_table, int num_fields, int32 cached_size, io::CodedOutputStream *output)
size_t StringSpaceUsedExcludingSelfLong(const std::string &str)
#define GOOGLE_LOG(LEVEL)
MessageLite * GetOwnedMessageInternal(Arena *message_arena, MessageLite *submessage, Arena *submessage_arena)
void OnShutdownDestroyString(const std::string *ptr)
const FieldDescriptor * field
MessageLite * DuplicateIfNonNullInternal(MessageLite *message)
static void Serialize(const void *field, const FieldMetadata &md, O *output)
typedef void(APIENTRY *GLDEBUGPROCARB)(GLenum source
std::atomic< int > visit_status
void SerializeMessageTo(const MessageLite *msg, const void *table_ptr, O *output)
static void Serialize(const void *field, const FieldMetadata &md, O *output)
void DestroyMessage(const void *message)
ExplicitlyConstructed< std::string > fixed_address_empty_string
void WriteTagTo(uint32 tag, O *output)
virtual uint8 * InternalSerializeWithCachedSizesToArray(uint8 *target) const
static void const * Get(const RepeatedPtrFieldBase &x, int idx)
void SerializeNotImplemented(int field)
static uint8 * WriteStringWithSizeToArray(const std::string &str, uint8 *target)
static void Serialize(const void *field, const FieldMetadata &md, O *output)
GLsizei const GLfloat * value
const upb_json_parsermethod const upb_symtab upb_sink * output
virtual void CheckTypeAndMergeFrom(const MessageLite &other)=0
void SerializeMessageNoTable(const MessageLite *msg, io::CodedOutputStream *output)
void UnknownFieldSerializerLite(const uint8 *ptr, uint32 offset, uint32 tag, uint32 has_offset, io::CodedOutputStream *output)
GLenum GLuint GLenum GLsizei const GLchar * message
#define SERIALIZE_TABLE_OP(type, type_class)
virtual MessageLite * New() const =0
PHP_PROTO_OBJECT_FREE_END PHP_PROTO_OBJECT_DTOR_END intern array
libaditof
Author(s):
autogenerated on Wed May 21 2025 02:06:51