From c4e098fae7340d6d73cd4fbe880440baca1ddd49 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Thu, 9 Apr 2015 14:29:18 +0200 Subject: Refactored buffer extraction from vector. --- common/entitybuffer.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'common') diff --git a/common/entitybuffer.h b/common/entitybuffer.h index f22c84e..82152c9 100644 --- a/common/entitybuffer.h +++ b/common/entitybuffer.h @@ -23,6 +23,25 @@ public: */ static void assembleEntityBuffer(flatbuffers::FlatBufferBuilder &fbb, void const *metadataData, size_t metadataSize, void const *resourceData, size_t resourceSize, void const *localData, size_t localSize); static flatbuffers::Offset > appendAsVector(flatbuffers::FlatBufferBuilder &fbb, void const *data, size_t size); + template + static const T *readBuffer(const uint8_t *data, int size) + { + flatbuffers::Verifier verifier(data, size); + if (verifier.VerifyBuffer()) { + return flatbuffers::GetRoot(data); + } + return nullptr; + } + + template + static const T *readBuffer(const flatbuffers::Vector *data) + { + if (data) { + return readBuffer(data->Data(), data->size()); + } + return nullptr; + } + private: const Entity *mEntity; -- cgit v1.2.3