MCPcopy Create free account
hub / github.com/chronoxor/FastBinaryEncoding / set_begin

Method set_begin

proto/protoex_models.cpp:231–249  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

229}
230
231size_t FieldModel<::protoex::Order>::set_begin()
232{
233 assert(((_buffer.offset() + fbe_offset() + fbe_size()) <= _buffer.size()) && "Model is broken!");
234 if ((_buffer.offset() + fbe_offset() + fbe_size()) > _buffer.size())
235 return 0;
236
237 uint32_t fbe_struct_size = (uint32_t)fbe_body();
238 uint32_t fbe_struct_offset = (uint32_t)(_buffer.allocate(fbe_struct_size) - _buffer.offset());
239 assert(((fbe_struct_offset > 0) && ((_buffer.offset() + fbe_struct_offset + fbe_struct_size) <= _buffer.size())) && "Model is broken!");
240 if ((fbe_struct_offset == 0) || ((_buffer.offset() + fbe_struct_offset + fbe_struct_size) > _buffer.size()))
241 return 0;
242
243 *((uint32_t*)(_buffer.data() + _buffer.offset() + fbe_offset())) = fbe_struct_offset;
244 *((uint32_t*)(_buffer.data() + _buffer.offset() + fbe_struct_offset)) = fbe_struct_size;
245 *((uint32_t*)(_buffer.data() + _buffer.offset() + fbe_struct_offset + 4)) = (uint32_t)fbe_type();
246
247 _buffer.shift(fbe_struct_offset);
248 return fbe_struct_offset;
249}
250
251void FieldModel<::protoex::Order>::set_end(size_t fbe_begin)
252{

Callers

nothing calls this directly

Calls 5

offsetMethod · 0.45
sizeMethod · 0.45
allocateMethod · 0.45
dataMethod · 0.45
shiftMethod · 0.45

Tested by

no test coverage detected