19 #ifndef GRPCPP_IMPL_CODEGEN_BYTE_BUFFER_H 20 #define GRPCPP_IMPL_CODEGEN_BYTE_BUFFER_H 34 class ServerInterface;
36 class ServerInterface;
39 class CallOpSendMessage;
44 template <
class ServiceType,
class RequestType,
class ResponseType>
46 template <
class ServiceType,
class RequestType,
class ResponseType>
48 template <
class RequestType,
class ResponseType>
50 template <
class RequestType,
class ResponseType>
52 template <StatusCode code>
56 class GrpcByteBufferPeer;
57 template <
class ServiceType,
class RequestType,
class ResponseType>
59 template <
class ServiceType,
class RequestType,
class ResponseType>
74 static_assert(std::is_same<decltype(slices[0].slice_),
grpc_slice>::value,
75 "Slice must have same representation as grpc_slice");
77 "Slice must have same representation as grpc_slice");
82 "ByteBuffer must have same representation as " 85 "ByteBuffer must have same representation as " 92 reinterpret_cast<grpc_slice*>(const_cast<Slice*>(slices)), nslices);
113 Status Dump(std::vector<Slice>* slices)
const;
138 return buffer_ ==
nullptr 146 other->buffer_ = buffer_;
151 bool Valid()
const {
return (buffer_ !=
nullptr); }
160 template <
class ServiceType,
class RequestType,
class ResponseType>
161 friend class RpcMethodHandler;
162 template <
class ServiceType,
class RequestType,
class ResponseType>
163 friend class ServerStreamingHandler;
164 template <
class ServiceType,
class RequestType,
class ResponseType>
166 template <
class ServiceType,
class RequestType,
class ResponseType>
168 template <
class RequestType,
class ResponseType>
170 template <
class RequestType,
class ResponseType>
171 friend class ::grpc::internal::CallbackServerStreamingHandler;
172 template <StatusCode code>
178 friend class internal::GrpcByteBufferPeer;
193 class ByteBufferPointer {
204 ByteBufferPointer bbuf_ptr()
const {
return ByteBufferPointer(
this); }
211 dest->set_buffer(byte_buffer->buffer_);
224 #endif // GRPCPP_IMPL_CODEGEN_BYTE_BUFFER_H
void Clear()
Remove all data.
Definition: byte_buffer.h:116
A wrapper class of an application provided server streaming handler.
Definition: byte_buffer.h:47
static Status Serialize(const ByteBuffer &source, ByteBuffer *buffer, bool *own_buffer)
Definition: byte_buffer.h:214
This is a specialization of the protobuf class ZeroCopyOutputStream.
Definition: proto_buffer_writer.h:53
size_t Length() const
Buffer size in bytes.
Definition: byte_buffer.h:137
A wrapper around grpc_slice.
Definition: slice.h:35
A grpc_slice s, if initialized, represents the byte range s.bytes[0..s.length-1]. ...
Definition: slice.h:80
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:128
Definition: grpc_types.h:40
ByteBuffer(const Slice *slices, size_t nslices)
Construct buffer from slices, of which there are nslices.
Definition: byte_buffer.h:70
bool Valid() const
Is this ByteBuffer valid?
Definition: byte_buffer.h:151
void Swap(ByteBuffer *other)
Swap the state of *this and *other.
Definition: byte_buffer.h:144
Definition: byte_buffer.h:55
virtual void grpc_byte_buffer_destroy(grpc_byte_buffer *bb)=0
Defines how to serialize and deserialize some type.
Definition: serialization_traits.h:58
void Release()
Forget underlying byte buffer without destroying Use this only for un-owned byte buffers.
Definition: byte_buffer.h:134
static Status Deserialize(ByteBuffer *byte_buffer, ByteBuffer *dest)
Definition: byte_buffer.h:210
Definition: call_op_set.h:293
This header provides an object that reads bytes directly from a grpc::ByteBuffer, via the ZeroCopyInp...
Definition: alarm.h:24
A wrapper class of an application provided rpc method handler.
Definition: byte_buffer.h:45
CoreCodegenInterface * g_core_codegen_interface
Definition: call_op_set.h:50
virtual grpc_byte_buffer * grpc_raw_byte_buffer_create(grpc_slice *slice, size_t nslices)=0
Definition: byte_buffer.h:41
Definition: server_interface.h:50
virtual grpc_byte_buffer * grpc_byte_buffer_copy(grpc_byte_buffer *bb)=0
Definition: byte_buffer.h:49
Base class for running an RPC handler.
Definition: rpc_service_method.h:39
General method handler class for errors that prevent real method use e.g., handle unknown method by r...
Definition: byte_buffer.h:53
Did it work? If it didn't, why?
Definition: status.h:31
~ByteBuffer()
Definition: byte_buffer.h:101
Definition: call_op_set.h:457
This is a specialization of the protobuf class ZeroCopyInputStream The principle is to get one chunk ...
Definition: proto_buffer_reader.h:46
Definition: byte_buffer.h:51
static const Status & OK
An OK pre-defined instance.
Definition: status.h:105
ByteBuffer()
Constuct an empty buffer.
Definition: byte_buffer.h:67
A sequence of bytes.
Definition: byte_buffer.h:64
virtual size_t grpc_byte_buffer_length(grpc_byte_buffer *bb) GRPC_MUST_USE_RESULT=0