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

Method serialize

proto/proto_final_models.cpp:195–213  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

193}
194
195size_t OrderFinalModel::serialize(const ::proto::Order& value)
196{
197 size_t fbe_initial_size = this->buffer().size();
198
199 uint32_t fbe_struct_type = (uint32_t)fbe_type();
200 uint32_t fbe_struct_size = (uint32_t)(8 + _model.fbe_allocation_size(value));
201 uint32_t fbe_struct_offset = (uint32_t)(this->buffer().allocate(fbe_struct_size) - this->buffer().offset());
202 assert(((this->buffer().offset() + fbe_struct_offset + fbe_struct_size) <= this->buffer().size()) && "Model is broken!");
203 if ((this->buffer().offset() + fbe_struct_offset + fbe_struct_size) > this->buffer().size())
204 return 0;
205
206 fbe_struct_size = (uint32_t)(8 + _model.set(value));
207 this->buffer().resize(fbe_initial_size + fbe_struct_size);
208
209 *((uint32_t*)(this->buffer().data() + this->buffer().offset() + _model.fbe_offset() - 8)) = fbe_struct_size;
210 *((uint32_t*)(this->buffer().data() + this->buffer().offset() + _model.fbe_offset() - 4)) = fbe_struct_type;
211
212 return fbe_struct_size;
213}
214
215size_t OrderFinalModel::deserialize(::proto::Order& value) const noexcept
216{

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