QUuid Class

QUuidクラスはUniversally Unique Identifier (UUID)を格納します。詳細...

Header: #include <QUuid>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Inherited By:

QBluetoothUuid

このクラスは強く比較可能です。

このクラスは GUID と強く比較可能です。

注意: GUID との比較は Windows 専用です。

注意:このクラスの関数はすべてリエントラントです。

パブリック型

(since 6.6) union Id128Bytes
enum StringFormat { WithBraces, WithoutBraces, Id128 }
enum Variant { VarUnknown, NCS, DCE, Microsoft, Reserved }
enum Version { VerUnknown, Time, EmbeddedPOSIX, Name, Md5, …, Sha1 }

パブリック関数

QUuid()
QUuid(QAnyStringView text)
QUuid(const GUID &guid)
(since 6.6) QUuid(QUuid::Id128Bytes id128, QSysInfo::Endian order = QSysInfo::BigEndian)
QUuid(uint l, ushort w1, ushort w2, uchar b1, uchar b2, uchar b3, uchar b4, uchar b5, uchar b6, uchar b7, uchar b8)
bool isNull() const
QByteArray toByteArray(QUuid::StringFormat mode = WithBraces) const
(since 6.6) QUuid::Id128Bytes toBytes(QSysInfo::Endian order = QSysInfo::BigEndian) const
CFUUIDRef toCFUUID() const
NSUUID *toNSUUID() const
QByteArray toRfc4122() const
QString toString(QUuid::StringFormat mode = WithBraces) const
(since 6.6) quint128 toUInt128(QSysInfo::Endian order = QSysInfo::BigEndian) const
QUuid::Variant variant() const
QUuid::Version version() const
GUID operator GUID() const
QUuid &operator=(const GUID &guid)

静的パブリック・メンバ

QUuid createUuid()
QUuid createUuidV3(QUuid ns, QByteArrayView baseData)
QUuid createUuidV3(const QUuid &ns, const QString &baseData)
QUuid createUuidV5(QUuid ns, QByteArrayView baseData)
QUuid createUuidV5(const QUuid &ns, const QString &baseData)
(since 6.6) QUuid fromBytes(const void *bytes, QSysInfo::Endian order = QSysInfo::BigEndian)
QUuid fromCFUUID(CFUUIDRef uuid)
QUuid fromNSUUID(const NSUUID *uuid)
QUuid fromRfc4122(QByteArrayView bytes)
QUuid fromString(QAnyStringView string)
(since 6.6) QUuid fromUInt128(quint128 uuid, QSysInfo::Endian order = QSysInfo::BigEndian)
size_t qHash(const QUuid &uuid, size_t seed = 0)
bool operator!=(const QUuid &lhs, const GUID &rhs)
bool operator!=(const QUuid &lhs, const QUuid &rhs)
bool operator<(const QUuid &lhs, const QUuid &rhs)
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 GUID &rhs)
bool operator==(const QUuid &lhs, const QUuid &rhs)
bool operator>(const QUuid &lhs, const QUuid &rhs)
bool operator>=(const QUuid &lhs, const QUuid &rhs)
QDataStream &operator>>(QDataStream &s, QUuid &id)

詳細説明

UUID(Universally Unique IDentifier)は、分散コンピューティング環境でエンティティを一意に識別するための標準的な方法である。UUIDは、UUIDが使用される分散コンピューティング環境において一意であることを保証するために、何らかのアルゴリズムによって生成される16バイト(128ビット)の番号である。代わりにGUID(Globally Unique IDentifiers)という略語がよく使われるが、同じものを指す。

実際には、GUIDはUUIDの一です。複数の亜種が使用されている。それぞれのUUIDは、それがどのタイプ(バリアント)のUUIDであるかを指定するビットフィールドを含んでいます。QUuidのインスタンスがどのタイプのUUIDを含んでいるかを調べるには、variant ()を呼び出す。これは、16バイトのうちのバイト8の最上位3ビットを抽出する。QUuid では、バイト 8 はQUuid::data4[0] である。すべての数値をパラメータとして受け付けるコンストラクタを使用して QUuid のインスタンスを作成する場合は、以下の表を使用してパラメータb1 の最上位ビットを 3 つ設定する。このパラメータはQUuid::data4[0] となり、その最上位ビットの 3 つにバリアント・フィールドが含まれる。この表では、「x」は「気にしない」を意味する。

