aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmltooling/packetprotocol/qpacket.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qmltooling/packetprotocol/qpacket.cpp')
-rw-r--r--src/plugins/qmltooling/packetprotocol/qpacket.cpp27
1 files changed, 25 insertions, 2 deletions
diff --git a/src/plugins/qmltooling/packetprotocol/qpacket.cpp b/src/plugins/qmltooling/packetprotocol/qpacket.cpp
index c42288e920..fab0a5b189 100644
--- a/src/plugins/qmltooling/packetprotocol/qpacket.cpp
+++ b/src/plugins/qmltooling/packetprotocol/qpacket.cpp
@@ -108,11 +108,34 @@ QPacket::QPacket(int version, const QByteArray &data)
}
/*!
- Returns raw packet data.
+ Returns a reference to the raw packet data.
*/
-QByteArray QPacket::data() const
+const QByteArray &QPacket::data() const
{
return buf.data();
}
+/*!
+ Returns a copy of the raw packet data, with extra reserved space removed.
+ Mind that this triggers a deep copy. Use it if you anticipate the data to be detached soon anyway.
+ */
+QByteArray QPacket::squeezedData() const
+{
+ QByteArray ret = buf.data();
+ ret.squeeze();
+ return ret;
+}
+
+/*!
+ Clears the packet, discarding any data.
+ */
+void QPacket::clear()
+{
+ buf.reset();
+ QByteArray &buffer = buf.buffer();
+ // Keep the old size to prevent unnecessary allocations
+ buffer.reserve(buffer.capacity());
+ buffer.truncate(0);
+}
+
QT_END_NAMESPACE