Go to the documentation of this file.
19 #ifndef GRPCPP_IMPL_CODEGEN_PROTO_BUFFER_READER_H
20 #define GRPCPP_IMPL_CODEGEN_PROTO_BUFFER_READER_H
22 #include <type_traits>
51 : byte_count_(0), backup_count_(0), status_() {
54 if (!buffer->
Valid() ||
56 &reader_, buffer->c_buffer())) {
58 "Couldn't initialize byte buffer reader");
70 bool Next(
const void** data,
int* size)
override {
75 if (backup_count_ > 0) {
79 *size = (int)backup_count_;
103 backup_count_ = count;
108 bool Skip(
int count)
override {
111 while (
Next(&data, &size)) {
124 int64_t
ByteCount()
const override {
return byte_count_ - backup_count_; }
140 int64_t backup_count_;
149 #endif // GRPCPP_IMPL_CODEGEN_PROTO_BUFFER_READER_H
#define GRPC_SLICE_LENGTH(slice)
Definition: slice.h:99
virtual int grpc_byte_buffer_reader_peek(grpc_byte_buffer_reader *reader, grpc_slice **slice)=0
This header provides an object that reads bytes directly from a grpc::ByteBuffer, via the ZeroCopyInp...
Definition: alarm.h:24
ProtoBufferReader(ByteBuffer *buffer)
Constructs buffer reader from buffer.
Definition: proto_buffer_reader.h:50
::google::protobuf::io::ZeroCopyInputStream ZeroCopyInputStream
Definition: config_protobuf.h:97
~ProtoBufferReader()
Definition: proto_buffer_reader.h:62
int64_t backup_count()
Definition: proto_buffer_reader.h:132
bool ok() const
Is the status OK?
Definition: status.h:118
void BackUp(int count) override
The proto library calls this to indicate that we should back up count bytes that have already been re...
Definition: proto_buffer_reader.h:101
Did it work? If it didn't, why?
Definition: status.h:31
grpc_byte_buffer_reader * reader()
Definition: proto_buffer_reader.h:134
int64_t ByteCount() const override
Returns the total number of bytes read since this object was created.
Definition: proto_buffer_reader.h:124
bool Skip(int count) override
The proto library calls this to skip over count bytes.
Definition: proto_buffer_reader.h:108
A sequence of bytes.
Definition: byte_buffer.h:67
This is a specialization of the protobuf class ZeroCopyInputStream The principle is to get one chunk ...
Definition: proto_buffer_reader.h:46
A grpc_slice s, if initialized, represents the byte range s.bytes[0..s.length-1].
Definition: slice.h:60
void set_byte_count(int64_t byte_count)
Definition: proto_buffer_reader.h:131
grpc_slice ** mutable_slice_ptr()
Definition: proto_buffer_reader.h:136
::google::protobuf::util::Status Status
Definition: config_protobuf.h:90
virtual int grpc_byte_buffer_reader_init(grpc_byte_buffer_reader *reader, grpc_byte_buffer *buffer) GRPC_MUST_USE_RESULT=0
Status status() const
Returns the status of the buffer reader.
Definition: proto_buffer_reader.h:96
#define GRPC_SLICE_START_PTR(slice)
Definition: slice.h:96
bool Valid() const
Is this ByteBuffer valid?
Definition: byte_buffer.h:163
CoreCodegenInterface * g_core_codegen_interface
Definition: completion_queue_impl.h:93
#define GPR_CODEGEN_ASSERT(x)
Codegen specific version of GPR_ASSERT.
Definition: core_codegen_interface.h:146
grpc_slice * slice()
Definition: proto_buffer_reader.h:135
Definition: byte_buffer_reader.h:28
bool Next(const void **data, int *size) override
Give the proto library a chunk of data from the stream.
Definition: proto_buffer_reader.h:70
void set_backup_count(int64_t backup_count)
Definition: proto_buffer_reader.h:133
virtual void grpc_byte_buffer_reader_destroy(grpc_byte_buffer_reader *reader)=0
Internal errors.
Definition: status_code_enum.h:119