|
|
|
@ -6,7 +6,7 @@ |
|
|
|
|
|
|
|
|
|
#include <ostream> |
|
|
|
|
|
|
|
|
|
#include <google/protobuf/message.h> |
|
|
|
|
#include <google/protobuf/message_lite.h> |
|
|
|
|
#include <google/protobuf/io/coded_stream.h> |
|
|
|
|
#include <google/protobuf/io/zero_copy_stream_impl.h> |
|
|
|
|
|
|
|
|
@ -23,16 +23,16 @@ namespace util { |
|
|
|
|
// Note that if you want to *read* a delimited message from a file descriptor
|
|
|
|
|
// or istream, you will need to construct an io::FileInputStream or
|
|
|
|
|
// io::OstreamInputStream (implementations of io::ZeroCopyStream) and use the
|
|
|
|
|
// MessageLite method ParseDelimitedFromZeroCopyStream(). You must then
|
|
|
|
|
// utility function ParseDelimitedFromZeroCopyStream(). You must then
|
|
|
|
|
// continue to use the same ZeroCopyInputStream to read all further data from
|
|
|
|
|
// the stream until EOF. This is because these ZeroCopyInputStream
|
|
|
|
|
// implementations are buffered: they read a big chunk of data at a time,
|
|
|
|
|
// then parse it. As a result, they may read past the end of the delimited
|
|
|
|
|
// message. There is no way for them to push the extra data back into the
|
|
|
|
|
// underlying source, so instead you must keep using the same stream object.
|
|
|
|
|
bool LIBPROTOBUF_EXPORT SerializeDelimitedToFileDescriptor(const Message* message, int file_descriptor); |
|
|
|
|
bool LIBPROTOBUF_EXPORT SerializeDelimitedToFileDescriptor(const MessageLite& message, int file_descriptor); |
|
|
|
|
|
|
|
|
|
bool LIBPROTOBUF_EXPORT SerializeDelimitedToOstream(const Message* message, ostream* output); |
|
|
|
|
bool LIBPROTOBUF_EXPORT SerializeDelimitedToOstream(const MessageLite& message, ostream* output); |
|
|
|
|
|
|
|
|
|
// Read a single size-delimited message from the given stream. Delimited
|
|
|
|
|
// format allows a single file or stream to contain multiple messages,
|
|
|
|
@ -55,9 +55,9 @@ bool LIBPROTOBUF_EXPORT ParseDelimitedFromCodedStream(MessageLite* message, io:: |
|
|
|
|
// whereas normally writing multiple non-delimited messages to the same
|
|
|
|
|
// stream would cause them to be merged. A delimited message is a varint
|
|
|
|
|
// encoding the message size followed by a message of exactly that size.
|
|
|
|
|
bool LIBPROTOBUF_EXPORT SerializeDelimitedToZeroCopyStream(const MessageLite* message, io::ZeroCopyOutputStream* output); |
|
|
|
|
bool LIBPROTOBUF_EXPORT SerializeDelimitedToZeroCopyStream(const MessageLite& message, io::ZeroCopyOutputStream* output); |
|
|
|
|
|
|
|
|
|
bool LIBPROTOBUF_EXPORT SerializeDelimitedToCodedStream(const MessageLite* message, io::CodedOutputStream* output); |
|
|
|
|
bool LIBPROTOBUF_EXPORT SerializeDelimitedToCodedStream(const MessageLite& message, io::CodedOutputStream* output); |
|
|
|
|
|
|
|
|
|
} // namespace util
|
|
|
|
|
} // namespace protobuf
|
|
|
|
|