diff options
Diffstat (limited to 'cpp/src/qpid/framing/Uuid.cpp')
| -rw-r--r-- | cpp/src/qpid/framing/Uuid.cpp | 16 |
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); |
