39 #ifndef GOOGLE_PROTOBUF_MESSAGE_LITE_H__
40 #define GOOGLE_PROTOBUF_MESSAGE_LITE_H__
53 #include <google/protobuf/port_def.inc>
56 #error "You cannot SWIG proto headers"
63 class RepeatedPtrField;
67 class CodedInputStream;
68 class CodedOutputStream;
69 class ZeroCopyInputStream;
70 class ZeroCopyOutputStream;
78 class RepeatedPtrFieldBase;
98 return static_cast<unsigned int>(
size);
106 return static_cast<int>(
size);
122 template <
typename T>
127 template <
typename...
Args>
134 constexpr
const T&
get()
const {
return reinterpret_cast<const T&
>(
union_); }
224 virtual void Clear() = 0;
232 virtual std::string InitializationErrorString()
const;
236 virtual void CheckTypeAndMergeFrom(
const MessageLite& other) = 0;
275 bool ParseFromFileDescriptor(
int file_descriptor);
278 bool ParsePartialFromFileDescriptor(
int file_descriptor);
281 bool ParseFromIstream(std::istream*
input);
284 bool ParsePartialFromIstream(std::istream*
input);
308 bool ParseFromArray(
const void*
data,
int size);
311 bool ParsePartialFromArray(
const void*
data,
int size);
332 #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
336 #endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
364 bool SerializeToArray(
void*
data,
int size)
const;
366 bool SerializePartialToArray(
void*
data,
int size)
const;
380 bool SerializeToFileDescriptor(
int file_descriptor)
const;
382 bool SerializePartialToFileDescriptor(
int file_descriptor)
const;
385 bool SerializeToOstream(std::ostream*
output)
const;
387 bool SerializePartialToOstream(std::ostream*
output)
const;
401 virtual size_t ByteSizeLong()
const = 0;
404 PROTOBUF_DEPRECATED_MSG(
"Please use ByteSizeLong() instead")
435 virtual int GetCachedSize()
const = 0;
437 #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
442 #endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
449 template <
typename T>
454 template <
typename T>
460 template <
typename T>
462 return Arena::CreateMaybeMessage<T>(arena);
471 kMergeWithAliasing = 4,
472 kParseWithAliasing = 5,
473 kMergePartialWithAliasing = 6,
474 kParsePartialWithAliasing = 7
477 template <ParseFlags flags,
typename T>
478 bool ParseFrom(
const T&
input);
486 virtual uint8* InternalSerializeWithCachedSizesToArray(
uint8*
target)
const;
491 friend class internal::WeakFieldMap;
495 LogInitializationErrorMessage();
499 void LogInitializationErrorMessage()
const;
506 template <
bool alias>
513 template <
bool alias>
525 template <
bool alias>
532 template <
typename T>
535 template <
bool alias,
typename T>
537 return input.template MergePartialInto<alias>(msg);
542 template <MessageLite::ParseFlags flags,
typename T>
546 bool res = internal::MergePartialFromImpl<alias>(
input,
this);
553 #include <google/protobuf/port_undef.inc>
555 #endif // GOOGLE_PROTOBUF_MESSAGE_LITE_H__