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: |
このクラスは強く比較可能です。
このクラスは 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」は「気にしない」を意味する。
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()
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つのコンストラクタの代わりに、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 を構築します。
注意: この関数は 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つの関数ではなく、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
mode パラメータによって書式が制御された、このQUuid の文字列表現を返す。左から右へ、5つの16進数フィールドは、QUuid の4つのパブリック・データ・メンバから以下のように取得される:
フィールド番号 | ソース |
---|---|
1 | data1 |
2 | データ2 |
3 | データ3 |
4 | データ4[0] ... データ4[1] |
5 | data4[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「レイアウトとバイト順序」に従ってフォーマットされる。
その順序は以下の通りである:
フィールド番号 | ソース |
---|---|
1 | data1 |
2 | データ2 |
3 | データ3 |
4 | data4[0] ... data4[7]. |
この関数が返すバイト配列のバイトは、toBytes ()と同じバイナリ内容を含む。
toBytes()も参照 。
QString QUuid::toString(QUuid::StringFormat mode = WithBraces) const
mode パラメータによって書式が制御される、このQUuid の文字列表現を返す。左から右へ、5つの16進数フィールドは、QUuid の4つのパブリック・データ・メンバから以下のように取得される:
フィールド番号 | ソース |
---|---|
1 | data1 |
2 | データ2 |
3 | データ3 |
4 | データ4[0] ... データ4[1] |
5 | data4[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 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 &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 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 に読み込みます。
本ドキュメントに含まれる文書の著作権は、各所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。