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) |
詳細な説明
QSharedMemory とQSystemSemaphore クラスは、「キー」として知られるシステム全体の識別子を使用してリソースを識別します。低レベルのキー値とキータイプは、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 以外のプロセスと通信を行う場合、アプリケーションは相手のプロセスが使用しているキーの種類を取得する必要があります。これは特に、PosixRealtime とSystemV の両方が一般的な 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::SystemV | 0x51 | X/Open System Initiative (XSI) または System V (SVr4) API |
QNativeIpcKey::Type::PosixRealtime | 0x100 | IEEE 1003.1b (POSIX.1b) API |
QNativeIpcKey::Type::Windows | 0x101 | Win32 API |
メンバー関数ドキュメント
[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()
QSharedMemory とQSystemSemaphore が 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 に設定します。
[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
このオブジェクトに関連付けられたキー・タイプを返します。
メンバ変数のドキュメント
const QNativeIpcKey::Type QNativeIpcKey::DefaultTypeForOs
この定数式変数は、現在のOSのデフォルトのネイティブIPCタイプを保持する。WindowsシステムではType::Windows 、それ以外ではType::PosixRealtime 。この定数は、Qt 6.6以前の大半のUnixシステムでデフォルトになっているQSharedMemory やQSystemSemaphore とは異なることに注意してください。詳細はlegacyDefaultTypeForOs() を参照してください。
関連する非会員
[noexcept]
bool operator!=(const QNativeIpcKey &lhs, const QNativeIpcKey &rhs)
[noexcept]
bool operator==(const QNativeIpcKey &lhs, const QNativeIpcKey &rhs)
lhs とrhs オブジェクトが同じ内容(または異なる内容)を保持している場合、true を返す。
[noexcept]
size_t qHash(const QNativeIpcKey &key, size_t seed = 0)
key のハッシュ値を返す。計算のシードにはseed を使用する。
[noexcept]
void swap(QNativeIpcKey &value1, QNativeIpcKey &value2)
ネイティブIPCキーとタイプvalue1 をvalue2 と入れ替える。この操作は非常に高速で、失敗することはない。
© 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.