17 #ifndef JUBATUS_CORE_COMMON_BYTE_BUFFER_HPP_
18 #define JUBATUS_CORE_COMMON_BYTE_BUFFER_HPP_
23 #include <msgpack.hpp>
24 #include "jubatus/util/lang/shared_ptr.h"
36 :
buf_(new std::vector<char>(size)) {
40 const char*
const first =
static_cast<const char*
>(
ptr);
41 buf_.reset(
new std::vector<char>(first, first+size));
62 const char*
const first =
static_cast<const char*
>(
ptr);
63 buf_->assign(first, first + size);
69 const char*
ptr()
const {
79 return const_cast<char*
>(
92 jubatus::util::lang::shared_ptr<std::vector<char> >
buf_;
108 if (o.type != type::RAW) {
112 b.
assign(o.via.raw.ptr, o.via.raw.size);
116 template<
typename Stream>
120 o.pack_raw(b.
size());
121 o.pack_raw_body(b.
ptr(), b.
size());
126 object::with_zone& o,
129 char* ptr =
static_cast<char*
>(o.zone->malloc(b.
size()));
131 o.via.raw.size =
static_cast<uint32_t
>(b.
size());
132 std::memcpy(ptr, b.
ptr(), b.
size());
139 o.via.raw.ptr = b.
ptr();
140 o.via.raw.size =
static_cast<uint32_t
>(b.
size());
145 #endif // JUBATUS_CORE_COMMON_BYTE_BUFFER_HPP_
void swap(byte_buffer &one, byte_buffer &another)
packer< Stream > & operator<<(packer< Stream > &o, const jubatus::core::common::byte_buffer &b)
byte_buffer(const void *ptr, size_t size)
void swap(byte_buffer &other)
void assign(const void *ptr, size_t size)
jubatus::core::common::byte_buffer & operator>>(object o, jubatus::core::common::byte_buffer &b)
jubatus::util::lang::shared_ptr< std::vector< char > > buf_