structure <SI-Namespace>::proxy::methods::<Method>::Output
struct Output {...};
Structure wrapping the out arguments for a method
| Header-Datei | #include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_proxy.h" |
|---|---|
| Forwarding-Header | #include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_proxy/<SiShortname>_proxy_fwd.h" |
| Scope | class <SI-Namespace>::proxy::methods::<Method> |
Guide utilisateurGÉNÉRÉ PAR IA
Encapsule sous forme de structure de données les paramètres de sortie d'une méthode de service appelée de manière asynchrone pour le proxy récepteur.
Encapsule sous forme de structure de données les paramètres de sortie d'une méthode de service appelée de manière asynchrone pour le proxy récepteur.
La structure <SI-Namespace>::proxy::methods::<Method>::Output encapsule les arguments de sortie d'une méthode de service proxy de l'AUTOSAR Adaptive Platform ([SWS_CM_99333]). En cas de succès, l'appelant reçoit la structure par l'intermédiaire d'un ara::core::Future retourné après sa résolution via get() ou GetResult() (AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 « Struct: Output »). Si des erreurs surviennent pendant le traitement, aucun objet Output n'est généré, mais un code d'erreur est fourni à la place via le contexte du future. En détruisant l'objet future, le client peut interrompre prématurément un appel de méthode en cours.
Contexte
La structure <SI-Namespace>::proxy::methods::<Method>::Output sert, dans la gestion de la communication (com) de l'AUTOSAR Adaptive Platform, d'encapsulation structurée pour les arguments de sortie d'une méthode de service ([SWS_CM_99333]). Du côté du consommateur de service (proxy), cette classe est générée de façon typée afin de transmettre de manière groupée à l'application cliente les valeurs de résultat déterminées par le fournisseur de service et transmises via le middleware. Du côté du fournisseur de service (skeleton), il existe une structure de données correspondante pour mettre à disposition le retour de la méthode ([SWS_CM_99556]). Les partenaires d'interaction essentiels sont l'application cliente appelante, l'instance de méthode proxy ainsi que le ara::core::Future retourné par l'interface d'appel, qui transporte l'objet Output en cas de succès (AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 « Struct: Output »).
Cycle de vie
Le cycle de vie d'une instance de Output est directement intégré dans le patron de communication asynchrone de l'Adaptive Platform. Lors de l'exécution d'un appel de méthode sur le proxy, l'environnement d'exécution génère un ara::core::Future qui sert de conteneur pour le futur objet Output (AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 « Struct: Output »). Les données de résultat proprement dites sont générées du côté du fournisseur : une fois le traitement terminé – que ce soit de manière synchrone dans le corps de la méthode de service ou de manière asynchrone dans un thread distinct –, les paramètres de sortie sont déposés dans la structure de sortie et transmis au Future associé via un Promise (ARAComAPI §6.19 « Returning Future with already set result »).
Dès que le résultat est disponible, le client extrait l'instance de Output via get() ou GetResult(). L'objet passe alors sous la possession de l'appelant ; la durée de vie ultérieure relève vraisemblablement, à compter de cet instant, du code d'application appelant. Question Q-27f51b3c9fb838ed (ouverte) Une condition aux limites pertinente pour le cycle de vie concerne l'interruption prématurée : le destructeur de l'objet ara::core::Future retourné sert à l'appelant pour annuler la requête après son émission ([SWS_CM_00194]). Si le future est détruit prématurément, cela conduit à l'interruption de l'appel, de sorte qu'aucune remise de la structure Output n'a lieu.
Parcours d'utilisation
Le déroulement typique pour la réception des paramètres de sortie de méthode comprend les étapes suivantes :
- Déclencher l'appel : le client appelle la méthode de service sur le proxy et reçoit immédiatement un
ara::core::Future<Output>(AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 « Struct: Output »). - Interroger le résultat : le client se synchronise sur le résultat ou appelle directement
get()ouGetResult(). Si le résultat a déjà été défini côté serveur sur lePromise, l'appel ne bloque pas, mais renvoie immédiatement la structureOutput(ARAComAPI §6.19 « Returning Future with already set result »). - Traiter les valeurs : le client lit les valeurs de sortie depuis la structure reçue. Interprétation : la structure
Outputdevrait mettre à disposition tous les arguments Out et Inout définis de la méthode sous forme de membres librement accessibles. Question Q-3a292028627f3c64 (ouverte)
Diagramme de séquence : appel d'une méthode proxy et prise en charge de la structure Output via le future. Sources : [SWS_CM_99333], AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 « Struct: Output », ARAComAPI §6.19 « Returning Future with already set result ».
Scénarios d'erreur
Si une erreur survient lors du traitement de la méthode, aucun objet Output régulier n'est renvoyé. La gestion de la communication prend cela en charge par le biais de mécanismes d'erreur spécifiques :
- Erreurs applicatives vérifiées (Checked Errors) : si une erreur définie survient pendant le traitement de l'appel de méthode, le
ara::core::ErrorCodecorrespondant est fourni dans le contexte de l'appel àget()ouGetResult()([SWS_CM_10371]). - Erreurs d'infrastructure et de transmission : si l'appel échoue, le
ara::core::Futurecontient un code d'erreur correspondant tel queara::core::FutureErrc(AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 « Struct: Output ») ou, du côté du fournisseur,ara::com::ComErrc(AUTOSAR_AP_SWS_CommunicationManagement §8.4 « Methods »). - Méthodes sans attente de réponse (Fire and Forget) : pour les méthodes sans valeurs de retour (Fire and Forget), aucune erreur vérifiée n'est signalée en retour ([SWS_CM_90436]) ; aucune structure
Outputn'existe pour de telles méthodes. - Abandon de l'appel : la destruction de l'objet
Futureinterrompt la requête en cours et empêche la mise à disposition d'un résultatOutput([SWS_CM_00194]).
Ce guide repose exclusivement sur les spécifications de la version Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original allemand