QUuid Class
QUuidクラスはUniversally Unique Identifier (UUID)を格納します。詳細...
ヘッダー | #include <QUuid> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
継承元: |
このクラスは強く比較可能である。
このクラスは 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 &key, 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」は「気にしない」を意味する。
msb0 | msb1 | msb2 | バリエーション |
---|---|---|---|
0 | x | x | NCS (ネットワークコンピューティングシステム) |
1 | 0 | x | DCE(分散コンピューティング環境) |
1 | 1 | 0 | マイクロソフト (GUID) |
1 | 1 | 1 | 将来の拡張のために予約 |
variant() がQUuid::DCE を返す場合、UUIDはQUuid::data3
の最上位4ビットにバージョン・フィールドも含んでおり、version() を呼び出すことで、自分のQUuidがどのバージョンを含んでいるかを知ることができる。すべての数値をパラメータとして受け付けるコンストラクタを使用してQUuidのインスタンスを作成する場合、以下の表を使用してパラメータw2
の最上位4ビットを設定する。このパラメータはQUuid::data3
になり、その最上位4ビットにバージョン・フィールドが含まれる。
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バージョンのフィールドレイアウトは、Network Working Group UUID Specificationで規定されている。
ほとんどのプラットフォームは、新しいUUIDを生成するためのツールを提供しています。例えば、uuidgen
やguidgen
。また、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::WithBraces | 0 | デフォルトのtoString() は、ダッシュで区切られ、中括弧で囲まれた5つの16進数フィールドを返す。例{00000000-0000-0000-0000-000000000000}. |
QUuid::WithoutBraces | 1 | ダッシュで区切られた 5 つのフィールドのみを、中括弧なしで返します。Example: 00000000-0000-0000-0000-000000000000. |
QUuid::Id128 | 3 | 中括弧やダッシュを含まない16進数のみ。QUuid 、これを再び入力として解析することはできない。 |
enum QUuid::Variant
この列挙型は UUID のvariant field で使われる値を定義する。variant フィールドの値は 128 ビット値のレイアウトを決定します。
定数 | 値 | 説明 |
---|---|---|
QUuid::VarUnknown | -1 | バリアントは不明 |
QUuid::NCS | 0 | NCS (Network Computing System) の後方互換性のために予約されている。 |
QUuid::DCE | 2 | 分散コンピューティング環境で使用されるスキーム。QUuid |
QUuid::Microsoft | 6 | マイクロソフトの下位互換性のために予約されている(GUID) |
QUuid::Reserved | 7 | 将来の定義のために予約 |
enum QUuid::Version
この列挙型は、UUIDのversion field で使用される値を定義する。バージョンフィールドは、variant field の値がQUuid::DCE である場合にのみ意味を持ちます。
定数 | 値 | 説明 |
---|---|---|
QUuid::VerUnknown | -1 | バージョンは不明 |
QUuid::Time | 1 | タイムスタンプ、クロックシーケンス、およびノードセクションの MAC ネットワークカードアドレス(利用可能な場合)を使用した、時間ベース。 |
QUuid::EmbeddedPOSIX | 2 | POSIXのUUIDを埋め込んだDCEセキュリティバージョン |
QUuid::Name | Md5 | 名前ベース。すべてのセクションで名前の値を使用する。 |
QUuid::Md5 | 3 | 名前のエイリアス |
QUuid::Random | 4 | すべてのセクションに乱数を使用するランダムベース |
QUuid::Sha1 | 5 |
メンバー関数ドキュメント
[constexpr noexcept]
QUuid::QUuid()
ヌルUUIDを作成します。toString() は null UUID を "{00000000-0000-0000-0000-0000000000}" として出力します。
[explicit noexcept]
QUuid::QUuid(QAnyStringView text)
textこの文字列は'-'で区切られた5つの16進数フィールドとしてフォーマットされなければならない。例えば、"{xxxxxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxxx}"のように、それぞれの'x'は16進数である。ここに示した中括弧はオプションであるが、これを含めるのが普通である。変換に失敗した場合、NULL UUIDが作成される。5つの16進数フィールドがQUuidのパブリック・データ・メンバーにどのようにマッピングされるかについては、toString ()を参照してください。
注意: Qt 6.3より前のバージョンでは、このコンストラクタは、QAnyStringView を取る1つのコンストラクタではなく、QString 、QByteArray 、const 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が作成すると決定した型になる。
[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 を返す。この関数は、バイトオーダーorder がQSysInfo::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 を構築する。
注意: この関数はアップル社のプラットフォームでのみ利用可能です。
[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)
文字列string からQUuid オブジェクトを作成する。このオブジェクトは、'-' で区切られた5つの16進数フィールドとしてフォーマットされなければならない。例えば、"{xxxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxxxxx}" のように、各'x'は16進数である。ここに示した中括弧はオプションであるが、これを含めるのが普通である。変換に失敗した場合、NULL UUIDが返される。5つの16進数フィールドがQUuid のパブリック・データ・メンバにどのようにマッピングされるかについては、toString() を参照してください。
注意: Qt 6.3より前のバージョンでは、この関数はQAnyStringView を取る1つの関数ではなく、QStringView とQLatin1StringView からなるオーバーロードセットでした。
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
このQUuid の文字列表現を返す。書式はmode パラメータで制御する。左から右へ、5つの16進数フィールドは、QUuid の4つのパブリック・データ・メンバから以下のように取得される:
フィールド番号 | ソース |
---|---|
1 | data1 |
2 | データ2 |
3 | データ3 |
4 | データ4[0] ... データ4[1] |
5 | データ4[2] ... データ4[7] |
[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「レイアウトとバイトオーダー」に従ってフォーマットされる。
その順序は以下の通りである:
フィールド番号 | ソース |
---|---|
1 | data1 |
2 | データ2 |
3 | データ3 |
4 | data4[0] ... data4[7]. |
この関数が返すバイト配列のバイトは、toBytes ()と同じバイナリ内容を含む。
toBytes()も参照 。
QString QUuid::toString(QUuid::StringFormat mode = WithBraces) const
このQUuid の文字列表現を返す。書式はmode パラメータで制御する。左から右へ、5つの16進数フィールドは、QUuid の4つのパブリック・データ・メンバから以下のように取得される:
フィールド番号 | ソース |
---|---|
1 | data1 |
2 | データ2 |
3 | データ3 |
4 | データ4[0] ... データ4[1] |
5 | データ4[2] ... データ4[7] |
[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 は未知の variant であるとみなされます。
version()も参照 。
[noexcept]
QUuid::Version QUuid::version() const
UUID のvariant field がQUuid::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)
lhs とrhs の比較を行い、lhs とrhs の相対ソートが当該操作に対して正しい場合はtrue
を、そうでない場合はfalse
を返す。この関数で行われるソートは、toString() で作成された文字列のソートや、整数 toId128() や、toBytes() やtoRfc4122() で返されたバイト配列のソートと等しくない可能性があることに注意。
variant()も参照 。
[noexcept]
size_t qHash(const QUuid &key, size_t seed = 0)
key のハッシュ値を返す。計算のシードにはseed を使用する。
[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 QUuid とrhs 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 QUuid とrhs QUuid が同一であればtrue
を返し、そうでなければfalse
を返す。
QDataStream &operator>>(QDataStream &s, QUuid &id)
ストリームs から UUID をid に読み込む。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.