QNativeIpcKey Class
La classe `QNativeIpcKey` contient une clé native utilisée par ` QSystemSemaphore ` et ` QSharedMemory`. En savoir plus...
| En-tête : | #include <QNativeIpcKey> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
| Depuis : | Qt 6.6 |
Comparaisons de QNativeIpcKey
| Catégorie | Types comparables |
|---|---|
| égalité | QNativeIpcKey |
Types publics
| enum class | Type { SystemV, PosixRealtime, Windows } |
Fonctions publiques
| 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) |
Membres publics statiques
| const QNativeIpcKey::Type | DefaultTypeForOs |
| QNativeIpcKey | fromString(const QString &text) |
| QNativeIpcKey::Type | legacyDefaultTypeForOs() |
Éléments non membres associés
| 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) |
Description détaillée
Les classes ` QSharedMemory ` et ` QSystemSemaphore ` identifient leurs ressources à l'aide d'un identifiant système appelé « clé ». La valeur de clé de bas niveau ainsi que le type de clé sont encapsulés dans Qt à l'aide de la classe ` QNativeIpcKey `.
Ces deux classes fournissent également les moyens de créer des clés natives à partir d’un identifiant multiplateforme, à l’aide de QSharedMemory::platformSafeKey() et QSystemSemaphore::platformSafeKey(). Les applications ne doivent en aucun cas partager les données d’entrée de ces fonctions, car différentes versions de Qt peuvent effectuer des transformations différentes, ce qui aboutit à des clés natives différentes. Au lieu de cela, l’application ayant créé l’objet IPC doit communiquer la clé native obtenue à l’aide des méthodes décrites ci-dessous.
Pour plus de détails sur les types de clés, les limitations spécifiques à chaque plateforme et l’interopérabilité avec des applications plus anciennes ou non Qt, consultez la documentation sur les clés IPC natives. Celle-ci contient des informations importantes pour les applications en sandbox sur les plateformes Apple, y compris toutes les applications obtenues via l’App Store d’Apple.
Transmission des clés à d’autres processus
Communication des clés à d’autres processus Qt
Si l’autre processus prend en charge `QNativeIpcKey`, la meilleure méthode de communication consiste à utiliser la représentation sous forme de chaîne obtenue via ` toString()` et à l’analyser à l’aide de ` fromString()`. Cette représentation peut être stockée dans un fichier dont le nom est bien connu ou transmise en ligne de commande à un processus enfant via ` QProcess::setArguments()`.
Si l’autre processus ne prend pas en charge QNativeIpcKey, les deux processus peuvent alors échanger la valeur obtenue par nativeKey(), mais l’ancien code ne sera probablement pas en mesure d’adapter son type de clé. La fonction ` legacyDefaultTypeForOs()` renvoie le type utilisé par le code hérité, qui peut ne pas correspondre à la constante ` DefaultTypeForOs `. Cela reste vrai même si l’ancienne application n’utilise pas la même version que la nouvelle (par exemple, s’il s’agit d’une application Qt 5), à condition que les options passées au script de configuration Qt soient identiques.
Communication des clés à des processus non-Qt
Lorsqu’elle communique avec des processus non-Qt, l’application doit s’assurer d’obtenir le type de clé utilisé par l’autre processus. Ceci est particulièrement important sur les systèmes Unix, où les formats PosixRealtime et SystemV sont courants.
Représentation sous forme de chaîne des clés natives
Le format de la représentation sous forme de chaîne d’un `QNativeIpcKey` est censé être stable et donc compatible en amont et en aval, à condition que le type de clé soit pris en charge par la version de Qt en question. Autrement dit, une version antérieure de Qt ne parviendra pas à analyser la représentation sous forme de chaîne d’un type de clé introduit après sa sortie. Cependant, le fait de parvenir à analyser une représentation sous forme de chaîne n’implique pas que les classes Qt puissent créer avec succès un objet de ce type ; les applications doivent vérifier la prise en charge à l’aide de QSharedMemory::isKeyTypeSupported() et QSystemSemaphore::isKeyTypeSupported().
Le format de la représentation sous forme de chaîne est constitué de deux composants, séparés par deux points (':'). Le premier composant est le type de clé, décrit dans le tableau ci-dessous. Le second composant est une charge utile spécifique au type, utilisant percent-encoding. Pour tous les types de clés actuellement pris en charge, la forme décodée est identique au contenu du champ nativeKey().
| Type de clé | Représentation sous forme de chaîne |
| PosixRealtime | "posix" |
| SystemV | "systemv" |
| Windows | "windows" |
| Non standard SystemV | "systemv-" suivie d’un nombre décimal |
Ce format ressemble à un URI et permet l’analyse à l’aide de fonctions d’analyse d’URI/URL, telles que QUrl. Lorsqu’il est analysé par une telle API, le type de clé apparaîtra sous la forme scheme, et la charge utile sera path. L’utilisation de requêtes ou de fragments est réservée.
Voir également QSharedMemory et QSystemSemaphore.
Documentation sur les types de membres
enum class QNativeIpcKey::Type
Cette énumération décrit le type de backend de l'objet IPC. Pour plus de détails sur les types de clés, consultez la documentation relative aux clés IPC natives.
| Constante | Valeur | Description |
|---|---|---|
QNativeIpcKey::Type::SystemV | 0x51 | API X/Open System Initiative (XSI) ou System V (SVr4) |
QNativeIpcKey::Type::PosixRealtime | 0x100 | API IEEE 1003.1b (POSIX.1b) |
QNativeIpcKey::Type::Windows | 0x101 | API Win32 |
Documentation sur les fonctions membres
[constexpr noexcept default] QNativeIpcKey::QNativeIpcKey()
Crée un objet `QNativeIpcKey` de type ` DefaultTypeForOs ` avec une clé vide.
[explicit constexpr noexcept] QNativeIpcKey::QNativeIpcKey(QNativeIpcKey::Type type)
QNativeIpcKey::QNativeIpcKey(const QString &key, QNativeIpcKey::Type type = DefaultTypeForOs)
Crée un objet ` QNativeIpcKey ` contenant une clé native ` key ` (ou vide dans le cas de la surcharge sans paramètre) pour le type ` type`.
[noexcept] QNativeIpcKey::~QNativeIpcKey()
Supprime cet objet « QNativeIpcKey ».
[static] QNativeIpcKey QNativeIpcKey::fromString(const QString &text)
Analyse la chaîne de caractères provenant de text et renvoie l'QNativeIpcKey correspondant. Les représentations sous forme de chaîne sont utiles pour informer d'autres processus de la clé créée par ce processus et à laquelle ils doivent se connecter.
Si la chaîne n'a pas pu être analysée, cette fonction renvoie un objet ` invalid `.
Voir également toString() et isValid().
[noexcept] bool QNativeIpcKey::isEmpty() const
Renvoie « true » si la fonction nativeKey() est vide.
Voir aussi nativeKey().
[noexcept] bool QNativeIpcKey::isValid() const
Renvoie « true » si cet objet contient un type de clé IPC natif valide. Les types non valides résultent généralement d’un échec d’analyse d’une représentation sous forme de chaîne à l’aide de la fonction ` fromString()`.
Cette fonction ne vérifie pas si la chaîne de la clé est réellement prise en charge ou valide pour le système d’exploitation actuel.
Voir également type() et fromString().
[static noexcept] QNativeIpcKey::Type QNativeIpcKey::legacyDefaultTypeForOs()
Renvoie l'Type e correspondant à la clé IPC native utilisée auparavant par QSharedMemory et QSystemSemaphore avant Qt 6.6. Les applications et bibliothèques qui doivent rester compatibles avec du code utilisant l'une ou l'autre de ces classes et compilé avec une version de Qt antérieure à la version 6.6 peuvent utiliser cette fonction pour déterminer le type d'IPC que les autres applications sont susceptibles d'utiliser.
Notez que cette fonction suppose que Qt ait été compilé avec des options de configuration identiques.
[noexcept] QString QNativeIpcKey::nativeKey() const
Renvoie la chaîne de caractères native associée à cet objet.
Voir également setNativeKey() et type().
void QNativeIpcKey::setNativeKey(const QString &newKey)
Définit la clé native de cet objet sur newKey.
Voir également nativeKey() et setType().
[constexpr] void QNativeIpcKey::setType(QNativeIpcKey::Type type)
Définit le type d'IPC de cet objet sur « type ».
Voir également type() et setNativeKey().
[noexcept] void QNativeIpcKey::swap(QNativeIpcKey &other)
Permute cette clé et ce type IPC natifs avec other. Cette opération est très rapide et ne rencontre jamais d'échec.
QString QNativeIpcKey::toString() const
Renvoie la représentation sous forme de chaîne de cet objet. Les représentations sous forme de chaîne sont utiles pour indiquer aux autres processus la clé créée par ce processus et à laquelle ils doivent se lier.
Cette fonction renvoie une chaîne vide si l'objet actuel est de typ invalid.
Voir également fromString().
[constexpr noexcept] QNativeIpcKey::Type QNativeIpcKey::type() const
Renvoie le type de clé associé à cet objet.
Voir également nativeKey() et setType().
[noexcept] QNativeIpcKey &QNativeIpcKey::operator=(QNativeIpcKey &&other)
QNativeIpcKey &QNativeIpcKey::operator=(const QNativeIpcKey &other)
[noexcept] QNativeIpcKey::QNativeIpcKey(QNativeIpcKey &&other)
QNativeIpcKey::QNativeIpcKey(const QNativeIpcKey &other)
Copie ou déplace le contenu de ` other`.
Documentation sur les variables membres
const QNativeIpcKey::Type QNativeIpcKey::DefaultTypeForOs
Cette variable d'expression constante contient le type IPC natif par défaut pour le système d'exploitation actuel. Elle prendra la valeur « Type::Windows » pour les systèmes Windows et « Type::PosixRealtime » dans les autres cas. Notez que cette constante diffère des valeurs par défaut de « QSharedMemory » et « QSystemSemaphore » sur la majorité des systèmes Unix avant Qt 6.6 ; consultez legacyDefaultTypeForOs() pour plus d'informations.
Éléments non membres associés
[noexcept] size_t qHash(const QNativeIpcKey &key, size_t seed = 0)
Renvoie la valeur de hachage de key, en utilisant seed comme graine pour le calcul.
[noexcept] void swap(QNativeIpcKey &value1, QNativeIpcKey &value2)
Permute la clé et l'value1 de type IPC natifs entre « value2 » et « ». Cette opération est très rapide et ne rencontre jamais d'échec.
[noexcept] bool operator!=(const QNativeIpcKey &lhs, const QNativeIpcKey &rhs)
[noexcept] bool operator==(const QNativeIpcKey &lhs, const QNativeIpcKey &rhs)
Renvoie « true » si les objets ` lhs ` et ` rhs ` ont le même contenu (ou un contenu différent).
© 2026 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.