Author: chug
Date: Mon Oct 17 20:55:17 2011
New Revision: 1185373

URL: http://svn.apache.org/viewvc?rev=1185373&view=rev
Log:
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.

Modified:
    qpid/trunk/qpid/cpp/src/qpid/framing/Uuid.cpp
    qpid/trunk/qpid/cpp/src/qpid/types/Uuid.cpp

Modified: qpid/trunk/qpid/cpp/src/qpid/framing/Uuid.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/framing/Uuid.cpp?rev=1185373&r1=1185372&r2=1185373&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/framing/Uuid.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/framing/Uuid.cpp Mon Oct 17 20:55:17 2011
@@ -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 {

Modified: qpid/trunk/qpid/cpp/src/qpid/types/Uuid.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/types/Uuid.cpp?rev=1185373&r1=1185372&r2=1185373&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/types/Uuid.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/types/Uuid.cpp Mon Oct 17 20:55:17 2011
@@ -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 Uui
 
 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)



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org

Reply via email to