DEENESPTFRRUARHIKOZHNL

classe <SI-Namespace>::proxy::methods::<FnFMethod>

[SWS_CM_99332] Upstream: RS_CM_00212, RS_CM_00213, RS_AP_00114

class <FnFMethod> {...};

Service proxy fire-and-forget method class, one for each ClientServerOperation ( ClientServerOperation.fireAndForget==TRUE) defined in the ServiceInterface in the role method.

Header-Datei#include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_proxy.h"
Forwarding-Header#include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_proxy/<SiShortname>_proxy_fwd.h"
Scopenamespace <SI-Namespace>::proxy::methods

Guide utilisateurGÉNÉRÉ PAR IA

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 IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : c09dd8b0ab24 Provenance Questions 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.

Client Application cliente FnFMethod proxy::methods::<FnFMethod> Client->FnFMethod operator() Client->FnFMethod GetE2EStateMachineState() Binding Kommunikations-Binding / E2E FnFMethod->Binding E2E_Check() & transmission

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éroulement d'un appel de méthode Fire-and-ForgetApplication clienteproxy::methods::<FnFMethod>Kommunikations-Binding / E2Eoperator()({in-args})E2E_Check() & transmission d'émissionRetour (void)GetE2EStateMachineState()ara::com::e2e::SMState

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.

G n_SI_Namespace___proxy__methods___FnFMethod_122 <FnFMethod> + GetE2EStateMachineState() + operator()

Méthodes

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()

ara::com::e2e::SMState GetE2EStateMachineState () const noexcept;

Opérateurs

operator fonction

Initiate a fire-and-forget method call (ClientServerOperation. fireAndForget ==TRUE)

void operator() ({<p-fnfmethod-in-arg-derived-type-0toN>} {<fnfmethod-in-arg-symbol-0toN>}) noexcept;

Documentation des méthodes

fonction GetE2EStateMachineState [SWS_CM_00147] Upstream: RS_CM_00224, RS_E2E_08534

ara::com::e2e::SMState GetE2EStateMachineState () const noexcept;

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()

Header-Datei#include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_proxy.h"
Scopeclass <SI-Namespace>::proxy::methods::<FnFMethod>
Exception-Sicherheitexception safe

Rückgabewert

TypBeschreibung
ara::com::e2e::SMStateState of the specific fnfmethod class

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CM_00147
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CM_00147@rel:R25-11#3f91e965
Content hash
3f91e965
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_CommunicationManagement.pdf#nameddest=SWS_CM_00147
Status: valid/unmigrated Version: rel:R25-11#f447bc35 Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CM_00147@rel:R25-11#f447bc35
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

fonction operator [SWS_CM_90435] Upstream: RS_CM_00225, RS_AP_00114, RS_AP_00120

void operator() ({<p-fnfmethod-in-arg-derived-type-0toN>} {<fnfmethod-in-arg-symbol-0toN>}) noexcept;

Initiate a fire-and-forget method call (ClientServerOperation. fireAndForget ==TRUE)

Header-Datei#include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_proxy.h"
Scopeclass <SI-Namespace>::proxy::methods::<FnFMethod>
Exception-Sicherheitexception safe
Verletzungen (Violations)InsufficientPer- Refused by Grant Enforcement missionsViolation

Parameter (in)

ParameterBeschreibung
{<fnfmethod-in-arg-symbol-0toN>}As per {<p-method-in-arg-symbol-0toN>} in [SWS_CM_00191]

Rückgabewert

TypBeschreibung
None

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CM_90435
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CM_90435@rel:R25-11#9b37727d
Content hash
9b37727d
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_CommunicationManagement.pdf#nameddest=SWS_CM_90435
Status: valid/unmigrated Version: rel:R25-11#6620ed09 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CM_90435@rel:R25-11#6620ed09
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#3c47af102026-09-30
  • R19-11rel:R19-11#c4decbd42026-10-14
  • R20-11rel:R20-11#02f450d92026-10-14
  • R21-11rel:R21-11#0606f4f32026-10-14
  • R22-11rel:R22-11#c4decbd42026-10-14
  • R23-11rel:R23-11#3a705bf02026-10-14
  • R24-11rel:R24-11#41cb46922026-10-14
  • R25-11rel:R25-11#6620ed092026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill