summaryrefslogtreecommitdiffstats
path: root/common/entitybuffer.h
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2015-04-09 14:29:18 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2015-04-09 14:29:18 +0200
commitc4e098fae7340d6d73cd4fbe880440baca1ddd49 (patch)
treed7762b84f78a4dc502556629f57608d0c3102434 /common/entitybuffer.h
parent855e3d7d0e3779e76e5af55bbf4c851acbd76e56 (diff)
downloadsink-c4e098fae7340d6d73cd4fbe880440baca1ddd49.tar.gz
sink-c4e098fae7340d6d73cd4fbe880440baca1ddd49.zip
Refactored buffer extraction from vector.
Diffstat (limited to 'common/entitybuffer.h')
-rw-r--r--common/entitybuffer.h19
1 files changed, 19 insertions, 0 deletions
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:
23 */ 23 */
24 static void assembleEntityBuffer(flatbuffers::FlatBufferBuilder &fbb, void const *metadataData, size_t metadataSize, void const *resourceData, size_t resourceSize, void const *localData, size_t localSize); 24 static void assembleEntityBuffer(flatbuffers::FlatBufferBuilder &fbb, void const *metadataData, size_t metadataSize, void const *resourceData, size_t resourceSize, void const *localData, size_t localSize);
25 static flatbuffers::Offset<flatbuffers::Vector<uint8_t> > appendAsVector(flatbuffers::FlatBufferBuilder &fbb, void const *data, size_t size); 25 static flatbuffers::Offset<flatbuffers::Vector<uint8_t> > appendAsVector(flatbuffers::FlatBufferBuilder &fbb, void const *data, size_t size);
26 template<typename T>
27 static const T *readBuffer(const uint8_t *data, int size)
28 {
29 flatbuffers::Verifier verifier(data, size);
30 if (verifier.VerifyBuffer<T>()) {
31 return flatbuffers::GetRoot<T>(data);
32 }
33 return nullptr;
34 }
35
36 template<typename T>
37 static const T *readBuffer(const flatbuffers::Vector<uint8_t> *data)
38 {
39 if (data) {
40 return readBuffer<T>(data->Data(), data->size());
41 }
42 return nullptr;
43 }
44
26 45
27private: 46private:
28 const Entity *mEntity; 47 const Entity *mEntity;