1 /****************************************************************************
3 ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
4 ** All rights reserved.
5 ** Contact: Nokia Corporation (qt-info@nokia.com)
7 ** This file is part of the QtCore module of the Qt Toolkit.
9 ** $QT_BEGIN_LICENSE:LGPL$
10 ** GNU Lesser General Public License Usage
11 ** This file may be used under the terms of the GNU Lesser General Public
12 ** License version 2.1 as published by the Free Software Foundation and
13 ** appearing in the file LICENSE.LGPL included in the packaging of this
14 ** file. Please review the following information to ensure the GNU Lesser
15 ** General Public License version 2.1 requirements will be met:
16 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
18 ** In addition, as a special exception, Nokia gives you certain additional
19 ** rights. These rights are described in the Nokia Qt LGPL Exception
20 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
22 ** GNU General Public License Usage
23 ** Alternatively, this file may be used under the terms of the GNU General
24 ** Public License version 3.0 as published by the Free Software Foundation
25 ** and appearing in the file LICENSE.GPL included in the packaging of this
26 ** file. Please review the following information to ensure the GNU General
27 ** Public License version 3.0 requirements will be met:
28 ** http://www.gnu.org/copyleft/gpl.html.
31 ** Alternatively, this file may be used in accordance with the terms and
32 ** conditions contained in a signed written agreement between you and Nokia.
40 ****************************************************************************/
45 #include <QtCore/qstring.h>
58 } GUID, *REFGUID, *LPGUID;
67 struct Q_CORE_EXPORT QUuid
73 Microsoft = 6, // 1 1 0
80 EmbeddedPOSIX = 2, // 0 0 1 0
90 for(int i = 0; i < 8; i++)
93 QUuid(uint l, ushort w1, ushort w2, uchar b1, uchar b2, uchar b3, uchar b4, uchar b5, uchar b6, uchar b7, uchar b8)
107 #ifndef QT_NO_QUUID_STRING
108 QUuid(const QString &);
110 QString toString() const;
111 operator QString() const { return toString(); } // ### Qt5 remove
115 bool operator==(const QUuid &orig) const
118 if (data1 != orig.data1 || data2 != orig.data2 ||
122 for(i = 0; i < 8; i++)
123 if (data4[i] != orig.data4[i])
129 bool operator!=(const QUuid &orig) const
131 return !(*this == orig);
134 bool operator<(const QUuid &other) const;
135 bool operator>(const QUuid &other) const;
137 #if defined(Q_OS_WIN)
138 // On Windows we have a type GUID that is used by the platform API, so we
139 // provide convenience operators to cast from and to this type.
140 QUuid(const GUID &guid)
145 for(int i = 0; i < 8; i++)
146 data4[i] = guid.Data4[i];
149 QUuid &operator=(const GUID &guid)
155 operator GUID() const
157 GUID guid = { data1, data2, data3, { data4[0], data4[1], data4[2], data4[3], data4[4], data4[5], data4[6], data4[7] } };
161 bool operator==(const GUID &guid) const
163 return *this == QUuid(guid);
166 bool operator!=(const GUID &guid) const
168 return !(*this == guid);
171 static QUuid createUuid();
172 QUuid::Variant variant() const;
173 QUuid::Version version() const;
181 #ifndef QT_NO_DATASTREAM
182 Q_CORE_EXPORT QDataStream &operator<<(QDataStream &, const QUuid &);
183 Q_CORE_EXPORT QDataStream &operator>>(QDataStream &, QUuid &);