QNativeIpcKey Class

QNativeIpcKey クラスは、QSystemSemaphore およびQSharedMemory で使用されるネイティブ・キーを保持します。詳細...

ヘッダー #include <QNativeIpcKey>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
以来:Qt 6.6

このクラスは等価比較可能です。

パブリック型

enum class Type { SystemV, PosixRealtime, Windows }

パブリック関数

QNativeIpcKey()
QNativeIpcKey(QNativeIpcKey::Type type)
QNativeIpcKey(const QString &key, QNativeIpcKey::Type type = DefaultTypeForOs)
QNativeIpcKey(const QNativeIpcKey &other)
QNativeIpcKey(QNativeIpcKey &&other)
~QNativeIpcKey()
bool isEmpty() const
bool isValid() const
QString nativeKey() const
void setNativeKey(const QString &newKey)
void setType(QNativeIpcKey::Type type)
void swap(QNativeIpcKey &other)
QString toString() const
QNativeIpcKey::Type type() const
QNativeIpcKey &operator=(QNativeIpcKey &&other)
QNativeIpcKey &operator=(const QNativeIpcKey &other)

静的パブリックメンバ

const QNativeIpcKey::Type DefaultTypeForOs
QNativeIpcKey fromString(const QString &text)
QNativeIpcKey::Type legacyDefaultTypeForOs()
size_t qHash(const QNativeIpcKey &key, size_t seed = 0)
void swap(QNativeIpcKey &value1, QNativeIpcKey &value2)
bool operator!=(const QNativeIpcKey &lhs, const QNativeIpcKey &rhs)
bool operator==(const QNativeIpcKey &lhs, const QNativeIpcKey &rhs)

詳細な説明

QSharedMemoryQSystemSemaphore クラスは、「キー」として知られるシステム全体の識別子を使用してリソースを識別します。低レベルのキー値とキータイプは、QNativeIpcKey クラスを使用して Qt にカプセル化されます。

これらの2つのクラスは、QSharedMemory::platformSafeKey()とQSystemSemaphore::platformSafeKey()を使用して、クロスプラットフォーム識別子からネイティブ・キーを作成する手段も提供します。Qt のバージョンが異なると異なる変換が行われ、異なるネイティブ・キーが生成される可能性があるためです。代わりに、IPCオブジェクトを作成したアプリケーションは、以下に説明するメソッドを使用して、結果のネイティブ・キーを通信する必要があります。

キーの種類、プラットフォーム固有の制限、古いアプリケーションやQt以外のアプリケーションとの相互運用性の詳細については、ネイティブIPCキーのドキュメントを参照してください。これには、Apple App Store経由で入手したすべてのアプリを含む、Appleプラットフォーム上のサンドボックス・アプリケーションに関する重要な情報も含まれています。

他のプロセスとのキーの通信

他の Qt プロセスとキーを通信する

他のプロセスが QNativeIpcKey をサポートしている場合、toString() から文字列表現を取得し、fromString() を使用してパースするのが最適な通信方法です。この表現は、よく知られた名前のファイルに保存するか、QProcess::setArguments() を使用して子プロセスにコマンドラインで渡すことができます。

他のプロセスが QNativeIpcKey をサポートしていない場合、2 つのプロセスはnativeKey() を交換できますが、古いコードではキー・タイプを調整できない可能性があります。legacyDefaultTypeForOs() 関数は、レガシー・コードが使用していた型を返しますが、これはDefaultTypeForOs 定数と一致しない場合があります。これは、Qt configureスクリプトに渡されるオプションが同じであれば、古いアプリケーションが新しいアプリケーションと同じビルドを使用していなくても当てはまります(例えば、Qt 5アプリケーション)。

非 Qt プロセスとのキー通信

Qt 以外のプロセスと通信を行う場合、アプリケーションは相手のプロセスが使用しているキーの種類を取得する必要があります。これは特に、PosixRealtimeSystemV の両方が一般的な Unix システムでは重要です。

ネイティブ・キーの文字列表現

QNativeIpcKeyの文字列表現のフォーマットは安定しているため、キータイプがQtのバージョンでサポートされている限り、前後で互換性があります。つまり、古いQtでは、リリース後に導入されたキータイプの文字列表現のパースに失敗します。アプリケーションは、QSharedMemory::isKeyTypeSupported() や QSystemSemaphore::isKeyTypeSupported() を使用してサポートを確認する必要があります。

文字列表現の形式は、コロン (':') で区切られた 2 つの要素で形成されます。最初の要素はキー・タイプで、以下の表で説明します。2つ目の要素は型固有のペイロードで、percent-encoding を使用する。現在サポートされているすべての鍵タイプについて、デコードされた形はnativeKey()フィールドの内容と同じである。

キー・タイプ文字列表現
PosixRealtime"posix"
SystemV"systemv"
Windows"windows"
非標準SystemV"systemv-" に続く10進数

このフォーマットはURIに似ており、QUrl のようなURI/URL解析関数を使った解析が可能である。このようなAPIで解析される場合、キータイプはscheme のように表示され、ペイロードはpath のようになる。 クエリーやフラグメントの使用は予約されている。

QSharedMemory およびQSystemSemaphoreも参照のこと

メンバ型ドキュメント

enum class QNativeIpcKey::Type