msb0msb1msb2バリエーション
0xxNCS (ネットワークコンピューティングシステム)
10xDCE(分散コンピューティング環境)
110マイクロソフト (GUID)
111将来の拡張のために予約

variant() がQUuid::DCE を返す場合、UUIDはQUuid::data3 の最上位4ビットにバージョン・フィールドも含んでおり、version() を呼び出すことで、自分のQUuidがどのバージョンを含んでいるかを知ることができる。すべての数値をパラメータとして受け付けるコンストラクタを使用してQUuidのインスタンスを作成する場合、以下の表を使用してパラメータw2 の最上位4ビットを設定する。このパラメータはQUuid::data3 になり、その最上位4ビットにバージョン・フィールドが含まれる。

msb0msb1msb2msb3バージョン
0001時間
0010組み込みPOSIX
0011Md5(名前)
0100ランダム
0101Sha1

上表のDCEバージョンのフィールドレイアウトは、Network Working Group UUID Specificationで規定されている。

ほとんどのプラットフォームは、新しいUUIDを生成するためのツールを提供しています。例えば、uuidgenguidgen 。また、createUuid() を使用することもできます。createUuid()によって生成されたUUIDはランダム型です。それらのQUuid::Version ビットはQUuid::Random に設定され、それらのQUuid::Variant ビットはQUuid::DCE に設定されます。 UUIDの残りの部分は乱数で構成されます。理論的には、これはcreateUuid ()によって生成されたUUIDが一意でない可能性がわずかにあることを意味する。しかし、それは 非常に小さな確率です。

UUIDは、数値や文字列から、あるいは静的なcreateUuid ()関数を使って構築することができる。また、toString() で文字列に変換することもできます。UUIDにはvariant ()とversion ()があり、NULL UUIDはisNull ()で真を返します。

メンバ型ドキュメント

enum QUuid::StringFormat

この列挙型は、toString(StringFormat)によって使用され、文字列表現のフォーマットを制御する。取り得る値は以下の通り:

定数説明
QUuid::WithBraces0デフォルトのtoString() は、ダッシュで区切られ、中括弧で囲まれた5つの16進数フィールドを返す。例{00000000-0000-0000-0000-000000000000}.
QUuid::WithoutBraces1中括弧なしで、ダッシュで区切られた 5 つのフィールドのみを返します。Example: 00000000-0000-0000-0000-000000000000.
QUuid::Id1283中括弧やダッシュを含まない16進数のみ。QUuid 、これを再び入力として解析することはできないことに注意。

enum QUuid::Variant

この列挙型は UUID のvariant field で使われる値を定義します。variantフィールドの値は128ビット値のレイアウトを決定します。

定数説明
QUuid::VarUnknown-1バリアントは不明
QUuid::NCS0NCS (Network Computing System) の後方互換性のために予約されている。
QUuid::DCE2分散コンピューティング環境で使用されるスキーム。QUuid
QUuid::Microsoft6マイクロソフトの下位互換性のために予約されている(GUID)
QUuid::Reserved7将来の定義のために予約

enum QUuid::Version

この列挙型は UUID のversion field で使用される値を定義する。バージョンフィールドはvariant field の値がQUuid::DCE の場合のみ意味を持つ。

定数説明
QUuid::VerUnknown-1バージョンは不明
QUuid::Time1タイムスタンプ、クロックシーケンス、およびノードセクションの MAC ネットワークカードアドレス(利用可能な場合)を使用した、時間ベース。
QUuid::EmbeddedPOSIX2POSIXのUUIDを埋め込んだDCEセキュリティバージョン
QUuid::NameMd5名前ベース。すべてのセクションで名前の値を使用する。
QUuid::Md53名前のエイリアス
QUuid::Random4すべてのセクションに乱数を使用するランダムベース
QUuid::Sha15

メンバ関数ドキュメント

[constexpr noexcept] QUuid::QUuid()

NULL UUIDを作成する。toString() はヌル UUID を "{00000000-0000-0000-0000-0000000000}" として出力します。

