diff options
author | 2015-03-10 12:42:18 -0700 | |
---|---|---|
committer | 2015-03-10 12:42:18 -0700 | |
commit | 61c413182dafc3d58874a62256b130d8df7bd77d (patch) | |
tree | 98e5e19f9ae3c93379f4f1cfd23fac5384f8a5d9 /include/grpc++/byte_buffer.h | |
parent | 5f4539f4e8be43c477bad8fba84c6ce6c125a120 (diff) |
initial imple of byte buffer and slice
Diffstat (limited to 'include/grpc++/byte_buffer.h')
-rw-r--r-- | include/grpc++/byte_buffer.h | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/include/grpc++/byte_buffer.h b/include/grpc++/byte_buffer.h index 36b301fd9d..e864ca3bba 100644 --- a/include/grpc++/byte_buffer.h +++ b/include/grpc++/byte_buffer.h @@ -31,12 +31,15 @@ * */ -#ifndef __GRPCPP_BYTE_BUFFER_H_ -#define __GRPCPP_BYTE_BUFFER_H_ +#ifndef GRPCXX_BYTE_BUFFER_H +#define GRPCXX_BYTE_BUFFER_H #include <grpc/grpc.h> #include <grpc/support/log.h> #include <grpc++/config.h> +#include <grpc++/slice.h> + +#include <vector> namespace grpc { @@ -44,29 +47,38 @@ class ByteBuffer GRPC_FINAL { public: ByteBuffer() : buffer_(nullptr) {} + ByteBuffer(Slice* slices, size_t nslices); + ~ByteBuffer() { if (buffer_) { grpc_byte_buffer_destroy(buffer_); } } + void Dump(std::vector<Slice>* slices); + + void Clear(); + size_t Length(); + private: friend class CallOpBuffer; // takes ownership void set_buffer(grpc_byte_buffer* buf) { - GPR_ASSERT(!buffer_); + if (buffer_) { + gpr_log(GPR_ERROR, "Overriding existing buffer"); + Clear(); + } buffer_ = buf; } grpc_byte_buffer* buffer() const { - GPR_ASSERT(buffer_); return buffer_; } grpc_byte_buffer* buffer_; }; -} // namespace +} // namespace grpc -#endif +#endif // GRPCXX_BYTE_BUFFER_H |