Permet aux skeletons de service d'émettre des signaux de déclenchement et de surveiller l'état des abonnés.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 6e97d3082affProvenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Permet aux skeletons de service d'émettre des signaux de déclenchement et de surveiller l'état des abonnés.
La classe <SI-Namespace>::skeleton::triggers::<Trigger> permet à une application serveur d'émettre des signaux de déclenchement vers des clients abonnés via Communication Management ([SWS_CM_00721]). Pour le contrôle de flux, l'état des abonnés peut être surveillé et des gestionnaires de notification peuvent être enregistrés ([SWS_CM_01109], [SWS_CM_01110]). Le déclenchement via Send() requiert un skeleton de service proposé et sanctionne les violations des intervalles d'émission minimaux ou les erreurs de réseau par des codes d'erreur correspondants ([SWS_CM_00721], [SWS_CM_10517]).
Contexte
La classe template <SI-Namespace>::skeleton::triggers::<Trigger> représente l'interface côté serveur d'un trigger défini au sein d'un ServiceInterface avec le rôle trigger. En tant que composant du squelette de service (Skeleton), cette classe sert à une instance de service pour envoyer des notifications asynchrones ou des signaux de déclenchement à des applications clientes abonnées dans l'ensemble du système. Un trigger se distingue des événements réguliers en ce qu'il agit principalement comme un simple événement de signalisation sans données utiles complexes, comme l'expose la classification dans EXP_ARAComAPI §3 « Trigger::Send » et SWS_CommunicationManagement §7.2.2.1.4 « Handling Triggers ». Les partenaires d'interaction comprennent l'application serveur fournisseuse, le middleware Communication Management (ara::com) ainsi que des clients souscripteurs connectés via le réseau.
Cycle de vie
L'instanciation des objets Trigger s'effectue typiquement comme partie intégrante de l'instance Skeleton du ServiceInterface respectif. Avant toute utilisation active, le Skeleton doit être proposé via Communication Management ; si une tentative est faite de déclencher un trigger auparavant, la transmission échoue ([SWS_CM_00721]). La classe gère l'état de souscription des abonnés via ara::com::SubscriptionState, qui peut être interrogé à tout moment avec GetSubscriptionState() ([SWS_CM_01109]). Pour la surveillance asynchrone de l'état, un callback peut être enregistré à l'aide de SetSubscriptionStateChangeHandler() ([SWS_CM_01110]). Pour les architectures concurrentes, il existe une surcharge recevant un Executor personnalisé, de sorte que les notifications soient exécutées dans le contexte de thread ou de tâche souhaité ([SWS_CM_01111]). L'enregistrement peut être annulé via UnsetSubscriptionStateChangeHandler() ([SWS_CM_01112]). Toutes les méthodes de la classe offrent la garantie d'exception noexcept (exception safe).
Parcours d'utilisation
Le déroulement typique pour l'utilisation d'un trigger comprend l'observation de l'état de souscription ainsi que le déclenchement effectif de la transmission à tous les abonnés actifs :
Enregistrement du gestionnaire : L'application de service enregistre optionnellement un gestionnaire d'état via SetSubscriptionStateChangeHandler() ([SWS_CM_01110], [SWS_CM_01111]) afin d'être informée des nouveaux abonnés qui s'ajoutent.
Vérification de l'état : À l'aide de GetSubscriptionState(), le serveur vérifie si au moins un souscripteur actif est présent ([SWS_CM_01109]), ce qui constitue selon [SWS_CM_10518] la condition préalable à la demande d'émission.
Émission du trigger : L'émission est initiée par l'appel de Send() ([SWS_CM_00721], EXP_ARAComAPI §3 « Trigger::Send »), après quoi Communication Management distribue le signal à toutes les applications souscrites.
Désenregistrement : Lors de l'arrêt ou lorsque les notifications d'état ne sont plus souhaitées, UnsetSubscriptionStateChangeHandler() est appelé ([SWS_CM_01112]).
La méthode Send() retourne un ara::core::Result<void> par lequel d'éventuelles erreurs de transmission et de configuration sont acheminées ([SWS_CM_00721]) :
ComErrc::kServiceNotOffered : survient lorsque l'instance de service n'a pas encore été mise à disposition via OfferService() ([SWS_CM_00721]).
ComErrc::kMinimumSendIntervalViolationError : est retourné si un intervalle d'émission minimal configuré (minimumSendInterval) entre des transmissions consécutives n'a pas été respecté ([SWS_CM_00721]).
ComErrc::kCommunicationFailure : est signalé lorsque l'envoi du trigger échoue localement en raison d'une erreur réseau sous-jacente ([SWS_CM_10517]).
Gestionnaire invalide (InvalidHandlerViolation) : la transmission d'un objet appelable (Callable) inexistant ou vide à SetSubscriptionStateChangeHandler() constitue une violation des conditions contractuelles de l'API ([SWS_CM_01110], [SWS_CM_01111]).
Ce guide repose exclusivement sur les spécifications AUTOSAR Adaptive Platform Release R25-11.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : a3259c7728c6ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La méthode Send transmet un déclencheur sans données utiles à toutes les applications abonnées ([SWS_CM_00721]). Elle appartient à la classe de squelette <SI-Namespace>::skeleton::triggers::<Trigger> et est mise à disposition via le fichier d'en-tête #include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h" ([SWS_CM_00721]).
La fonction est définie comme noexcept, considérée comme sûre vis-à-vis des exceptions et n'attend aucun paramètre d'entrée ([SWS_CM_00721]). ara::core::Result<void> sert de type de retour ([SWS_CM_00721]) :
Cas de succès : le résultat contient une valeur vide (void) et signale le déclenchement réussi de la transmission ([SWS_CM_00721]).
Cas d'erreur : le résultat encapsule un code d'erreur issu du domaine ara::com::ComErrc ([SWS_CM_10432]). Les erreurs possibles avec sémantique de rollback sont :
ComErrc::kServiceNotOffered : le service n'a pas encore été proposé auparavant au moyen de OfferService() ([SWS_CM_00721]).
ComErrc::kMinimumSendIntervalViolationError : une demande de transmission a eu lieu avant l'expiration de l'intervalle d'émission minimal configuré ServiceInterfaceDeploymentElement.minimumSendInterval ([SWS_CM_00721]).
• If successful: an ara::core::Result containing a ara:: core::Result::value_type containing a void • If unsuccessful: an ara::core::Result containing an ara:: core::Result::error_type i.e. a corresponding ara:: com::ComErrc
Fehler
Fehlercode
Beschreibung
ComErrc::kServiceNotOffered
rollback_semantics Service has not yet been offered via OfferService()
ComErrc::kMinimumSendIntervalViolationError
rollback_semantics Minimum Send Interval violation, because a transmission request for a service instance element (event, field or method call) was issued faster than allowed, i.e., the configured minimum send interval ServiceInterfaceDeploymentElement. minimumSendInterval for the service instance element has not yet expired.
Request a governed re-review of this record. The record is not changed immediately.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : d968f8357edfProvenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La fonction SetSubscriptionStateChangeHandler sert, côté skeleton, à enregistrer une fonction de rappel pour surveiller les changements de souscription sur un déclencheur [SWS_CM_01110]. La méthode appartient à l'espace de noms <SI-Namespace>::skeleton::triggers::<Trigger> et est mise à disposition via le fichier d'en-tête <SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h[SWS_CM_01110].
Un objet fonction appelable de type SubscriptionStateChangeHandler est transmis en paramètre [SWS_CM_00311][SWS_CM_01110]. L'appel est déclaré comme noexcept, ne renvoie aucune valeur de retour et est spécifié comme sûr vis-à-vis des exceptions (exception safe) [SWS_CM_01110]. Si le callable gestionnaire transmis n'existe pas ou est nul, le système signale une InvalidHandlerViolation[SWS_CM_01110].
Le Communication Management appelle la fonction de rappel enregistrée dès que l'état de souscription du déclencheur change [SWS_CM_01101] :
avec la valeur d'état kSubscribed dès que le nombre de souscriptions actives pour ce déclencheur devient supérieur à 0 [SWS_CM_01102],
avec la valeur d'état kNotSubscribed côté skeleton lorsqu'il n'y a plus d'abonnements actifs [SWS_CM_01103].
Le gestionnaire enregistré peut être écrasé au moment de l'exécution [SWS_CM_01101]. Si l'exécution du gestionnaire doit avoir lieu dans un contexte d'exécution défini, la variante de modèle surchargée avec un paramètre ExecutorT&& est disponible comme alternative [SWS_CM_01111].
Ce texte a été généré par une IA sur la base de la spécification AUTOSAR R25-11.
class <SI-Namespace>::skeleton:: triggers::<Trigger>
Exception-Sicherheit
exception safe
Verletzungen (Violations)
InvalidHandlerVio- Provided Callable handler does not exist or is null lation
Parameter (in)
Parameter
Beschreibung
handler
The handler (as per [SWS_CM_00311]) that shall be called by Communication Management as soon as the ara::com:: SubscriptionState of the trigger has changed.
Rückgabewert
Typ
Beschreibung
None
Request a governed re-review of this record. The record is not changed immediately.
As per [SWS_CM_12008] but the method shall execute in a provided context
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : f69a35ebe8e5ProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La fonction modèle SetSubscriptionStateChangeHandler enregistre au niveau du skeleton pour les déclencheurs ([SWS_CM_01111]) un gestionnaire de rappel pour les changements de l'état de l'abonnement (ara::com::SubscriptionState). Outre le paramètre appelable handler, la méthode accepte un contexte d'exécution executor de type ExecutorT ([SWS_CM_01111]). La fonction ne possède pas de valeur de retour et est définie dans la portée <SI-Namespace>::skeleton::triggers::<Trigger> ([SWS_CM_01111]).
Contrairement à la fonction de base sans exécuteur ([SWS_CM_01110]), cette signature garantit que le rappel est exécuté dans un contexte défini par l'utilisateur ([SWS_CM_01111]). Comme pour la variante basée sur des événements selon [SWS_CM_12008], l'exécution est vraisemblablement déléguée à l'objet exécuteur transmis afin de contrôler de manière ciblée le threading au sein de l'application skeleton. Question Q-ba14993b00a7d972 (ouverte)
L'interface est spécifiée comme noexcept et sûre vis-à-vis des exceptions ([SWS_CM_01111]). Si l'appelable transmis est invalide ou nul, une InvalidHandlerViolation est présente selon la spécification ([SWS_CM_01111]).
Sur le plan fonctionnel, la méthode correspond aux surcharges équivalentes avec exécuteur pour les événements de skeleton ([SWS_CM_12009]) ainsi qu'aux contreparties côté client de l'interface proxy ([SWS_CM_01106], [SWS_CM_11354]).
Cette note d'utilisation a été générée automatiquement sur la base des données de spécification d'AUTOSAR Adaptive R25-11.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : d6281d4aa1edProvenanceQuestions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
La fonction UnsetSubscriptionStateChangeHandler sert, côté skeleton, à supprimer un callback précédemment enregistré pour les modifications de l'état d'abonnement (SubscriptionState) sur un déclencheur de service ([SWS_CM_01112]). Elle est définie dans l'espace de noms <SI-Namespace>::skeleton::triggers::<Trigger> via l'en-tête <SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h ([SWS_CM_01112]).
Utilisation et sémantique : l'interface possède la signature void UnsetSubscriptionStateChangeHandler() noexcept, n'attend aucun paramètre de transmission et ne possède aucune valeur de retour ([SWS_CM_01112]). Conformément à la spécification, elle est classée comme sûre vis-à-vis des exceptions (exception safe) ([SWS_CM_01112]). Aucun code d'erreur ni mécanisme de rapport spécifique (DET/DEM) n'est prévu pour cet appel.
Concurrence et interfaces associées : en ce qui concerne la concurrence, le désenregistrement devrait s'effectuer de manière synchrone, de sorte qu'après le retour de l'appel de fonction, aucune notification d'état supplémentaire ne soit remise au gestionnaire précédemment enregistré. Question Q-e005c4818e02e52f (ouverte) Des fonctions de désenregistrement analogues sont spécifiées côté skeleton pour les événements ([SWS_CM_12010]) ainsi que côté proxy pour les événements ([SWS_CM_00334]), les déclencheurs ([SWS_CM_01108]) et les champs ([SWS_CM_11609], AUTOSAR_AP_EXP_ARAComAPI §5.3.1 « Proxy Class API’s »).
Cette note d'utilisation a été générée automatiquement sur la base de la spécification AUTOSAR R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original allemand