diff options
| author | Charles E. Rolke <chug@apache.org> | 2011-10-17 20:55:17 +0000 |
|---|---|---|
| committer | Charles E. Rolke <chug@apache.org> | 2011-10-17 20:55:17 +0000 |
| commit | dc6109ae293a01f12083c6e7a62231b3775382ec (patch) | |
| tree | 4a8cd949b408663b1c5991ef673714fc5d3bd029 /qpid/cpp/src | |
| parent | 94382623428d2e8f11631dff8411fa247014ee65 (diff) | |
| download | qpid-python-dc6109ae293a01f12083c6e7a62231b3775382ec.tar.gz | |
QPID-2323 Add Uuid to variant
This patch adds a const_cast to the Uuid buffer references.
On Solaris the Uuid library calls take non-const args.
See also r881679 for related Solaris fix-ups.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1185373 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src')
| -rw-r--r-- | qpid/cpp/src/qpid/framing/Uuid.cpp | 4 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/types/Uuid.cpp | 18 |
2 files changed, 15 insertions, 7 deletions
diff --git a/qpid/cpp/src/qpid/framing/Uuid.cpp b/qpid/cpp/src/qpid/framing/Uuid.cpp index 945c0a4d24..b3d1e2e1e4 100644 --- a/qpid/cpp/src/qpid/framing/Uuid.cpp +++ b/qpid/cpp/src/qpid/framing/Uuid.cpp @@ -59,7 +59,9 @@ void Uuid::clear() { // Force int 0/!0 to false/true; avoids compile warnings. bool Uuid::isNull() const { - return !!uuid_is_null(data()); + // This const cast is for Solaris which has a + // uuid_is_null that takes a non const argument + return !!uuid_is_null(const_cast<uint8_t*>(data())); } void Uuid::encode(Buffer& buf) const { diff --git a/qpid/cpp/src/qpid/types/Uuid.cpp b/qpid/cpp/src/qpid/types/Uuid.cpp index 9face4e5d2..74fddddcd0 100644 --- a/qpid/cpp/src/qpid/types/Uuid.cpp +++ b/qpid/cpp/src/qpid/types/Uuid.cpp @@ -71,7 +71,8 @@ void Uuid::clear() // Force int 0/!0 to false/true; avoids compile warnings. bool Uuid::isNull() const { - return !!uuid_is_null(bytes); + // This const cast is for Solaris which has non const arguments + return !!uuid_is_null(const_cast<uint8_t*>(bytes)); } Uuid::operator bool() const { return !isNull(); } @@ -86,7 +87,8 @@ const unsigned char* Uuid::data() const bool operator==(const Uuid& a, const Uuid& b) { - return uuid_compare(a.bytes, b.bytes) == 0; + // This const cast is for Solaris which has non const arguments + return uuid_compare(const_cast<uint8_t*>(a.bytes), const_cast<uint8_t*>(b.bytes)) == 0; } bool operator!=(const Uuid& a, const Uuid& b) @@ -96,22 +98,26 @@ bool operator!=(const Uuid& a, const Uuid& b) bool operator<(const Uuid& a, const Uuid& b) { - return uuid_compare(a.bytes, b.bytes) < 0; + // This const cast is for Solaris which has non const arguments + return uuid_compare(const_cast<uint8_t*>(a.bytes), const_cast<uint8_t*>(b.bytes)) < 0; } bool operator>(const Uuid& a, const Uuid& b) { - return uuid_compare(a.bytes, b.bytes) > 0; + // This const cast is for Solaris which has non const arguments + return uuid_compare(const_cast<uint8_t*>(a.bytes), const_cast<uint8_t*>(b.bytes)) > 0; } bool operator<=(const Uuid& a, const Uuid& b) { - return uuid_compare(a.bytes, b.bytes) <= 0; + // This const cast is for Solaris which has non const arguments + return uuid_compare(const_cast<uint8_t*>(a.bytes), const_cast<uint8_t*>(b.bytes)) <= 0; } bool operator>=(const Uuid& a, const Uuid& b) { - return uuid_compare(a.bytes, b.bytes) >= 0; + // This const cast is for Solaris which has non const arguments + return uuid_compare(const_cast<uint8_t*>(a.bytes), const_cast<uint8_t*>(b.bytes)) >= 0; } ostream& operator<<(ostream& out, Uuid uuid) |
