You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2007/06/01 16:30:26 UTC
svn commit: r543494 - in /activemq/activemq-cpp/trunk/src/decaf/src:
main/Makefile.am main/decaf/util/Guid.cpp main/decaf/util/Guid.h
test/Makefile.am test/decaf/util/GuidTest.cpp test/decaf/util/GuidTest.h
Author: tabish
Date: Fri Jun 1 07:30:25 2007
New Revision: 543494
URL: http://svn.apache.org/viewvc?view=rev&rev=543494
Log:
http://issues.apache.org/activemq/browse/AMQCPP-103
Building Decaf lib
Added:
activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/Guid.cpp
activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/Guid.h
activemq/activemq-cpp/trunk/src/decaf/src/test/decaf/util/GuidTest.cpp
activemq/activemq-cpp/trunk/src/decaf/src/test/decaf/util/GuidTest.h
Modified:
activemq/activemq-cpp/trunk/src/decaf/src/main/Makefile.am
activemq/activemq-cpp/trunk/src/decaf/src/test/Makefile.am
Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/Makefile.am
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/Makefile.am?view=diff&rev=543494&r1=543493&r2=543494
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/Makefile.am (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/Makefile.am Fri Jun 1 07:30:25 2007
@@ -34,6 +34,7 @@
decaf/util/concurrent/Mutex.cpp \
decaf/util/concurrent/CountDownLatch.cpp \
decaf/util/Date.cpp \
+ decaf/util/Guid.cpp \
decaf/util/StringTokenizer.cpp \
decaf/util/logging/LoggerHierarchy.cpp \
decaf/util/logging/Logger.cpp \
@@ -94,6 +95,7 @@
decaf/util/concurrent/Synchronizable.h \
decaf/util/concurrent/Mutex.h \
decaf/util/Date.h \
+ decaf/util/Guid.h \
decaf/util/Properties.h \
decaf/util/StringTokenizer.h \
decaf/util/logging/Handler.h \
Added: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/Guid.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/Guid.cpp?view=auto&rev=543494
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/Guid.cpp (added)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/Guid.cpp Fri Jun 1 07:30:25 2007
@@ -0,0 +1,405 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "Guid.h"
+#include <stdexcept>
+
+using namespace decaf::util;
+using namespace decaf::lang;
+using namespace decaf::lang::exceptions;
+using namespace std;
+
+////////////////////////////////////////////////////////////////////////////////
+Guid::Guid()
+{
+ // Clear internal uuid, would pass isNull
+ #if !defined(HAVE_OBJBASE_H)
+ memset(&uuid, 0, sizeof(uuid_t));
+ #else
+ ::UuidCreateNil(&uuid);
+ #endif
+}
+
+////////////////////////////////////////////////////////////////////////////////
+Guid::Guid( const Guid& source )
+{
+ // Set this uuid to that of the source
+ *this = source;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+Guid::Guid( const std::string& source )
+ throw ( IllegalArgumentException )
+{
+ if(source == "")
+ {
+ throw IllegalArgumentException(
+ __FILE__, __LINE__,
+ "GUID::fromBytes - Source was Empty");
+ }
+
+ // Set this uuid to that of the source
+ *this = source;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+Guid::~Guid()
+{
+}
+
+////////////////////////////////////////////////////////////////////////////////
+bool Guid::isNull() const
+{
+ #if !defined(HAVE_OBJBASE_H)
+ // Check the uuid APIs is null method
+ return uuid_is_null(*(const_cast<uuid_t*>(&uuid))) == 1 ? true : false;
+ #else
+ RPC_STATUS status;
+
+ BOOL result = ::UuidIsNil( const_cast<GUID*>( &uuid ), &status );
+
+ return (result == TRUE) ? true : false;
+ #endif
+}
+
+////////////////////////////////////////////////////////////////////////////////
+void Guid::setNull()
+{
+ #if !defined(HAVE_OBJBASE_H)
+ // use the uuid function to clear
+ uuid_clear(uuid);
+ #else
+ ::UuidCreateNil(&uuid);
+ #endif
+}
+
+////////////////////////////////////////////////////////////////////////////////
+Guid& Guid::createGUID() throw( RuntimeException )
+{
+ #if !defined(HAVE_OBJBASE_H)
+ // Use the uuid_generate method to create a new GUID
+ uuid_generate(uuid);
+ #else
+ // Create a uuid with the Co Create GUID
+ RPC_STATUS lhResult = ::UuidCreate( &uuid );
+
+ if ( lhResult == RPC_S_UUID_NO_ADDRESS )
+ {
+ throw RuntimeException(
+ __FILE__, __LINE__,
+ "GUIG::createGUID - Failed Creating GUID");
+ }
+ #endif
+
+ return *this;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+std::string Guid::toString() const throw( RuntimeException )
+{
+ std::string uuid_str = "";
+
+ #if !defined(HAVE_OBJBASE_H)
+ // Create storage for the string buffer
+ char buffer[36] = {0};
+
+ // parse the uuid to the string
+ uuid_unparse(*(const_cast<uuid_t*>(&uuid)), buffer);
+
+ // Store it in a string
+ uuid_str = buffer;
+ #else
+ // Convert the GUID object to a string.
+ unsigned char* guidStr = 0;
+
+ RPC_STATUS result = ::UuidToString(
+ const_cast<GUID*>(&uuid), &guidStr);
+
+ if(result == RPC_S_OUT_OF_MEMORY)
+ {
+ throw RuntimeException(
+ __FILE__, __LINE__,
+ "GUIG::createGUID - Failed Creating GUID");
+ }
+
+ uuid_str = (char*)guidStr;
+
+ // Dispose of the GUID string.
+ ::RpcStringFree(&guidStr);
+ #endif
+
+ return uuid_str;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+Guid::operator std::string() const
+{
+ return toString();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+const unsigned char* Guid::toBytes() const
+{
+ unsigned char* buffer = new unsigned char[getRawBytesSize()];
+
+ // copy our buffer
+ #if !defined(HAVE_OBJBASE_H)
+ uuid_copy(buffer, *(const_cast<uuid_t*>(&uuid)));
+ #else
+ memcpy(buffer, &uuid, getRawBytesSize());
+ #endif
+
+ return &buffer[0];
+}
+
+////////////////////////////////////////////////////////////////////////////////
+Guid& Guid::fromBytes( const unsigned char* bytes )
+ throw ( IllegalArgumentException )
+{
+ if(bytes == NULL)
+ {
+ throw IllegalArgumentException(
+ __FILE__, __LINE__,
+ "GUID::fromBytes - bytes pointer was NULL");
+ }
+
+ // Copy the data
+ #if !defined(HAVE_OBJBASE_H)
+ memcpy(uuid, bytes, getRawBytesSize());
+ #else
+ memcpy(&uuid, bytes, getRawBytesSize());
+ #endif
+
+ return *this;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+int Guid::getRawBytesSize() const
+{
+ #if !defined(HAVE_OBJBASE_H)
+ return sizeof(uuid_t);
+ #else
+ return sizeof(::GUID);
+ #endif
+}
+
+////////////////////////////////////////////////////////////////////////////////
+Guid::operator const unsigned char*() const
+{
+ #if !defined(HAVE_OBJBASE_H)
+ return &uuid[0];
+ #else
+ return reinterpret_cast<const unsigned char*>(&uuid);
+ #endif
+}
+
+////////////////////////////////////////////////////////////////////////////////
+Guid& Guid::operator=( const Guid& source )
+ throw ( IllegalArgumentException )
+{
+ #if !defined(HAVE_OBJBASE_H)
+ // Use the uuid method to copy
+ uuid_copy(uuid, *(const_cast<uuid_t*>(&source.uuid)));
+ #else
+ // Use mem copy
+ memcpy(&uuid, &source.uuid, getRawBytesSize());
+ #endif
+
+ return *this;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+Guid& Guid::operator=( const std::string& source )
+ throw ( IllegalArgumentException )
+{
+ #if !defined(HAVE_OBJBASE_H)
+ // Parse a uuid from the passed in string
+ uuid_parse( const_cast<char*>(source.c_str()), uuid );
+ #else
+ if ( source.empty() )
+ {
+ ::UuidCreateNil( &uuid );
+ }
+ else
+ {
+ RPC_STATUS hResult =
+ ::UuidFromString( (unsigned char*)source.c_str(), &uuid );
+
+ if ( hResult == RPC_S_INVALID_STRING_UUID )
+ {
+ throw IllegalArgumentException(
+ __FILE__, __LINE__,
+ "GUID::fromBytes - Invalid GUID String");
+ }
+ }
+ #endif
+
+ return *this;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+bool Guid::operator==( const Guid& source ) const
+{
+ #if !defined(HAVE_OBJBASE_H)
+ // uuid_compare returns 0 for equal
+ return uuid_compare(
+ *(const_cast<uuid_t*>(&uuid)),
+ *(const_cast<uuid_t*>(&source.uuid))) == 0 ? true : false;
+ #else
+ RPC_STATUS status;
+
+ BOOL result = ::UuidEqual(
+ const_cast<GUID*>( &uuid ),
+ const_cast<GUID*>( &source.uuid ),
+ &status );
+
+ return ( result == TRUE ) ? true : false;
+ #endif
+}
+
+////////////////////////////////////////////////////////////////////////////////
+bool Guid::operator==( const std::string& source ) const
+{
+ return *this == Guid(source);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+bool Guid::operator!=( const Guid& source ) const
+{
+ return !(*this == source);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+bool Guid::operator!=( const std::string& source ) const
+{
+ return !( *this == source );
+}
+
+////////////////////////////////////////////////////////////////////////////////
+bool Guid::operator<( const Guid& source ) const
+{
+ #if !defined(HAVE_OBJBASE_H)
+ // uuid_compare returns 0 for equal
+ return uuid_compare(
+ *(const_cast<uuid_t*>(&uuid)),
+ *(const_cast<uuid_t*>(&source.uuid))) < 0 ? true : false;
+ #else
+ RPC_STATUS status;
+
+ int result = ::UuidCompare(
+ const_cast<GUID*>( &uuid ),
+ const_cast<GUID*>( &source.uuid ),
+ &status );
+
+ return ( result < 0 ) ? true : false;
+ #endif
+}
+
+////////////////////////////////////////////////////////////////////////////////
+bool Guid::operator<( const std::string& source ) const
+{
+ return *this < Guid(source);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+bool Guid::operator<=( const Guid& source ) const
+{
+ #if !defined(HAVE_OBJBASE_H)
+ // uuid_compare returns 0 for equal
+ return uuid_compare(
+ *(const_cast<uuid_t*>(&uuid)),
+ *(const_cast<uuid_t*>(&source.uuid))) <= 0 ? true : false;
+ #else
+ RPC_STATUS status;
+
+ int result = ::UuidCompare(
+ const_cast<GUID*>( &uuid ),
+ const_cast<GUID*>( &source.uuid ),
+ &status );
+
+ return ( result <= 0 ) ? true : false;
+ #endif
+}
+
+////////////////////////////////////////////////////////////////////////////////
+bool Guid::operator<=( const std::string& source ) const
+{
+ return *this <= Guid(source);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+bool Guid::operator>( const Guid& source ) const
+{
+ #if !defined(HAVE_OBJBASE_H)
+ // uuid_compare returns 0 for equal
+ return uuid_compare(
+ *(const_cast<uuid_t*>(&uuid)),
+ *(const_cast<uuid_t*>(&source.uuid))) > 0 ? true : false;
+ #else
+ RPC_STATUS status;
+
+ int result = ::UuidCompare(
+ const_cast<GUID*>( &uuid ),
+ const_cast<GUID*>( &source.uuid ),
+ &status );
+
+ return ( result > 0 ) ? true : false;
+ #endif
+}
+
+////////////////////////////////////////////////////////////////////////////////
+bool Guid::operator>( const std::string& source ) const
+{
+ return *this > Guid(source);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+bool Guid::operator>=( const Guid& source ) const
+{
+ #if !defined(HAVE_OBJBASE_H)
+ // uuid_compare returns 0 for equal
+ return uuid_compare(
+ *(const_cast<uuid_t*>(&uuid)),
+ *(const_cast<uuid_t*>(&source.uuid))) >= 0 ? true : false;
+ #else
+ RPC_STATUS status;
+
+ int result = ::UuidCompare(
+ const_cast<GUID*>(&uuid),
+ const_cast<GUID*>(&source.uuid),
+ &status);
+
+ return (result >= 0) ? true : false;
+ #endif
+}
+
+////////////////////////////////////////////////////////////////////////////////
+bool Guid::operator>=( const std::string& source ) const
+{
+ return *this >= Guid(source);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+std::string Guid::createGUIDString()
+{
+ return Guid().createGUID().toString();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+const unsigned char* createGUIDBytes()
+{
+ return Guid().createGUID().toBytes();
+}
Added: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/Guid.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/Guid.h?view=auto&rev=543494
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/Guid.h (added)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/Guid.h Fri Jun 1 07:30:25 2007
@@ -0,0 +1,189 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef _DECAF_UTIL_GUID_H_
+#define _DECAF_UTIL_GUID_H_
+
+#include <decaf/lang/exceptions/RuntimeException.h>
+#include <decaf/lang/exceptions/IllegalArgumentException.h>
+#include <decaf/util/Config.h>
+
+// #if defined(HAVE_OBJBASE_H) && defined(HAVE_RPCDCE_H)
+#if defined(HAVE_OBJBASE_H)
+ #include <objbase.h>
+ #include <rpcdce.h>
+#elif defined(HAVE_UUID_UUID_H)
+ #include <uuid/uuid.h>
+#elif defined(HAVE_UUID_H)
+ #include <uuid.h>
+#endif
+
+#include <string>
+
+namespace decaf{
+namespace util{
+
+ class DECAF_API Guid
+ {
+ public:
+
+ Guid();
+ Guid(const Guid& source);
+ Guid(const std::string& source)
+ throw ( lang::exceptions::IllegalArgumentException );
+ virtual ~Guid();
+
+ /**
+ * Determines if this GUID is null, if so it can be initialized with a
+ * call to <code>createGUID</code>.
+ * @return true for Null GUID, false otherwise.
+ */
+ bool isNull() const;
+
+ /**
+ * Clears the GUID's current value and sets it to a NULL GUID value
+ * will now pass <code>isNull</code>.
+ */
+ void setNull();
+
+ /**
+ * Generate a new GUID which will overwrite any current GUID value
+ * @return Reference to this object that now has a new GUID
+ */
+ Guid& createGUID() throw( lang::exceptions::RuntimeException );
+
+ /**
+ * Converts the GUID to a string and returns that string
+ * @return a string with this GUID's stringified value
+ */
+ std::string toString() const throw( lang::exceptions::RuntimeException );
+
+ /**
+ * Converts the GUID to a byte array and return a pointer to the
+ * new array, called takes ownership and must delete this array
+ * when done.
+ * @return a byte array with the GUID byte value, size = 16
+ */
+ const unsigned char* toBytes() const;
+
+ /**
+ * Initializes this GUID with the GUID specified in the bytes parameter
+ * @return reference to this object.
+ */
+ Guid& fromBytes( const unsigned char* bytes )
+ throw ( lang::exceptions::IllegalArgumentException );
+
+ /**
+ * Returns the Size in Bytes of the Raw bytes representation of the
+ * GUID.
+ * @return size of the Raw bytes representation
+ */
+ int getRawBytesSize() const;
+
+ /**
+ * string type cast operator
+ * @returns string representation of this GUID
+ */
+ operator std::string() const;
+
+ /**
+ * byte array cast operator, caller does not own this memeory
+ * @returns byte array with the GUID byte value representation
+ */
+ operator const unsigned char*() const;
+
+ /**
+ * Assignment operators
+ * @return Reference to this GUID object
+ */
+ Guid& operator=( const Guid& source )
+ throw ( lang::exceptions::IllegalArgumentException );
+ Guid& operator=( const std::string& source )
+ throw ( lang::exceptions::IllegalArgumentException );
+
+ /**
+ * Equality Comparison Operators
+ * @return true for equal. false otherwise
+ */
+ bool operator==( const Guid& source ) const;
+ bool operator==( const std::string& source ) const;
+
+ /**
+ * Inequality Comparison Operators
+ * @return true for equal. false otherwise
+ */
+ bool operator!=( const Guid& source ) const;
+ bool operator!=( const std::string& source ) const;
+
+ /**
+ * Less than operators
+ * @return true for equal. false otherwise
+ */
+ bool operator<(const Guid& source) const;
+ bool operator<(const std::string& source) const;
+
+ /**
+ * Less than or equal to operators
+ * @return true for equal. false otherwise
+ */
+ bool operator<=( const Guid& source ) const;
+ bool operator<=( const std::string& source ) const;
+
+ /**
+ * Greater than operators
+ * @return true for equal. false otherwise
+ */
+ bool operator>( const Guid& source ) const;
+ bool operator>( const std::string& source ) const;
+
+ /**
+ * Greater than or equal to operators
+ * @return true for equal. false otherwise
+ */
+ bool operator>=( const Guid& source ) const;
+ bool operator>=( const std::string& source ) const;
+
+ public:
+
+ /**
+ * Static Guid Creation Method, creates a GUID and returns it as a string
+ * @return Guid string.
+ */
+ static std::string createGUIDString();
+
+ /**
+ * Static Guid Create Method, create a GUID and returns the byte representation
+ * of the new GUID.
+ * @return Guid bytes array, size is 16
+ */
+ static const unsigned char* createGUIDBytes();
+
+ private:
+
+ // the uuid that this object represents.
+ #ifdef HAVE_OBJBASE_H
+ ::GUID uuid;
+ #elif defined(HAVE_UUID_T)
+ uuid_t uuid;
+ #else
+ #error Platform does not support any of the standard UUID types
+ #endif
+
+ };
+
+}}
+
+#endif /*_DECAF_UTIL_GUID_H_*/
Modified: activemq/activemq-cpp/trunk/src/decaf/src/test/Makefile.am
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/test/Makefile.am?view=diff&rev=543494&r1=543493&r2=543494
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/test/Makefile.am (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/test/Makefile.am Fri Jun 1 07:30:25 2007
@@ -22,6 +22,7 @@
decaf/lang/ThreadTest.cpp \
decaf/util/StringTokenizerTest.cpp \
decaf/util/DateTest.cpp \
+ decaf/util/GuidTest.cpp \
decaf/util/concurrent/CountDownLatchTest.cpp \
main.cpp
Added: activemq/activemq-cpp/trunk/src/decaf/src/test/decaf/util/GuidTest.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/test/decaf/util/GuidTest.cpp?view=auto&rev=543494
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/test/decaf/util/GuidTest.cpp (added)
+++ activemq/activemq-cpp/trunk/src/decaf/src/test/decaf/util/GuidTest.cpp Fri Jun 1 07:30:25 2007
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "GuidTest.h"
+
+#include <decaf/util/Guid.h>
+
+CPPUNIT_TEST_SUITE_REGISTRATION( decaf::util::GuidTest );
+
+using namespace std;
+using namespace decaf;
+using namespace decaf::util;
+using namespace decaf::lang;
+
+void GuidTest::test() {
+
+ util::Guid guid;
+
+ guid.createGUID();
+
+ CPPUNIT_ASSERT( guid.toString() == (std::string)guid );
+
+ Guid copy = guid;
+
+ CPPUNIT_ASSERT( guid == copy );
+ CPPUNIT_ASSERT( !(guid < copy) );
+ CPPUNIT_ASSERT( guid <= copy );
+ CPPUNIT_ASSERT( !(guid > copy) );
+ CPPUNIT_ASSERT( guid >= copy );
+
+ std::string less = "0f2bd21c-9fee-4067-d739-c4d84a5d7f62";
+ std::string more = "1f2bd21c-9fee-4067-d739-c4d84a5d7f62";
+
+ CPPUNIT_ASSERT( less < more );
+ CPPUNIT_ASSERT( less <= more );
+ CPPUNIT_ASSERT( !(less > more) );
+ CPPUNIT_ASSERT( !(less >= more) );
+
+ less = more;
+
+ CPPUNIT_ASSERT( less == more );
+
+ const unsigned char* bytes = guid.toBytes();
+
+ Guid bytesGUID;
+ bytesGUID.fromBytes(bytes);
+
+ CPPUNIT_ASSERT( guid == bytesGUID );
+
+ delete [] bytes;
+
+ Guid bytesGUID2;
+ bytesGUID2.fromBytes((const unsigned char*)guid);
+
+ CPPUNIT_ASSERT( guid == bytesGUID2 );
+
+ Guid stringGUID(guid.toString());
+
+ CPPUNIT_ASSERT( stringGUID == guid );
+
+ Guid stringGUID2(guid.toString().c_str());
+
+ CPPUNIT_ASSERT( stringGUID2 == guid );
+ CPPUNIT_ASSERT( !(stringGUID2 != guid) );
+}
Added: activemq/activemq-cpp/trunk/src/decaf/src/test/decaf/util/GuidTest.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/test/decaf/util/GuidTest.h?view=auto&rev=543494
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/test/decaf/util/GuidTest.h (added)
+++ activemq/activemq-cpp/trunk/src/decaf/src/test/decaf/util/GuidTest.h Fri Jun 1 07:30:25 2007
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _DECAF_UTIL_GUIDTEST_H_
+#define _DECAF_UTIL_GUIDTEST_H_
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+
+namespace decaf{
+namespace util{
+
+ class GuidTest : public CppUnit::TestFixture
+ {
+ CPPUNIT_TEST_SUITE( GuidTest );
+ CPPUNIT_TEST( test );
+ CPPUNIT_TEST_SUITE_END();
+
+ public:
+
+ virtual ~GuidTest() {}
+
+ void test();
+ };
+
+}}
+
+#endif /*_DECAF_UTIL_GUIDTEST_H_*/