MCPcopy Create free account
hub / github.com/apache/incubator-pegasus / get_current_buffer

Method get_current_buffer

src/utils/binary_writer.cpp:112–132  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

110}
111
112blob binary_writer::get_current_buffer()
113{
114 if (_buffers.size() == 1) {
115 return _current_offset > 0 ? _buffers[0].range(0, _current_offset) : _buffers[0];
116 } else {
117 std::shared_ptr<char> bptr(::dsn::utils::make_shared_array<char>(_total_size));
118 blob bb(bptr, _total_size);
119 const char *ptr = bb.data();
120
121 for (int i = 0; i < static_cast<int>(_buffers.size()); i++) {
122 size_t len = (size_t)_buffers[i].length();
123 if (_current_offset > 0 && i + 1 == (int)_buffers.size()) {
124 len = _current_offset;
125 }
126
127 memcpy((void *)ptr, (const void *)_buffers[i].data(), len);
128 ptr += _buffers[i].length();
129 }
130 return bb;
131 }
132}
133
134void binary_writer::write_empty(int sz)
135{

Callers 1

read_nextMethod · 0.80

Calls 4

rangeMethod · 0.80
sizeMethod · 0.45
dataMethod · 0.45
lengthMethod · 0.45

Tested by

no test coverage detected