Класс QUuid
Класс QUuid хранит универсальный уникальный идентификатор (UUID). Подробнее...
| Заголовок: | #include <QUuid> |
| qmake: | QT += core |
Примечание: Все функции в этом классе являются перевходными.
Открытые типы
| Перечисление | StringFormat { WithBraces, WithoutBraces, Id128 } |
| Перечисление | Вариант { VarUnknown, NCS, DCE, Microsoft, Reserved } |
| Перечисление | Версия { VerUnknown, Time, EmbeddedPOSIX, Name, ..., Sha1 } |
Открытые функции
| QUuid(const GUID &guid) | |
| QUuid(const QByteArray &text) | |
| QUuid(const QString &text) | |
| QUuid(uint l, ushort w1, ushort w2, uchar b1, uchar b2, uchar b3, uchar b4, uchar b5, uchar b6, uchar b7, uchar b8) | |
| QUuid() | |
| QUuid & | operator=(const GUID &guid) |
| bool | isNull() const |
| QByteArray | toByteArray() const |
| QByteArray | toByteArray(QUuid::StringFormat mode) const |
| CFUUIDRef | toCFUUID() const |
| NSUUID * | toNSUUID() const |
| QByteArray | toRfc4122() const |
| QString | toString() const |
| QString | toString(QUuid::StringFormat mode) const |
| QUuid::Вариант | variant() const |
| QUuid::Версия | version() const |
| GUID | operator GUID() const |
| bool | operator!=(const QUuid &other) const |
| bool | operator!=(const GUID &guid) const |
| bool | operator<(const QUuid &other) const |
| bool | operator==(const QUuid &other) const |
| bool | operator==(const GUID &guid) const |
| bool | operator>(const QUuid &other) const |
Статические публичные члены
| QUuid | createUuid() |
| QUuid | createUuidV3(const QUuid &ns, const QByteArray &baseData) |
| QUuid | createUuidV3(const QUuid &ns, const QString &baseData) |
| QUuid | createUuidV5(const QUuid &ns, const QByteArray &baseData) |
| QUuid | createUuidV5(const QUuid &ns, const QString &baseData) |
| QUuid | fromCFUUID(CFUUIDRef uuid) |
| QUuid | fromNSUUID(const NSUUID *uuid) |
| QUuid | fromRfc4122(const QByteArray &bytes) |
| QUuid | fromString(QStringView text) |
| QUuid | fromString(QLatin1String text) |
Связанные нечлены
| uint | qHash(const QUuid &uuid, uint seed = 0) |
| QDataStream & | operator<<(QDataStream &s, const QUuid &id) |
| QDebug | operator<<(QDebug dbg, const QUuid &id) |
| bool | operator<=(const QUuid &lhs, const QUuid &rhs) |
| bool | operator>=(const QUuid &lhs, const QUuid &rhs) |
| QDataStream & | operator>>(QDataStream &s, QUuid &id) |
Подробное описание
Использование Универсальных Уникальных Идентификаторов (UUID) — это стандартный способ уникальной идентификации сущностей в распределенной вычислительной среде. UUID — это 16-байтовое (128-битное) число, сгенерированное по какому-либо алгоритму, гарантирующему уникальность UUID в распределенной вычислительной среде, где он используется. Иногда используется аббревиатура GUID, Глобально Уникальные Идентификаторы, но это относится к одному и тому же.
Фактически, GUID — это один вариант UUID. Используются несколько вариантов. Каждый UUID содержит битовое поле, которое указывает тип (вариант) UUID. Вызовите variant(), чтобы узнать, какой тип UUID содержит экземпляр QUuid. Он извлекает три старших бита байта 8 из 16 байтов. В QUuid, байт 8 — это QUuid::data4[0]. Если вы создаёте экземпляры QUuid с использованием конструктора, принимающего все числовые значения в качестве параметров, используйте следующую таблицу для задания трёх старших битов параметра b1, который становится QUuid::data4[0] и содержит поле варианта в своих трёх старших битах. В таблице «x» означает «безразлично».
| msb0 | msb1 | msb2 | Вариант |
|---|---|---|---|
| 0 | x | x | NCS (Система компьютерных сетей) |
| 1 | 0 | x | DCE (Распределённая вычислительная среда) |
| 1 | 1 | 0 | Microsoft (GUID) |
| 1 | 1 | 1 | Зарезервировано для будущих расширений |
Если variant() возвращает QUuid::DCE, UUID также содержит поле версии в четырёх старших битах QUuid::data3, и вы можете вызвать version(), чтобы узнать, какую версию содержит ваш QUuid. Если вы создаете экземпляры QUuid с использованием конструктора, принимающего все числовые значения как параметры, используйте следующую таблицу, чтобы задать четыре старших бита параметра w2, который становится QUuid::data3 и содержит поле версии в своих четырех старших битах.
| msb0 | msb1 | msb2 | msb3 | Version |
|---|---|---|---|---|
| 0 | 0 | 0 | 1 | Время |
| 0 | 0 | 1 | 0 | Встроенный POSIX |
| 0 | 0 | 1 | 1 | Md5(Имя) |
| 0 | 1 | 0 | 0 | Случайный |
| 0 | 1 | 0 | 1 | Sha1 |
Форматы полей для версий DCE, перечисленных в таблице выше, указаны в Спецификации UUID рабочей группы по сетям.
Большинство платформ предоставляют инструмент для генерации новых UUID, например, uuidgen и guidgen. Вы также можете использовать createUuid(). UUID, сгенерированные с помощью createUuid(), имеют тип «случайный». Их биты QUuid::Version установлены в значение QUuid::Random, а биты QUuid::Variant — в значение QUuid::DCE. Остальная часть UUID состоит из случайных чисел. Теоретически, существует небольшая вероятность того, что UUID, сгенерированный с помощью createUuid(), не будет уникальным. Но это очень малая вероятность.
UUID можно создать из числовых значений или строк, или используя статическую функцию createUuid(). Их можно преобразовать в строку с помощью toString(). UUID имеют вариант() и версию(), и нулевые UUID возвращают true из isNull().
Документация по типам членов
enum QUuid::StringFormat
Этот перечисление используется toString(StringFormat) для управления форматированием строкового представления. Возможные значения:
| Постоянная | Значение | Описание |
|---|---|---|
QUuid::WithBraces |
0 |
По умолчанию, toString() вернёт пять шестнадцатеричных полей, разделенных дефисами и заключённых в фигурные скобки. Пример: {00000000-0000-0000-0000-000000000000}. |
QUuid::WithoutBraces |
1 |
Только пять полей, разделенных дефисами, без фигурных скобок. Пример: 00000000-0000-0000-0000-000000000000. |
QUuid::Id128 |
3 |
Только шестнадцатеричные цифры без фигурных скобок или дефисов. Обратите внимание, что QUuid не может обработать это обратно как входные данные. |
Это перечисление было введено или изменено в Qt 5.11.
enum QUuid::Variant
Это перечисление определяет значения, используемые в поле варианта UUID. Значение в поле варианта определяет структуру 128-битового значения.
| Постоянная | Значение | Описание |
|---|---|---|
QUuid::VarUnknown |
-1 |
Вариант неизвестен |
QUuid::NCS |
0 |
Зарезервировано для обратной совместимости NCS (Network Computing System) |
QUuid::DCE |
2 |
Распределенная вычислительная среда, схема, используемая QUuid |
QUuid::Microsoft |
6 |
Зарезервировано для обратной совместимости с Microsoft (GUID) |
QUuid::Reserved |
7 |
Зарезервировано для будущих определений |
enum QUuid::Version
Это перечисление определяет значения, используемые в поле версии UUID. Поле версии имеет смысл только если значение в поле варианта равно QUuid::DCE.
| Постоянная | Значение | Описание |
|---|---|---|
QUuid::VerUnknown |
-1 |
Версия неизвестна |
QUuid::Time |
1 |
Основанный на времени, используя метку времени, последовательность часов и адрес сетевой карты MAC (если доступен) для секций узла |
QUuid::EmbeddedPOSIX |
2 |
Версия DCE Security, с встроенными POSIX UUID |
QUuid::Name |
Md5 |
Основанный на имени, используя значения из имени для всех секций |
QUuid::Md5 |
3 |
Псевдоним для Имени |
QUuid::Random |
4 |
Случайный, используя случайные числа для всех секций |
QUuid::Sha1 |
5 |
Документация по функциям членов
QUuid::QUuid(const GUID &guid)
Преобразует Windows guid в Qt QUuid.
Предупреждение: Эта функция предназначена только для платформ Windows.
QUuid::QUuid(const QByteArray &text)
Создаёт объект QUuid из QByteArray text, который должен быть отформатирован как пять шестнадцатеричных полей, разделённых дефисом, например, "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}", где каждая 'x' — шестнадцатеричная цифра. Фигурные скобки, показанные здесь, необязательны, но обычно их включают. Если преобразование не удаётся, создаётся нулевой UUID. См. toByteArray() для объяснения того, как пять шестнадцатеричных полей отображаются на публичные члены данных в QUuid.
Эта функция была введена в Qt 4.8.
См. также toByteArray() и QUuid().
QUuid::QUuid(const QString &text)
Создаёт объект QUuid из строки text, которая должна быть отформатирована как пять шестнадцатеричных полей, разделённых дефисом, например, "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}", где каждая 'x' — шестнадцатеричная цифра. Фигурные скобки, показанные здесь, необязательны, но обычно их включают. Если преобразование не удаётся, создаётся нулевой UUID. См. toString() для объяснения того, как пять шестнадцатеричных полей отображаются на публичные члены данных в QUuid.
См. также toString() и QUuid().
QUuid::QUuid(uint l, ushort w1, ushort w2, uchar b1, uchar b2, uchar b3, uchar b4, uchar b5, uchar b6, uchar b7, uchar b8)
Создаёт UUID со значением, заданным параметрами l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8.
Пример:
// {67C8770B-44F1-410A-AB9A-F9B5446F13EE}
QUuid IID_MyInterface(0x67c8770b, 0x44f1, 0x410a, 0xab, 0x9a, 0xf9, 0xb5, 0x44, 0x6f, 0x13, 0xee); QUuid::QUuid()
Создаёт нулевой UUID. toString() выведет нулевой UUID как "{00000000-0000-0000-0000-000000000000}".
QUuid &QUuid::operator=(const GUID &guid)
Присваивает Windows guid объекту Qt QUuid.
Предупреждение: Эта функция предназначена только для платформ Windows.
[static] QUuid QUuid::createUuid()
На всех платформах, кроме Windows, эта функция возвращает новый UUID с вариантом QUuid::DCE и версией QUuid::Random. На Windows генерируется GUID с помощью API Windows и будет иметь тип, который API решит создать.
См. также variant() и version().
[static] QUuid QUuid::createUuidV3(const QUuid &ns, const QByteArray &baseData)
Эта функция возвращает новый UUID с вариантом QUuid::DCE и версией QUuid::Md5. ns — это пространство имён, а baseData — базовые данные, как описано в RFC 4122.
Эта функция была введена в Qt 5.0.
См. также variant(), version() и createUuidV5().
[static] QUuid QUuid::createUuidV3(const QUuid &ns, const QString &baseData)
Эта функция возвращает новый UUID с вариантом QUuid::DCE и версией QUuid::Md5. ns — это имя пространства, а baseData — основные данные, как описано в RFC 4122.
Эта функция была добавлена в Qt 5.0.
См. также variant(), version() и createUuidV5().
[static] QUuid QUuid::createUuidV5(const QUuid &ns, const QByteArray &baseData)
Эта функция возвращает новый UUID с вариантом QUuid::DCE и версией QUuid::Sha1. ns — это имя пространства, а baseData — основные данные, как описано в RFC 4122.
Эта функция была добавлена в Qt 5.0.
См. также variant(), version() и createUuidV3().
[static] QUuid QUuid::createUuidV5(const QUuid &ns, const QString &baseData)
Эта функция возвращает новый UUID с вариантом QUuid::DCE и версией QUuid::Sha1. ns — это имя пространства, а baseData — основные данные, как описано в RFC 4122.
Эта функция была добавлена в Qt 5.0.
См. также variant(), version() и createUuidV3().
[static] QUuid QUuid::fromCFUUID(CFUUIDRef uuid)
Создаёт новый QUuid, содержащий копию CFUUID uuid.
Примечание: эта функция доступна только на платформах Apple.
Эта функция была добавлена в Qt 5.7.
[static] QUuid QUuid::fromNSUUID(const NSUUID *uuid)
Создаёт новый QUuid, содержащий копию NSUUID uuid.
Примечание: эта функция доступна только на платформах Apple.
Эта функция была добавлена в Qt 5.7.
[static] QUuid QUuid::fromRfc4122(const QByteArray &bytes)
Создаёт объект QUuid из двоичного представления UUID, как указано в RFC 4122 раздел 4.1.2. См. toRfc4122() для дополнительного объяснения порядка байтов bytes.
Принимаемый массив байтов НЕ является удобочитаемым форматом.
Если преобразование завершилось неудачно, создаётся нулевой UUID.
Эта функция была добавлена в Qt 4.8.
См. также toRfc4122() и QUuid().
[static] QUuid QUuid::fromString(QStringView text)
Создаёт объект QUuid из строки text, которая должна быть отформатирована как пять шестнадцатеричных полей, разделенных дефисами, например, "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}", где каждая 'x' — шестнадцатеричная цифра. Фигурные скобки здесь необязательны, но их обычно включают. Если преобразование завершилось неудачно, возвращается нулевой UUID. См. toString() для объяснения того, как пять шестнадцатеричных полей сопоставляются с общедоступными данными в QUuid.
Эта функция была добавлена в Qt 5.10.
См. также toString() и QUuid().
[static] QUuid QUuid::fromString(QLatin1String text)
Это перегруженная функция.
Создаёт объект QUuid из строки text, которая должна быть отформатирована как пять шестнадцатеричных полей, разделенных дефисами, например, "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}", где каждая 'x' — шестнадцатеричная цифра. Фигурные скобки здесь необязательны, но их обычно включают. Если преобразование завершилось неудачно, возвращается нулевой UUID. См. toString() для объяснения того, как пять шестнадцатеричных полей сопоставляются с общедоступными данными в QUuid.
Эта функция была добавлена в Qt 5.10.
См. также toString() и QUuid().
bool QUuid::isNull() const
Возвращает true если это нулевой UUID {00000000-0000-0000-0000-000000000000}; в противном случае возвращает false.
QByteArray QUuid::toByteArray() const
Возвращает двоичное представление этого QUuid. Массив байтов отформатирован как пять шестнадцатеричных полей, разделённых дефисами и заключённых в фигурные скобки, т.е. "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}", где 'x' — шестнадцатеричная цифра. Слева направо пять шестнадцатеричных полей получены из четырёх общедоступных данных в QUuid следующим образом:
| Поле № | Источник |
|---|---|
| 1 | data1 |
| 2 | data2 |
| 3 | data3 |
| 4 | data4[0] .. data4[1] |
| 5 | data4[2] .. data4[7] |
Эта функция была добавлена в Qt 4.8.
QByteArray QUuid::toByteArray(QUuid::StringFormat mode) const
Возвращает строковое представление этого QUuid с форматированием, управляемым параметром mode. Слева направо пять шестнадцатеричных полей получены из четырёх общедоступных данных в QUuid следующим образом:
| Поле № | Источник |
|---|---|
| 1 | data1 |
| 2 | data2 |
| 3 | data3 |
| 4 | data4[0] .. data4[1] |
| 5 | data4[2] .. data4[7] |
Эта функция была добавлена в Qt 5.11.
CFUUIDRef QUuid::toCFUUID() const
Создаёт CFUUID из QUuid. Вызывающий владелец CFUUID и отвечает за его освобождение.
Примечание: эта функция доступна только на платформах Apple.
Эта функция была добавлена в Qt 5.7.
NSUUID *QUuid::toNSUUID() const
Создаёт NSUUID из QUuid. NSUUID автоматически освобождается.
Примечание: эта функция доступна только на платформах Apple.
Эта функция была добавлена в Qt 5.7.
QByteArray QUuid::toRfc4122() const
Возвращает двоичное представление этого QUuid. Массив байтов в формате big endian и отформатирован в соответствии с RFC 4122, раздел 4.1.2 — «Макет и порядок байтов».
Порядок следующий:
| Поле № | Источник |
|---|---|
| 1 | data1 |
| 2 | data2 |
| 3 | data3 |
| 4 | data4[0] .. data4[7] |
Эта функция была добавлена в Qt 4.8.
QString QUuid::toString() const
Возвращает строковое представление этого QUuid. Строка отформатирована как пять шестнадцатеричных полей, разделённых дефисами и заключённых в фигурные скобки, т.е. "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}", где 'x' — шестнадцатеричная цифра. Слева направо пять шестнадцатеричных полей получены из четырёх общедоступных данных в QUuid следующим образом:
| Поле № | Источник |
|---|---|
| 1 | data1 |
| 2 | data2 |
| 3 | data3 |
| 4 | data4[0] .. data4[1] |
| 5 | data4[2] .. data4[7] |
QString QUuid::toString(QUuid::StringFormat mode) const
Возвращает строковое представление этого QUuid с форматированием, управляемым параметром mode. Слева направо пять шестнадцатеричных полей получены из четырёх общедоступных данных в QUuid следующим образом:
| Поле № | Источник |
|---|---|
| 1 | data1 |
| 2 | data2 |
| 3 | data3 |
| 4 | data4[0] .. data4[1] |
| 5 | data4[2] .. data4[7] |
Эта функция была добавлена в Qt 5.11.
QUuid::Variant QUuid::variant() const
Возвращает значение в поле варианта UUID. Если возвращаемое значение QUuid::DCE, вызовите version(), чтобы увидеть используемый макет. Нулевой UUID считается с неизвестным вариантом.
См. также version().
QUuid::Version QUuid::version() const
Возвращает поле версии UUID, если поле варианта UUID равно QUuid::DCE. В противном случае возвращает QUuid::VerUnknown.
См. также variant().
GUID QUuid::operator GUID() const
Возвращает Windows GUID из QUuid.
Предупреждение: Эта функция предназначена только для платформ Windows.
bool QUuid::operator!=(const QUuid &other) const
Возвращает true если этот QUuid и QUuid other отличаются; в противном случае возвращает false.
bool QUuid::operator!=(const GUID &guid) const
Возвращает true если этот UUID не равен Windows GUID guid; в противном случае возвращает false.
bool QUuid::operator<(const QUuid &other) const
Возвращает true если у этого QUuid такое же поле варианта, как у QUuid other, и он лексикографически предшествует QUuid other. Если у QUuid other другое поле варианта, возвращаемое значение определяется сравнением двух вариантов.
См. также variant().
bool QUuid::operator==(const QUuid &other) const
Возвращает true если этот QUuid и QUuid other идентичны; в противном случае возвращает false.
bool QUuid::operator==(const GUID &guid) const
Возвращает true если этот UUID равен Windows GUID guid; в противном случае возвращает false.
bool QUuid::operator>(const QUuid &other) const
Возвращает true если у этого QUuid такое же поле варианта, как у QUuid other, и он лексикографически следует за QUuid other. Если у QUuid other другое поле варианта, возвращаемое значение определяется сравнением двух вариантов.
См. также variant().
Связанные нечленные функции
uint QUuid::qHash(const QUuid &uuid, uint seed = 0)
Возвращает хэш UUID uuid, используя seed для инициализации вычисления.
Эта функция была добавлена в Qt 5.0.
QDataStream &QUuid::operator<<(QDataStream &s, const QUuid &id)
Записывает UUID id в поток данных s.
QDebug QUuid::operator<<(QDebug dbg, const QUuid &id)
Записывает UUID id в поток вывода для отладки dbg.
bool QUuid::operator<=(const QUuid &lhs, const QUuid &rhs)
Возвращает true если у lhs такое же поле варианта, как у rhs, и оно лексикографически не следует за rhs. Если у rhs другое поле варианта, возвращаемое значение определяется сравнением двух вариантов.
Эта функция была добавлена в Qt 5.5.
См. также variant().
bool QUuid::operator>=(const QUuid &lhs, const QUuid &rhs)
Возвращает true если у lhs такое же поле варианта, как у rhs, и оно лексикографически не предшествует rhs. Если у rhs другое поле варианта, возвращаемое значение определяется сравнением двух вариантов.
Эта функция была добавлена в Qt 5.5.
См. также variant().
QDataStream &QUuid::operator>>(QDataStream &s, QUuid &id)
Читает UUID из потока s в id.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/quuid.html