Spec-Zone.ru › Qt 5.9

Класс QUuid

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

Заголовок: #include <QUuid>
qmake: QT += core
Наследуется от:

QBluetoothUuid

  • Список всех членов, включая унаследованные

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

Типы public

перечисление Variant { VarUnknown, NCS, DCE, Microsoft, Reserved }
перечисление Version { VerUnknown, Time, EmbeddedPOSIX, Name, ..., Sha1 }

Функции public

QUuid()
QUuid(uint l, ushort w1, ushort w2, uchar b1, uchar b2, uchar b3, uchar b4, uchar b5, uchar b6, uchar b7, uchar b8)
QUuid(const QString &text)
QUuid(const QByteArray &text)
QUuid(const GUID &guid)
bool isNull() const
QByteArray toByteArray() const
CFUUIDRef toCFUUID() const
NSUUID * toNSUUID() const
QByteArray toRfc4122() const
QString toString() const
QUuid::Variant variant() const
QUuid::Version version() const
operator GUID() const
bool operator!=(const QUuid &other) const
bool operator!=(const GUID &guid) const
bool operator<(const QUuid &other) const
QUuid & operator=(const GUID &guid)
bool operator==(const QUuid &other) const
bool operator==(const GUID &guid) const
bool operator>(const QUuid &other) const

Статические public члены

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)

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

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)

Подробное описание

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

Использование универсальных уникальных идентификаторов (UUID) — стандартный способ уникальной идентификации сущностей в распределенной вычислительной среде. UUID — это 16-байтовое (128-битное) число, сгенерированное по какому-либо алгоритму, призванному гарантировать уникальность UUID в распределенной вычислительной среде, где он используется. Иногда вместо аббревиатуры 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 Версия
0 0 0 1 Время
0 0 1 0 Embedded 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 имеют variant() и version(), а пустые UUID возвращают true из isNull().

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

enum 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 Зарезервировано для будущих определений

enum QUuid::Version

Этот перечисление определяет значения, используемые в поле version UUID. Поле version имеет смысл только в том случае, если значение в поле 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()

Создаёт пустой UUID. toString() выведет пустой UUID как "{00000000-0000-0000-0000-000000000000}".

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(const QString &text)

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

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

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 GUID &guid)

Преобразует Windows guid в Qt QUuid.

Предупреждение: Эта функция предназначена только для платформ Windows.

[static] QUuid QUuid::createUuid()

На любой платформе, кроме Windows, эта функция возвращает новый UUID с вариантом QUuid::DCE и версией QUuid::Random. Если устройство /dev/urandom существует, то числа, используемые для построения UUID, будут криптографически безопасными, что сделает UUID уникальным. В противном случае числа UUID будут получены из локального псевдослучайного генератора чисел (qrand(), который инициализируется qsrand()) и обычно не является криптографически безопасным, что означает, что уникальность UUID не гарантируется.

На платформе Windows генерируется GUID, который почти наверняка будет уникальным на данной или любой другой системе, подключённой к сети или нет.

См. также 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, как указано в разделе 4.1.2 RFC 4122. См. toRfc4122() для получения дополнительной информации о порядке bytes.

Принимаемый массив байтов НЕ является удобочитаемым форматом.

Если преобразование не выполняется, создаётся нулевой UUID.

Данная функция была добавлена в Qt 4.8.

См. также toRfc4122() и 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.

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]

QUuid::Variant QUuid::variant() const

Возвращает значение в поле variant field UUID. Если возвращаемое значение QUuid::DCE, вызовите version(), чтобы увидеть, какой макет используется. Нулевой UUID считается имеющим неизвестный вариант.

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

QUuid::Version QUuid::version() const

Возвращает поле version field UUID, если поле variant field UUID равно QUuid::DCE. В противном случае возвращает QUuid::VerUnknown.

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

QUuid::operator GUID() const

Возвращает Windows GUID из QUuid.

Предупреждение: Эта функция доступна только для платформ Windows.

bool QUuid::operator!=(const QUuid &other) const

Возвращает true если этот QUuid и other QUuid различны; в противном случае возвращает false.

bool QUuid::operator!=(const GUID &guid) const

Возвращает true если этот UUID не равен Windows GUID guid; в противном случае возвращает false.

bool QUuid::operator<(const QUuid &other) const

Возвращает true если у этого QUuid то же поле variant field, что и у other QUuid, и он стоит перед other QUuid в лексикографическом порядке. Если у other QUuid другое поле варианта, возвращаемое значение определяется путём сравнения двух вариантов .

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

QUuid &QUuid::operator=(const GUID &guid)

Присваивает Windows guid объекту Qt QUuid.

Предупреждение: Эта функция доступна только для платформ Windows.

bool QUuid::operator==(const QUuid &other) const

Возвращает true если этот QUuid и other QUuid идентичны; в противном случае возвращает false.

bool QUuid::operator==(const GUID &guid) const

Возвращает true если этот UUID равен Windows GUID guid; в противном случае возвращает false.

bool QUuid::operator>(const QUuid &other) const

Возвращает true если у этого QUuid то же поле variant field, что и у other QUuid, и он стоит после other QUuid в лексикографическом порядке. Если у other QUuid другое поле варианта, возвращаемое значение определяется путём сравнения двух вариантов .

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

END_OF_DOCUMENT_MARKER

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

uint qHash(const QUuid &uuid, uint 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.

bool operator<=(const QUuid &lhs, const QUuid &rhs)

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

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

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

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-5.9/quuid.html

Spec-Zone.ru

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