[explicit noexcept] QUuid::QUuid(QAnyStringView text)

文字列text からQUuidオブジェクトを作成します。この文字列は'-'で区切られた5つの16進数フィールドとしてフォーマットされなければなりません。例えば、"{xxxxxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxx}"のように、それぞれの'x'は16進数です。ここに示した中括弧はオプションであるが、これを含めるのが普通である。変換に失敗した場合、NULL UUIDが作成される。5つの16進数フィールドがQUuidのパブリック・データ・メンバーにどのようにマッピングされるかについては、toString ()を参照してください。

注: Qt 6.3より前のバージョンでは、このコンストラクタは、QAnyStringView を取る1つのコンストラクタの代わりに、QStringQByteArrayconst char* からなるオーバーロード・セットでした。

toString() およびQUuid()も参照してください

[constexpr noexcept] QUuid::QUuid(const GUID &guid)

Windowsguid を Qt QUuid にキャストします。

警告: この関数はWindowsプラットフォーム専用です。

[explicit noexcept, since 6.6] QUuid::QUuid(QUuid::Id128Bytes id128, QSysInfo::Endian order = QSysInfo::BigEndian)

積分id128 パラメータに基づいて QUuid を作成します。入力id128 パラメータはバイトオーダーorder を持つとみなされます。

この関数は Qt 6.6 で導入されました。

fromBytes(),toBytes(),toRfc4122(),toUInt128()も参照してください

[constexpr noexcept] QUuid::QUuid(uint l, ushort w1, ushort w2, uchar b1, uchar b2, uchar b3, uchar b4, uchar b5, uchar b6, uchar b7, uchar b8)

パラメータl,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8 で指定された値を持つ UUID を作成します。

// {67C8770B-44F1-410A-AB9A-F9B5446F13EE}
QUuid IID_MyInterface(0x67c8770b, 0x44f1, 0x410a, 0xab, 0x9a, 0xf9, 0xb5, 0x44, 0x6f, 0x13, 0xee);

[static] QUuid QUuid::createUuid()

Windows以外のプラットフォームでは、この関数はバリアントQUuid::DCE とバージョンQUuid::Random を持つ新しいUUIDを返す。Windowsでは、GUIDはWindows APIを使用して生成され、APIが作成すると決定した型になります。

variant() およびversion()も参照

[static noexcept] QUuid QUuid::createUuidV3(QUuid ns, QByteArrayView baseData)

この関数は、バリアントQUuid::DCE 、バージョンQUuid::Md5 を持つ新しいUUIDを返します。ns は名前空間、baseData はRFC 4122で記述されている基本データです。

注意: Qt 6.8 より前のバージョンでは、この関数はQByteArrayView ではなくQByteArray を取っていました。

variant(),version(),createUuidV5()も参照してください

[static] QUuid QUuid::createUuidV3(const QUuid &ns, const QString &baseData)

この関数は、バリアントQUuid::DCE とバージョンQUuid::Md5 を持つ新しい UUID を返します。ns は名前空間、baseData は RFC 4122 で記述されている基本データです。

variant()、version()、createUuidV5()も参照のこと

[static noexcept] QUuid QUuid::createUuidV5(QUuid ns, QByteArrayView baseData)

この関数は、バリアントQUuid::DCE とバージョンQUuid::Sha1 を持つ新しいUUIDを返します。ns は名前空間、baseData はRFC 4122で記述されている基本データです。

注意: Qt 6.8 より前のバージョンでは、この関数はQByteArrayView ではなくQByteArray を取っていました。

variant(),version(),createUuidV3()も参照してください

[static] QUuid QUuid::createUuidV5(const QUuid &ns, const QString &baseData)

この関数は、バリアントQUuid::DCE とバージョンQUuid::Sha1 を持つ新しい UUID を返します。ns は名前空間、baseData は RFC 4122 で記述されている基本データです。

variant()、version()、createUuidV3()も参照のこと

[static, since 6.6] QUuid QUuid::fromBytes(const void *bytes, QSysInfo::Endian order = QSysInfo::BigEndian)

