diff --git a/libraries/octree/src/OctreePacketData.cpp b/libraries/octree/src/OctreePacketData.cpp index b54a87bef8..bf647dfdd1 100644 --- a/libraries/octree/src/OctreePacketData.cpp +++ b/libraries/octree/src/OctreePacketData.cpp @@ -330,6 +330,22 @@ bool OctreePacketData::appendValue(bool value) { return success; } +bool OctreePacketData::appendValue(const QString& string) { + // TODO: make this a ByteCountCoded leading byte + uint16_t length = string.size() + 1; // include NULL + bool success = appendValue(length); + if (success) { + success = appendRawData((const unsigned char*)qPrintable(string), length); + } + return success; +} + +bool OctreePacketData::appendValue(const QByteArray& bytes) { + bool success = appendRawData((const unsigned char*)bytes.constData(), bytes.size()); + return success; +} + + bool OctreePacketData::appendPosition(const glm::vec3& value) { const unsigned char* data = (const unsigned char*)&value; int length = sizeof(value); diff --git a/libraries/octree/src/OctreePacketData.h b/libraries/octree/src/OctreePacketData.h index c18185b5d0..459a74ba25 100644 --- a/libraries/octree/src/OctreePacketData.h +++ b/libraries/octree/src/OctreePacketData.h @@ -144,6 +144,12 @@ public: /// appends a bool value to the end of the stream, may fail if new data stream is too long to fit in packet bool appendValue(bool value); + + /// appends a string value to the end of the stream, may fail if new data stream is too long to fit in packet + bool appendValue(const QString& string); + + /// appends a QByteArray value to the end of the stream, may fail if new data stream is too long to fit in packet + bool appendValue(const QByteArray& bytes); /// appends a position to the end of the stream, may fail if new data stream is too long to fit in packet bool appendPosition(const glm::vec3& value);