diff options
Diffstat (limited to 'common/bufferutils.h')
-rw-r--r-- | common/bufferutils.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/common/bufferutils.h b/common/bufferutils.h index 1eb5d15..d6008c4 100644 --- a/common/bufferutils.h +++ b/common/bufferutils.h | |||
@@ -2,6 +2,7 @@ | |||
2 | 2 | ||
3 | #include <flatbuffers/flatbuffers.h> | 3 | #include <flatbuffers/flatbuffers.h> |
4 | #include <QByteArray> | 4 | #include <QByteArray> |
5 | #include <QList> | ||
5 | 6 | ||
6 | namespace Sink { | 7 | namespace Sink { |
7 | namespace BufferUtils { | 8 | namespace BufferUtils { |
@@ -21,5 +22,27 @@ static QByteArray extractBuffer(const flatbuffers::FlatBufferBuilder &fbb) | |||
21 | { | 22 | { |
22 | return QByteArray::fromRawData(reinterpret_cast<char const *>(fbb.GetBufferPointer()), fbb.GetSize()); | 23 | return QByteArray::fromRawData(reinterpret_cast<char const *>(fbb.GetBufferPointer()), fbb.GetSize()); |
23 | } | 24 | } |
25 | |||
26 | static QList<QByteArray> fromVector(const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> &vector) | ||
27 | { | ||
28 | QList<QByteArray> list; | ||
29 | for (const auto &data : vector) { | ||
30 | Q_ASSERT(data); | ||
31 | list << QByteArray::fromStdString(data->str()); | ||
32 | } | ||
33 | return list; | ||
34 | } | ||
35 | |||
36 | template <typename T> | ||
37 | static flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> toVector(flatbuffers::FlatBufferBuilder &fbb, const T &list) | ||
38 | { | ||
39 | std::vector<flatbuffers::Offset<flatbuffers::String>> modifiedPropertiesList; | ||
40 | for (const auto &change : list) { | ||
41 | auto s = fbb.CreateString(change); | ||
42 | modifiedPropertiesList.push_back(s); | ||
43 | } | ||
44 | return fbb.CreateVector(modifiedPropertiesList); | ||
45 | } | ||
46 | |||
24 | } | 47 | } |
25 | } | 48 | } |