バイトオーダーorder を使用してbytes から 128 ビット(16 バイト)を読み取り、それらのバイトに対応するQUuid を返す。この関数は、バイトオーダーorderQSysInfo::BigEndian の場合、fromRfc4122() と同じ動作をします。

この関数は Qt 6.6 で導入されました。

fromRfc4122()も参照してください

[static] QUuid QUuid::fromCFUUID(CFUUIDRef uuid)

uuid CFUUID のコピーを含む新しいQUuid を構築します。

注意: この関数は Apple プラットフォームでのみ使用可能です。

[static] QUuid QUuid::fromNSUUID(const NSUUID *uuid)

uuid NSUUID のコピーを含む新しいQUuid を構築します。

注意: この関数は Apple プラットフォームでのみ使用可能です。

[static noexcept] QUuid QUuid::fromRfc4122(QByteArrayView bytes)

RFC 4122セクション4.1.2で規定されているように、UUIDのバイナリ表現からQUuid オブジェクトを作成する。必要なbytes の順序については、toRfc4122()を参照のこと。

受け入れられるバイト配列は人間が読める形式ではない。

変換に失敗した場合、NULL UUIDが作成されます。

注意: Qt 6.3 より前のバージョンでは、この関数はQByteArrayView ではなくQByteArray を受け取りました。

toRfc4122()、QUuid()、fromBytes()も参照してください

[static noexcept] QUuid QUuid::fromString(QAnyStringView string)

QUuid stringこの文字列は、'-'で区切られた5つの16進数フィールドとしてフォーマットする必要があります。例えば、"{xxxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxxx}"のように、各'x'は16進数です。ここに示した中括弧はオプションであるが、これを含めるのが普通である。変換に失敗した場合、NULL UUIDが返される。5つの16進数フィールドがQUuid のパブリック・データ・メンバにどのようにマッピングされるかについては、toString() を参照してください。

注意: Qt 6.3より前のバージョンでは、この関数はQAnyStringView を取る1つの関数ではなく、QStringViewQLatin1StringView からなるオーバーロードセットでした。

toString() およびQUuid()も参照してください

[static constexpr noexcept, since 6.6] QUuid QUuid::fromUInt128(quint128 uuid, QSysInfo::Endian order = QSysInfo::BigEndian)

積分uuid パラメータに基づいてQUuid を作成します。入力uuid パラメータは、バイトオーダーorder を持つとみなされる。

注意: この関数は、128 ビット整数型を提供するプラットフォーム上にのみ存在します。

この関数は Qt 6.6 で導入されました。

toUInt128(),fromBytes(),toBytes(),toRfc4122()も参照してください

[noexcept] bool QUuid::isNull() const

これがヌル UUID {00000000-0000-0000-0000-0000000000} である場合はtrue を返し、そうでない場合はfalse を返します。

QByteArray QUuid::toByteArray(QUuid::StringFormat mode = WithBraces) const

mode パラメータによって書式が制御された、このQUuid の文字列表現を返す。左から右へ、5つの16進数フィールドは、QUuid の4つのパブリック・データ・メンバから以下のように取得される:

フィールド番号ソース
1data1
2データ2
3データ3
4データ4[0] ... データ4[1]
5data4[2] ... data4[7] 5.

[noexcept, since 6.6] QUuid::Id128Bytes QUuid::toBytes(QSysInfo::Endian order = QSysInfo::BigEndian) const

order で指定されたバイト順序で、このQUuid から作成された 128 ビットの ID を返す。この関数のバイナリ内容は、順序がQSysInfo::BigEndian の場合はtoRfc4122() と同じである。詳細はその関数を参照してください。

この関数は Qt 6.6 で導入されました。

toRfc4122(),fromBytes(),QUuid()も参照してください

CFUUIDRef QUuid::toCFUUID() const

QUuid から CFUUID を作成します。

呼び出し元は CFUUID を所有し、それを解放する責任があります。

注意: この関数は Apple プラットフォームでのみ使用可能である。

NSUUID *QUuid::toNSUUID() const

QUuid から NSUUID を作成する。

NSUUID はオートリリースされる。

注意: この関数は Apple プラットフォームでのみ利用可能です。

QByteArray QUuid::toRfc4122() const

