Go to the documentation of this file.
19 #ifndef GRPCPP_SUPPORT_BYTE_BUFFER_H
20 #define GRPCPP_SUPPORT_BYTE_BUFFER_H
34 class ServerInterface;
36 class ServerInterface;
39 template <
class RequestType,
class ResponseType>
40 class CallbackUnaryHandler;
41 template <
class RequestType,
class ResponseType>
42 class CallbackServerStreamingHandler;
43 template <
class RequestType>
45 template <
class ServiceType,
class RequestType,
class ResponseType>
46 class ServerStreamingHandler;
47 template <grpc::StatusCode code>
48 class ErrorMethodHandler;
49 class CallOpSendMessage;
51 class CallOpRecvMessage;
52 class CallOpGenericRecvMessage;
53 class ExternalConnectionAcceptorImpl;
55 class DeserializeFuncType;
56 class GrpcByteBufferPeer;
70 static_assert(std::is_same<decltype(slices[0].slice_),
grpc_slice>::value,
71 "Slice must have same representation as grpc_slice");
73 "Slice must have same representation as grpc_slice");
78 "ByteBuffer must have same representation as "
81 "ByteBuffer must have same representation as "
125 Status Dump(std::vector<Slice>* slices)
const;
154 other->buffer_ = buffer_;
159 bool Valid()
const {
return (buffer_ !=
nullptr); }
168 template <
class RequestType>
171 template <
class ServiceType,
class RequestType,
class ResponseType>
173 template <
class RequestType,
class ResponseType>
175 template <
class RequestType,
class ResponseType>
177 template <StatusCode code>
199 class ByteBufferPointer {
214 ByteBufferPointer bbuf_ptr()
const {
return ByteBufferPointer(
this); }
221 dest->set_buffer(byte_buffer->buffer_);
234 #endif // GRPCPP_SUPPORT_BYTE_BUFFER_H
This is a specialization of the protobuf class ZeroCopyOutputStream.
Definition: proto_buffer_writer.h:56
Definition: call_op_set.h:528
void Duplicate()
Make a duplicate copy of the internals of this byte buffer so that we have our own owned version of i...
Definition: byte_buffer.h:140
An Alarm posts the user-provided tag to its associated completion queue or invokes the user-provided ...
Definition: alarm.h:33
Definition: call_op_set.h:288
size_t Length() const
Buffer size in bytes.
Definition: byte_buffer.h:147
General method handler class for errors that prevent real method use e.g., handle unknown method by r...
Definition: completion_queue.h:82
GRPCAPI void grpc_byte_buffer_destroy(grpc_byte_buffer *bb)
Destroys byte_buffer deallocating all its memory.
ByteBuffer(const Slice *slices, size_t nslices)
Construct buffer from slices, of which there are nslices.
Definition: byte_buffer.h:66
ByteBuffer & operator=(const ByteBuffer &buf)
Wrapper of core function grpc_byte_buffer_copy .
Definition: byte_buffer.h:106
Status DumpToSingleSlice(Slice *slice) const
Dump (read) the buffer contents into slics.
GRPCAPI size_t grpc_byte_buffer_length(grpc_byte_buffer *bb)
Returns the size of the given byte buffer, in bytes.
~ByteBuffer()
Definition: byte_buffer.h:97
ByteBuffer()
Constuct an empty buffer.
Definition: byte_buffer.h:63
Did it work? If it didn't, why?
Definition: status.h:34
void * UnaryDeserializeHelper(grpc_byte_buffer *, grpc::Status *, RequestType *)
A helper function with reduced templating to do deserializing.
Definition: method_handler.h:83
void Clear()
Remove all data.
Definition: byte_buffer.h:128
static Status Deserialize(ByteBuffer *byte_buffer, ByteBuffer *dest)
Definition: byte_buffer.h:220
Definition: call_op_set.h:515
Definition: grpc_types.h:42
A sequence of bytes.
Definition: byte_buffer.h:60
Definition: server_callback_handlers.h:36
static Status Serialize(const ByteBuffer &source, ByteBuffer *buffer, bool *own_buffer)
Definition: byte_buffer.h:224
void Swap(ByteBuffer *other)
Swap the state of *this and *other.
Definition: byte_buffer.h:152
This is a specialization of the protobuf class ZeroCopyInputStream The principle is to get one chunk ...
Definition: proto_buffer_reader.h:48
Definition: server_callback_handlers.h:449
A grpc_slice s, if initialized, represents the byte range s.bytes[0..s.length-1].
Definition: slice_type.h:63
Defines how to serialize and deserialize some type.
Definition: serialization_traits.h:58
GRPCAPI grpc_byte_buffer * grpc_byte_buffer_copy(grpc_byte_buffer *bb)
Copies input byte buffer bb.
friend class internal::GrpcByteBufferPeer
Definition: byte_buffer.h:183
A wrapper around grpc_slice.
Definition: slice.h:33
A wrapper class of an application provided server streaming handler.
Definition: completion_queue.h:78
static const Status & OK
An OK pre-defined instance.
Definition: status.h:112
Status Dump(std::vector< Slice > *slices) const
Dump (read) the buffer contents into slices.
ByteBuffer(const ByteBuffer &buf)
Construct a byte buffer by referencing elements of existing buffer buf.
Definition: byte_buffer.h:95
friend class internal::ExternalConnectionAcceptorImpl
Definition: byte_buffer.h:184
bool Valid() const
Is this ByteBuffer valid?
Definition: byte_buffer.h:159
Definition: call_op_set.h:426
void Release()
Forget underlying byte buffer without destroying Use this only for un-owned byte buffers.
Definition: byte_buffer.h:144
Definition: server_interface.h:61
Status TrySingleSlice(Slice *slice) const
GRPCAPI grpc_byte_buffer * grpc_raw_byte_buffer_create(grpc_slice *slices, size_t nslices)
Returns a RAW byte buffer instance over the given slices (up to nslices).