Service proxy fire-and-forget method class, one for each ClientServerOperation ( ClientServerOperation.fireAndForget==TRUE) defined in the ServiceInterface in the role method.
Permet l'appel non confirmé de méthodes unidirectionnelles d'une interface de service sans valeur de retour au niveau du client.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : c09dd8b0ab24ProvenanceQuestions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Permet l'appel non confirmé de méthodes unidirectionnelles d'une interface de service sans valeur de retour au niveau du client.
La classe proxy permet à l'application cliente de déclencher des appels de méthode non confirmés pour des opérations de service avec sémantique Fire-and-Forget [SWS_CM_90435]. Lors de l'appel de l'opérateur de fonction, les paramètres d'entrée sont transmis sans qu'une valeur de retour ou un future de réponse ne soit généré pour un résultat. Parallèlement, la protection de bout en bout est exécutée lors de chaque appel de méthode, son état de contrôle actuel pouvant être interrogé séparément [SWS_CM_00147]. L'appel s'effectue avec garantie de sécurité contre les exceptions, mais échoue avec une violation de droits en cas d'autorisations d'accès insuffisantes.
Contexte
La classe <SI-Namespace>::proxy::methods::<FnFMethod> représente une méthode Fire-and-Forget côté client ou proxy dans la gestion de la communication d'AUTOSAR Adaptive Platform [SWS_CM_90435]. Dans une architecture orientée services, il existe exactement une telle instance dans le rôle de proxy pour chaque opération définie dans l'interface (ClientServerOperation) pour laquelle ClientServerOperation.fireAndForget == TRUE est spécifié [SWS_CM_90435], SWS CommunicationManagement §8.3.4.1.2.1 « operator() ».
Sa responsabilité première réside dans la réception des arguments d'appel et leur transmission à la couche de transport. À la différence des appels bidirectionnels synchrones ou asynchrones qui notifient l'appelant via un ara::core::Future et acheminent d'éventuelles erreurs applicatives [SWS_CM_00197], un appel Fire-and-Forget ne requiert ni réponse ni confirmation de la part du serveur. Les partenaires d'interaction comprennent l'application cliente appelante, l'instance de méthode du proxy de service ainsi que la liaison de communication (binding) sous-jacente, y compris la protection E2E.
Diagramme de contexte : composants et relations d'interface de la classe de méthode Fire-and-Forget de proxy. Sources : [SWS_CM_90435], [SWS_CM_00147]
Cycle de vie
La déclaration de la classe s'effectue au sein du fichier d'en-tête généré #include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_proxy.h" dans la portée hiérarchique <SI-Namespace>::proxy::methods::<FnFMethod>[SWS_CM_90435]. La durée de vie de l'instance de méthode devrait être couplée à celle de l'objet proxy de service parent (interprétation : la méthode est créée et détruite en tant que sous-objet conjointement avec le proxy de service). Question Q-9ee6da68f325c3d0 (ouverte)
Au-delà du simple appel, la classe possède un état interne relatif à la protection E2E (End-to-End-Protection). Cet état E2E est déterminé lors de chaque appel de méthode via la fonction E2E_Check() et peut être interrogé via GetE2EStateMachineState(), qui fournit la valeur d'état de type ara::com::e2e::SMState[SWS_CM_00147], SWS CommunicationManagement §8.3.4.1.1.1 « GetE2EStateMachineState ». Toutes les fonctions membres sont déclarées comme noexcept[SWS_CM_00147], [SWS_CM_90435] ; en cas d'appel simultané à partir de plusieurs threads, une synchronisation externe devrait être requise si la liaison ne garantit pas la réentrance. Question Q-e59aae09676d76c2 (ouverte)
Parcours d'utilisation
Le déroulement typique pour l'utilisation d'une méthode Fire-and-Forget comprend les étapes suivantes :
Déploiement du proxy : l'application instancie ou obtient le proxy de service généré via l'interface d'en-tête définie [SWS_CM_90435].
Exécuter l'appel de méthode : l'application appelle l'objet méthode via operator() en lui transmettant les paramètres d'entrée [SWS_CM_90435]. La fonction ne fournit aucune valeur de retour (void) et retourne immédiatement sans attendre de réponse du serveur SWS CommunicationManagement §8.3.4.1.2.1 « operator() ».
Mise à jour E2E : pendant l'appel de operator(), le middleware exécute en interne le contrôle de protection E2E_Check() et met à jour la machine à états interne [SWS_CM_00147].
Diagramme de séquence : séquence d'interaction typique lors de l'appel d'une méthode Fire-and-Forget suivi d'une interrogation de statut. Sources : [SWS_CM_90435], [SWS_CM_00147]
Scénarios d'erreur
operator() et GetE2EStateMachineState() sont tous deux sûrs vis-à-vis des exceptions (exception safe) et déclarés comme noexcept[SWS_CM_00147], [SWS_CM_90435]. Aucune exception C++ n'est donc levée.
En cas de droits d'accès manquants, le contrôle des privilèges (Grant Enforcement) intervient : si le contexte appelant ne dispose pas des autorisations nécessaires, l'appel est refusé et une InsufficientPermissionsViolation est enregistrée [SWS_CM_90435].
Puisqu'aucun retour n'a lieu via un ara::core::Future et que les opérations Fire-and-Forget ne prennent pas en charge la transmission d'un ApApplicationError ou d'un ara::core::ErrorCode[SWS_CM_00197], les erreurs de transmission ne sont pas signalées à l'appelant. Les éventuelles erreurs relatives à la sécurité des données ou au canal de transmission se manifestent exclusivement dans l'état de la machine à états E2E, qui peut être diagnostiqué via GetE2EStateMachineState()[SWS_CM_00147].
Ce guide est basé sur la spécification AUTOSAR Adaptive Platform Release R25-11 et décrit le fonctionnement de la classe de méthode proxy Fire-and-Forget.
Diagramme de classes UML
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
Returns the state of the specific fnfmethod class, which was determined by the last run of E2E_Check() function invoked during the last call of operator()
Returns the state of the specific fnfmethod class, which was determined by the last run of E2E_Check() function invoked during the last call of operator()
gemini-3.8-flash-low· 2026-10-13 · Original allemand