このQUuid のバイナリ表現を返します。バイト配列はビッグエンディアン形式で、RFC 4122 のセクション 4.1.2「レイアウトとバイト順序」に従ってフォーマットされる。

その順序は以下の通りである:

フィールド番号ソース
1data1
2データ2
3データ3
4data4[0] ... data4[7].

この関数が返すバイト配列のバイトは、toBytes ()と同じバイナリ内容を含む。

toBytes()も参照

QString QUuid::toString(QUuid::StringFormat mode = WithBraces) const

mode パラメータによって書式が制御される、このQUuid の文字列表現を返す。左から右へ、5つの16進数フィールドは、QUuid の4つのパブリック・データ・メンバから以下のように取得される:

フィールド番号ソース
1data1
2データ2
3データ3
4データ4[0] ... データ4[1]
5data4[2] ... data4[7] 5.

[constexpr noexcept, since 6.6] quint128 QUuid::toUInt128(QSysInfo::Endian order = QSysInfo::BigEndian) const

order で指定されたバイト順序で、このQUuid から作成された 128 ビット整数を返す。この関数のバイナリ内容は、順序がQSysInfo::BigEndian の場合はtoRfc4122() と同じである。詳細はその関数を参照。

注意: この関数は、128ビット整数型を提供するプラットフォーム上にのみ存在します。

この関数は Qt 6.6 で導入されました。

toRfc4122(),fromUInt128(),toBytes(),fromBytes(),QUuid()も参照してください

[noexcept] QUuid::Variant QUuid::variant() const

UUID のvariant field の値を返します。返り値がQUuid::DCE の場合、version() を呼び出して、どのレイアウトを使用しているかを確認する。NULLのUUIDは未知のバリアントとみなされます。

version()も参照

[noexcept] QUuid::Version QUuid::version() const

UUID のvariant fieldQUuid::DCE の場合、UUID のversion field を返す。そうでない場合はQUuid::VerUnknown を返します。

variant() も参照

[constexpr noexcept] GUID QUuid::operator GUID() const

QUuid から Windows GUID を返す。

警告: この関数は Windows プラットフォーム専用です。

[constexpr noexcept] QUuid &QUuid::operator=(const GUID &guid)

Windowsguid を QtQUuid に割り当てます。

警告: この関数は Windows プラットフォーム専用です。

関連する非会員

[constexpr noexcept] bool operator<(const QUuid &lhs, const QUuid &rhs)

[constexpr noexcept] bool operator<=(const QUuid &lhs, const QUuid &rhs)

[constexpr noexcept] bool operator>(const QUuid &lhs, const QUuid &rhs)

[constexpr noexcept] bool operator>=(const QUuid &lhs, const QUuid &rhs)

lhsrhs の比較を行い、lhsrhs の相対ソートが当該操作に対して正しい場合はtrue を返し、そうでない場合はfalse を返します。この関数で行われるソートは、toString() で作成された文字列のソートや、整数 toId128() のソート、toBytes() やtoRfc4122() で返されたバイト配列のソートと等しくない可能性があることに注意。

variant()も参照

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

seed UUIDuuid のハッシュを返します。

[constexpr noexcept] bool operator!=(const QUuid &lhs, const GUID &rhs)

lhs UUID が Windows GUIDrhs と等しくない場合はtrue を返し、そうでない場合はfalse を返す。

[constexpr noexcept] bool operator!=(const QUuid &lhs, const QUuid &rhs)

lhs QUuidrhs QUuid が異なる場合はtrue を返し、そうでない場合はfalse を返す。

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

UUIDid をデータストリームs に書き込む。

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

デバッグ情報用の出力ストリームにUUIDid を書き込むdbg.

[constexpr noexcept] bool operator==(const QUuid &lhs, const GUID &rhs)

lhs UUIDがWindows GUIDrhs と等しい場合はtrue を返し、そうでない場合はfalse を返す。

[constexpr noexcept] bool operator==(const QUuid &lhs, const QUuid &rhs)

lhs QUuidrhs QUuid が同一であればtrue を返し、そうでなければfalse を返す。

QDataStream &operator>>(QDataStream &s, QUuid &id)

ストリームs から UUID をid に読み込みます。

本ドキュメントに含まれる文書の著作権は、各所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。