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

Method verify

proto/test_models.cpp:176–197  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

174}
175
176bool FieldModel<::test::StructSimple>::verify(bool fbe_verify_type) const noexcept
177{
178 if ((_buffer.offset() + fbe_offset() + fbe_size()) > _buffer.size())
179 return true;
180
181 uint32_t fbe_struct_offset = *((const uint32_t*)(_buffer.data() + _buffer.offset() + fbe_offset()));
182 if ((fbe_struct_offset == 0) || ((_buffer.offset() + fbe_struct_offset + 4 + 4) > _buffer.size()))
183 return false;
184
185 uint32_t fbe_struct_size = *((const uint32_t*)(_buffer.data() + _buffer.offset() + fbe_struct_offset));
186 if (fbe_struct_size < (4 + 4))
187 return false;
188
189 uint32_t fbe_struct_type = *((const uint32_t*)(_buffer.data() + _buffer.offset() + fbe_struct_offset + 4));
190 if (fbe_verify_type && (fbe_struct_type != fbe_type()))
191 return false;
192
193 _buffer.shift(fbe_struct_offset);
194 bool fbe_result = verify_fields(fbe_struct_size);
195 _buffer.unshift(fbe_struct_offset);
196 return fbe_result;
197}
198
199bool FieldModel<::test::StructSimple>::verify_fields(size_t fbe_struct_size) const noexcept
200{

Callers 1

verify_fieldsMethod · 0.45

Calls 8

offsetMethod · 0.45
sizeMethod · 0.45
dataMethod · 0.45
shiftMethod · 0.45
unshiftMethod · 0.45
bufferMethod · 0.45
fbe_offsetMethod · 0.45
fbe_sizeMethod · 0.45

Tested by

no test coverage detected