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

Method serialize

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

Source from the content-addressed store, hash-verified

229}
230
231size_t OrderFinalModel::serialize(const ::protoex::Order& value)
232{
233 size_t fbe_initial_size = this->buffer().size();
234
235 uint32_t fbe_struct_type = (uint32_t)fbe_type();
236 uint32_t fbe_struct_size = (uint32_t)(8 + _model.fbe_allocation_size(value));
237 uint32_t fbe_struct_offset = (uint32_t)(this->buffer().allocate(fbe_struct_size) - this->buffer().offset());
238 assert(((this->buffer().offset() + fbe_struct_offset + fbe_struct_size) <= this->buffer().size()) && "Model is broken!");
239 if ((this->buffer().offset() + fbe_struct_offset + fbe_struct_size) > this->buffer().size())
240 return 0;
241
242 fbe_struct_size = (uint32_t)(8 + _model.set(value));
243 this->buffer().resize(fbe_initial_size + fbe_struct_size);
244
245 *((uint32_t*)(this->buffer().data() + this->buffer().offset() + _model.fbe_offset() - 8)) = fbe_struct_size;
246 *((uint32_t*)(this->buffer().data() + this->buffer().offset() + _model.fbe_offset() - 4)) = fbe_struct_type;
247
248 return fbe_struct_size;
249}
250
251size_t OrderFinalModel::deserialize(::protoex::Order& value) const noexcept
252{

Callers

nothing calls this directly

Calls 9

sizeMethod · 0.45
bufferMethod · 0.45
fbe_allocation_sizeMethod · 0.45
allocateMethod · 0.45
offsetMethod · 0.45
setMethod · 0.45
resizeMethod · 0.45
dataMethod · 0.45
fbe_offsetMethod · 0.45

Tested by

no test coverage detected