-rw-r--r-- | library/quuid.h | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/library/quuid.h b/library/quuid.h index 4f7a720..841a00f 100644 --- a/library/quuid.h +++ b/library/quuid.h | |||
@@ -1,142 +1,163 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of Qtopia Environment. | 4 | ** This file is part of the Qtopia Environment. |
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | 20 | ||
21 | #ifndef QUUID_H | 21 | #ifndef QUUID_H |
22 | #define QUUID_H | 22 | #define QUUID_H |
23 | 23 | ||
24 | #ifndef QT_H | 24 | #ifndef QT_H |
25 | #include <qstring.h> | 25 | #include <qstring.h> |
26 | #endif // QT_H | 26 | #endif // QT_H |
27 | 27 | ||
28 | #include <memory.h> | 28 | #include <memory.h> |
29 | 29 | ||
30 | #if defined(Q_OS_WIN32) | 30 | #if defined(Q_OS_WIN32) |
31 | #ifndef GUID_DEFINED | 31 | #ifndef GUID_DEFINED |
32 | #define GUID_DEFINED | 32 | #define GUID_DEFINED |
33 | typedef struct _GUID | 33 | typedef struct _GUID |
34 | { | 34 | { |
35 | ulong Data1; | 35 | ulong Data1; |
36 | ushort Data2; | 36 | ushort Data2; |
37 | ushort Data3; | 37 | ushort Data3; |
38 | uchar Data4[ 8 ]; | 38 | uchar Data4[ 8 ]; |
39 | } GUID; | 39 | } GUID; |
40 | #endif | 40 | #endif |
41 | #endif | 41 | #endif |
42 | 42 | ||
43 | #if defined( Q_WS_QWS ) && !defined( UUID_H_INCLUDED ) | 43 | #if defined( Q_WS_QWS ) && !defined( UUID_H_INCLUDED ) |
44 | typedef unsigned char uuid_t[16]; | 44 | typedef unsigned char uuid_t[16]; |
45 | #endif | 45 | #endif |
46 | 46 | ||
47 | struct Q_EXPORT QUuid | 47 | struct Q_EXPORT QUuid |
48 | { | 48 | { |
49 | QUuid() | 49 | QUuid() |
50 | { | 50 | { |
51 | memset( this, 0, sizeof(QUuid) ); | 51 | memset( this, 0, sizeof(QUuid) ); |
52 | } | 52 | } |
53 | QUuid( uint l, ushort w1, ushort w2, uchar b1, uchar b2, uchar b3, uchar b4, uchar b5, uchar b6, uchar b7, uchar b8 ) | 53 | QUuid( uint l, ushort w1, ushort w2, uchar b1, uchar b2, uchar b3, uchar b4, uchar b5, uchar b6, uchar b7, uchar b8 ) |
54 | { | 54 | { |
55 | data1 = l; | 55 | data1 = l; |
56 | data2 = w1; | 56 | data2 = w1; |
57 | data3 = w2; | 57 | data3 = w2; |
58 | data4[0] = b1; | 58 | data4[0] = b1; |
59 | data4[1] = b2; | 59 | data4[1] = b2; |
60 | data4[2] = b3; | 60 | data4[2] = b3; |
61 | data4[3] = b4; | 61 | data4[3] = b4; |
62 | data4[4] = b5; | 62 | data4[4] = b5; |
63 | data4[5] = b6; | 63 | data4[5] = b6; |
64 | data4[6] = b7; | 64 | data4[6] = b7; |
65 | data4[7] = b8; | 65 | data4[7] = b8; |
66 | } | 66 | } |
67 | QUuid( const QUuid &uuid ) | 67 | QUuid( const QUuid &uuid ) |
68 | { | 68 | { |
69 | memcpy( this, &uuid, sizeof(QUuid) ); | 69 | memcpy( this, &uuid, sizeof(QUuid) ); |
70 | } | 70 | } |
71 | #ifndef QT_NO_QUUID_STRING | 71 | #ifndef QT_NO_QUUID_STRING |
72 | QUuid( const QString & ); | 72 | QUuid( const QString & ); |
73 | QString toString() const; | 73 | QString toString() const; |
74 | #endif | 74 | #endif |
75 | bool isNull() const; | 75 | bool isNull() const; |
76 | 76 | ||
77 | QUuid &operator=(const QUuid &orig ) | 77 | QUuid &operator=(const QUuid &orig ) |
78 | { | 78 | { |
79 | memcpy( this, &orig, sizeof(QUuid) ); | 79 | memcpy( this, &orig, sizeof(QUuid) ); |
80 | return *this; | 80 | return *this; |
81 | } | 81 | } |
82 | 82 | ||
83 | bool operator==(const QUuid &orig ) const | 83 | bool operator==(const QUuid &orig ) const |
84 | { | 84 | { |
85 | return !memcmp( this, &orig, sizeof(QUuid) ); | 85 | return !memcmp( this, &orig, sizeof(QUuid) ); |
86 | } | 86 | } |
87 | 87 | ||
88 | bool operator!=(const QUuid &orig ) const | 88 | bool operator!=(const QUuid &orig ) const |
89 | { | 89 | { |
90 | return !( *this == orig ); | 90 | return !( *this == orig ); |
91 | } | 91 | } |
92 | 92 | ||
93 | inline bool operator<(const QUuid &orig) const | ||
94 | { | ||
95 | return ( memcmp(this, &orig, sizeof(QUuid)) < 0); | ||
96 | } | ||
97 | |||
98 | inline bool operator>(const QUuid &orig) const | ||
99 | { | ||
100 | return ( memcmp(this, &orig, sizeof(QUuid) ) > 0); | ||
101 | } | ||
102 | |||
93 | #if defined(Q_OS_WIN32) | 103 | #if defined(Q_OS_WIN32) |
94 | // On Windows we have a type GUID that is used by the platform API, so we | 104 | // On Windows we have a type GUID that is used by the platform API, so we |
95 | // provide convenience operators to cast from and to this type. | 105 | // provide convenience operators to cast from and to this type. |
96 | QUuid( const GUID &guid ) | 106 | QUuid( const GUID &guid ) |
97 | { | 107 | { |
98 | memcpy( this, &guid, sizeof(GUID) ); | 108 | memcpy( this, &guid, sizeof(GUID) ); |
99 | } | 109 | } |
100 | 110 | ||
101 | QUuid &operator=(const GUID &orig ) | 111 | QUuid &operator=(const GUID &orig ) |
102 | { | 112 | { |
103 | memcpy( this, &orig, sizeof(QUuid) ); | 113 | memcpy( this, &orig, sizeof(QUuid) ); |
104 | return *this; | 114 | return *this; |
105 | } | 115 | } |
106 | 116 | ||
107 | operator GUID() const | 117 | operator GUID() const |
108 | { | 118 | { |
109 | GUID guid = { data1, data2, data3, { data4[0], data4[1], data4[2], data4[3], data4[4], data4[5], data4[6], data4[7] } }; | 119 | GUID guid = { data1, data2, data3, { data4[0], data4[1], data4[2], data4[3], data4[4], data4[5], data4[6], data4[7] } }; |
110 | return guid; | 120 | return guid; |
111 | } | 121 | } |
112 | 122 | ||
113 | bool operator==( const GUID &guid ) const | 123 | bool operator==( const GUID &guid ) const |
114 | { | 124 | { |
115 | return !memcmp( this, &guid, sizeof(QUuid) ); | 125 | return !memcmp( this, &guid, sizeof(QUuid) ); |
116 | } | 126 | } |
117 | 127 | ||
118 | bool operator!=( const GUID &guid ) const | 128 | bool operator!=( const GUID &guid ) const |
119 | { | 129 | { |
120 | return !( *this == guid ); | 130 | return !( *this == guid ); |
121 | } | 131 | } |
132 | |||
133 | inline bool operator<(const QUuid &orig) const | ||
134 | { | ||
135 | return ( memcmp(this, &orig, sizeof(QUuid) ) < 0); | ||
136 | } | ||
137 | |||
138 | inline bool operator>(const QUuid &orig) const | ||
139 | { | ||
140 | return ( memcmp(this, &orig, sizeof(QUuid) ) > 0); | ||
141 | } | ||
142 | |||
122 | #endif | 143 | #endif |
123 | #if defined (Q_WS_QWS) | 144 | #if defined (Q_WS_QWS) |
124 | QUuid( uuid_t uuid ) | 145 | QUuid( uuid_t uuid ) |
125 | { | 146 | { |
126 | memcpy( this, &uuid, sizeof(uuid_t) ); | 147 | memcpy( this, uuid, sizeof(uuid_t) ); |
127 | } | 148 | } |
128 | 149 | ||
129 | QUuid &operator=(const uuid_t &orig ) | 150 | QUuid &operator=(const uuid_t &orig ) |
130 | { | 151 | { |
131 | memcpy( this, &orig, sizeof(uuid_t) ); | 152 | memcpy( this, &orig, sizeof(uuid_t) ); |
132 | return *this; | 153 | return *this; |
133 | } | 154 | } |
134 | #endif | 155 | #endif |
135 | 156 | ||
136 | ulong data1; | 157 | ulong data1; |
137 | ushort data2; | 158 | ushort data2; |
138 | ushort data3; | 159 | ushort data3; |
139 | uchar data4[ 8 ]; | 160 | uchar data4[ 8 ]; |
140 | }; | 161 | }; |
141 | 162 | ||
142 | #endif //QUUID_H | 163 | #endif //QUUID_H |