この列挙型は、IPC オブジェクトのバックエンド・タイプを記述する。キータイプの詳細については、Native IPC Keysドキュメントを参照してください。

定数説明
QNativeIpcKey::Type::SystemV0x51X/Open System Initiative (XSI) または System V (SVr4) API
QNativeIpcKey::Type::PosixRealtime0x100IEEE 1003.1b (POSIX.1b) API
QNativeIpcKey::Type::Windows0x101Win32 API

setType() およびtype()も参照

メンバー関数ドキュメント

[explicit constexpr noexcept] QNativeIpcKey::QNativeIpcKey(QNativeIpcKey::Type type)

QNativeIpcKey::QNativeIpcKey(const QString &key, QNativeIpcKey::Type type = DefaultTypeForOs)

type 型のネイティブキーkey (またはパラメータなしのオーバーロードでは空)を持つQNativeIpcKey オブジェクトを構築する。

[noexcept] QNativeIpcKey &QNativeIpcKey::operator=(QNativeIpcKey &&other)

QNativeIpcKey &QNativeIpcKey::operator=(const QNativeIpcKey &other)

[noexcept] QNativeIpcKey::QNativeIpcKey(QNativeIpcKey &&other)

QNativeIpcKey::QNativeIpcKey(const QNativeIpcKey &other)

other の内容をコピーまたは移動する。

[constexpr noexcept] QNativeIpcKey::QNativeIpcKey()

DefaultTypeForOs 型の QNativeIpcKey オブジェクトを空のキーで構築します。

[noexcept] QNativeIpcKey::~QNativeIpcKey()

このQNativeIpcKey オブジェクトを破棄します。

[static] QNativeIpcKey QNativeIpcKey::fromString(const QString &text)

文字列形式text を解析し、対応するQNativeIpcKey を返す。文字列表現は、このプロセスが作成し、他のプロセスにアタッチすべきキーを通知するのに便利である。

文字列を解析できなかった場合、この関数はinvalid オブジェクトを返す。

toString() およびisValid()も参照のこと

[noexcept] bool QNativeIpcKey::isEmpty() const

nativeKey() が空の場合、true を返す。

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

[noexcept] bool QNativeIpcKey::isValid() const

このオブジェクトに有効なネイティブ IPC キー・タイプが含まれていれば真を返す。無効な型は通常、fromString() を使用した文字列表現のパースに失敗した結果です。

この関数は、キー文字列が現在のオペレーティング・システムで実際にサポートされているか、または有効かどうかのチェックを行いません。

type() およびfromString()も参照の こと。

[static noexcept] QNativeIpcKey::Type QNativeIpcKey::legacyDefaultTypeForOs()

QSharedMemoryQSystemSemaphore が Qt 6.6 より前に使用していたネイティブ IPC キーに対応するType を返します。バージョン6.6より前のQtでコンパイルされたクラスを使用しているコードとの互換性を維持する必要があるアプリケーションやライブラリは、この関数を使用して、他のアプリケーションが使用しているかもしれないIPCタイプを決定することができます。

この関数は、Qtが同一のconfigure-timeオプションでビルドされていることに注意してください。

[noexcept] QString QNativeIpcKey::nativeKey() const

このオブジェクトに関連付けられたネイティブ・キー文字列を返します。

setNativeKey() およびtype()も参照ください

void QNativeIpcKey::setNativeKey(const QString &newKey)

このオブジェクトのネイティブ・キーをnewKey に設定します。

nativeKey() およびsetType()も参照

[constexpr] void QNativeIpcKey::setType(QNativeIpcKey::Type type)

このオブジェクトの IPC タイプをtype に設定する。

type() およびsetNativeKey()も参照

[noexcept] void QNativeIpcKey::swap(QNativeIpcKey &other)

このネイティブIPCキーとタイプをother 。この操作は非常に高速で、失敗することはない。

QString QNativeIpcKey::toString() const

このオブジェクトの文字列表現を返します。文字列表現は、このプロセスが作成し、他のプロセスにアタッチすべきキーを通知するのに便利です。

現在のオブジェクトがinvalid である場合、この関数は NULL 文字列を返します。

fromString()も参照

[constexpr noexcept] QNativeIpcKey::Type QNativeIpcKey::type() const

このオブジェクトに関連付けられたキー・タイプを返します。

nativeKey() およびsetType()も参照

メンバ変数のドキュメント

const QNativeIpcKey::Type QNativeIpcKey::DefaultTypeForOs

この定数式変数は、現在のOSのデフォルトのネイティブIPCタイプを保持する。WindowsシステムではType::Windows 、それ以外ではType::PosixRealtime 。この定数は、Qt 6.6以前の大半のUnixシステムでデフォルトになっているQSharedMemoryQSystemSemaphore とは異なることに注意してください。詳細はlegacyDefaultTypeForOs() を参照してください。

関連する非会員

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

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

lhsrhs オブジェクトが同じ内容(または異なる内容)を保持している場合、true を返す。

[noexcept] size_t qHash(const QNativeIpcKey &key, size_t seed = 0)

key のハッシュ値を返す。計算のシードにはseed を使用する。

[noexcept] void swap(QNativeIpcKey &value1, QNativeIpcKey &value2)

ネイティブIPCキーとタイプvalue1value2 と入れ替える。この操作は非常に高速で、失敗することはない。

© 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.