summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/framing/Uuid.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/framing/Uuid.cpp')
-rw-r--r--cpp/src/qpid/framing/Uuid.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/cpp/src/qpid/framing/Uuid.cpp b/cpp/src/qpid/framing/Uuid.cpp
index 47010ba515..b1523f0d61 100644
--- a/cpp/src/qpid/framing/Uuid.cpp
+++ b/cpp/src/qpid/framing/Uuid.cpp
@@ -17,7 +17,11 @@
*/
#include "Uuid.h"
-#include "uuid/uuid.h"
+
+#include "qpid/QpidError.h"
+#include "qpid/framing/Buffer.h"
+
+#include <uuid/uuid.h>
namespace qpid {
namespace framing {
@@ -30,6 +34,16 @@ Uuid::Uuid(uint8_t* uu) { uuid_copy(c_array(),uu); }
static const size_t UNPARSED_SIZE=36;
+void Uuid::encode(Buffer& buf) {
+ buf.putRawData(data(), size());
+}
+
+void Uuid::decode(Buffer& buf) {
+ if (buf.available() < size())
+ THROW_QPID_ERROR(FRAMING_ERROR, "Not enough data for UUID.");
+ buf.getRawData(c_array(), size());
+}
+
ostream& operator<<(ostream& out, const Uuid& uuid) {
char unparsed[UNPARSED_SIZE + 1];
uuid_unparse(uuid.data(), unparsed);