Spec-Zone.ru › Qt 6.0

Класс QUuid

Класс QUuid хранит универсальный уникальный идентификатор (UUID). Подробнее...

Заголовок: #include <QUuid>
CMake: find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
  • Список всех членов, включая унаследованные

Примечание: Все функции в этом классе являются повторно входящими.

Открытые типы

Перечисление StringFormat { С фигурными скобками, Без фигурных скобок, Id128 }
Перечисление Вариант { Неизвестный, NCS, DCE, Microsoft, Зарезервированный }
Перечисление Версия { Неизвестная, Время, Встроенный POSIX, Имя, Md5, …, 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(QUuid::StringFormat mode = WithBraces) const
CFUUIDRef toCFUUID() const
NSUUID * toNSUUID() const
QByteArray toRfc4122() const
QString toString(QUuid::StringFormat mode = WithBraces) const
QUuid::Variant variant() const
QUuid::Version 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)

Связанные нечлены

size_t qHash(const QUuid &uuid, size_t 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, Gлобально Uникальные ID, но это относится к одному и тому же.

Фактически, 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 Версия
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::Случайный, а биты QUuid::Variant — в QUuid::DCE. Остальная часть UUID состоит из случайных чисел. Теоретически, это означает, что существует небольшая вероятность того, что UUID, сгенерированный с помощью createUuid(), не будет уникальным. Но это очень малая вероятность.

UUID могут быть построены из числовых значений или строк, или с использованием статической функции createUuid(). Они могут быть преобразованы в строку с помощью toString(). UUID имеют variant() и version(), и нулевые UUID возвращают true от isNull().

Документация типов членов

[since 5.11] перечисление 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.

перечисление QUuid::Variant

Это перечисление определяет значения, используемые в поле variant UUID. Значение в поле variant определяет макет 128-битного значения.

Постоянная Значение Описание
QUuid::VarUnknown -1 Вариант неизвестен
QUuid::NCS 0 Зарезервировано для обратной совместимости NCS (Network Computing System)
QUuid::DCE 2 Среда распределенных вычислений, схема, используемая в QUuid
QUuid::Microsoft 6 Зарезервировано для обратной совместимости Microsoft (GUID)
QUuid::Reserved 7 Зарезервировано для будущего определения

перечисление QUuid::Version

Это перечисление определяет значения, используемые в поле version UUID. Поле версии имеет значение только в том случае, если значение в поле variant равно QUuid::DCE.

Постоянная Значение Описание
QUuid::VerUnknown -1 Версия неизвестна
QUuid::Time 1 Основанная на времени, использующая метку времени, последовательность часов и адрес сетевой карты MAC (если доступен) для разделов узла
QUuid::EmbeddedPOSIX 2 Версия безопасности DCE, с встроенными UUID POSIX
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.

См. также 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::Случайный. В Windows генерируется GUID с помощью API Windows и будет иметь тип, который API решил создать.

См. также variant() и version().

[static, since 5.0] 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, since 5.0] 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, since 5.0] 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, since 5.0] 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, since 5.7] QUuid QUuid::fromCFUUID(CFUUIDRef uuid)

Создаёт новый QUuid, содержащий копию CFUUID uuid.

Примечание: эта функция доступна только на платформах Apple.

Эта функция была добавлена в Qt 5.7.

[static, since 5.7] 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.

См. также toRfc4122() и QUuid().

[static, since 5.10] QUuid QUuid::fromString(QStringView text)

Создаёт объект QUuid из строки text, которая должна быть отформатирована как пять шестнадцатеричных полей, разделённых дефисами, например, "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}", где каждая 'x' — шестнадцатеричная цифра. Фигурные скобки здесь необязательны, но обычно их включают. Если преобразование завершается неудачно, возвращается нулевой UUID. См. toString() для объяснения того, как пять шестнадцатеричных полей сопоставляются с открытыми членами данных в QUuid.

Эта функция была добавлена в Qt 5.10.

См. также toString() и QUuid().

[static, since 5.10] 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.

[since 5.11] QByteArray QUuid::toByteArray(QUuid::StringFormat mode = WithBraces) const

Возвращает строковое представление этого QUuid с форматированием, управляемым параметром mode. Слева направо, пять шестнадцатеричных полей получаются из четырёх открытых членов данных в QUuid следующим образом:

Поле # Источник
1 data1
2 data2
3 data3
4 data4[0] .. data4[1]
5 data4[2] .. data4[7]

Эта функция была добавлена в Qt 5.11.

[since 5.7] CFUUIDRef QUuid::toCFUUID() const

Создаёт CFUUID из QUuid.

Вызывающая сторона владеет CFUUID и отвечает за его освобождение.

Примечание: эта функция доступна только на платформах Apple.

Эта функция была добавлена в Qt 5.7.

[since 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]

[since 5.11] QString QUuid::toString(QUuid::StringFormat mode = WithBraces) 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 такое же поле варианта, как у other QUuid, и он лексикографически после other QUuid. Если у other QUuid другое поле варианта, возвращаемое значение определяется сравнением двух вариантов.

См. также variant().

Связанные нечлены

[since 5.0] size_t qHash(const QUuid &uuid, size_t seed = 0)

Возвращает хеш UUID uuid, используя seed для инициализации вычисления.

Эта функция была добавлена в Qt 5.0.

QDataStream &operator<<(QDataStream &s, const QUuid &id)

Записывает UUID id в поток данных s.

QDebug operator<<(QDebug dbg, const QUuid &id)

Записывает UUID id в поток вывода для отладки dbg.

[since 5.5] bool operator<=(const QUuid &lhs, const QUuid &rhs)

Возвращает true если у lhs такое же поле варианта, как у rhs, и он лексикографически не после rhs. Если у rhs другое поле варианта, возвращаемое значение определяется сравнением двух вариантов.

Эта функция была добавлена в Qt 5.5.

См. также variant().

[since 5.5] bool operator>=(const QUuid &lhs, const QUuid &rhs)

Возвращает true если у lhs такое же поле варианта, как у rhs, и он лексикографически не до rhs. Если у rhs другое поле варианта, возвращаемое значение определяется сравнением двух вариантов.

Эта функция была добавлена в Qt 5.5.

См. также variant().

QDataStream &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-6.0/quuid.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API