diff options
author | Mike Buland <eichlan@xagasoft.com> | 2011-07-27 17:20:12 +0000 |
---|---|---|
committer | Mike Buland <eichlan@xagasoft.com> | 2011-07-27 17:20:12 +0000 |
commit | d061fe55de758aafdec3b1ef378d83e0bee94242 (patch) | |
tree | 1e71ea327b77a1bb264b303db99f9d6499bf4649 | |
parent | 663c6d9c9113a92fc3c79b51ea986ff30189868d (diff) | |
download | libbu++-d061fe55de758aafdec3b1ef378d83e0bee94242.tar.gz libbu++-d061fe55de758aafdec3b1ef378d83e0bee94242.tar.bz2 libbu++-d061fe55de758aafdec3b1ef378d83e0bee94242.tar.xz libbu++-d061fe55de758aafdec3b1ef378d83e0bee94242.zip |
More features for uuids, including hashing and comparison.
-rw-r--r-- | src/uuid.cpp | 15 | ||||
-rw-r--r-- | src/uuid.h | 12 |
2 files changed, 27 insertions, 0 deletions
diff --git a/src/uuid.cpp b/src/uuid.cpp index bcaf377..088450b 100644 --- a/src/uuid.cpp +++ b/src/uuid.cpp | |||
@@ -100,3 +100,18 @@ void Bu::Uuid::set( const Bu::String &sSrc ) | |||
100 | } | 100 | } |
101 | } | 101 | } |
102 | 102 | ||
103 | bool Bu::Uuid::operator==( const Uuid &rhs ) const | ||
104 | { | ||
105 | return memcmp( data, rhs.data, 16 ) == 0; | ||
106 | } | ||
107 | |||
108 | template<> uint32_t Bu::__calcHashCode<Bu::Uuid>( const Bu::Uuid &k ) | ||
109 | { | ||
110 | return __calcHashCode<String>( k.toRawString() ); | ||
111 | } | ||
112 | |||
113 | template<> bool Bu::__cmpHashKeys<Bu::Uuid>( const Bu::Uuid &a, const Bu::Uuid &b ) | ||
114 | { | ||
115 | return a == b; | ||
116 | } | ||
117 | |||
@@ -35,10 +35,22 @@ namespace Bu | |||
35 | 35 | ||
36 | void clear(); | 36 | void clear(); |
37 | 37 | ||
38 | bool operator==( const Uuid &rhs ) const; | ||
39 | |||
38 | private: | 40 | private: |
39 | void set( const Bu::String &sSrc ); | 41 | void set( const Bu::String &sSrc ); |
40 | unsigned char data[16]; | 42 | unsigned char data[16]; |
41 | }; | 43 | }; |
44 | |||
45 | template<typename T> | ||
46 | uint32_t __calcHashCode( const T &k ); | ||
47 | |||
48 | template<typename T> | ||
49 | bool __cmpHashKeys( const T &a, const T &b ); | ||
50 | |||
51 | template<> uint32_t __calcHashCode<Uuid>( const Uuid &k ); | ||
52 | template<> bool __cmpHashKeys<Uuid>( | ||
53 | const Uuid &a, const Uuid &b ); | ||
42 | }; | 54 | }; |
43 | 55 | ||
44 | #endif | 56 | #endif |