Ermöglicht Service-Skeletons das Aussenden von Trigger-Signalen und das Überwachen des Abonnentenstatus.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 6e97d3082affHerkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Ermöglicht Service-Skeletons das Aussenden von Trigger-Signalen und das Überwachen des Abonnentenstatus.
Die Klasse <SI-Namespace>::skeleton::triggers::<Trigger> ermöglicht einer Server-Anwendung das Versenden von Trigger-Signalen an abonnierende Clients über das Kommunikations-Management ([SWS_CM_00721]). Zur Ablaufsteuerung können Abonnentenstatus überwacht und Benachrichtigungs-Handler registriert werden ([SWS_CM_01109], [SWS_CM_01110]). Das Auslösen via Send() erfordert ein angebotenes Service-Skeleton und quittiert Verstöße gegen Mindestsendeintervalle oder Netzwerkfehler mit entsprechenden Fehlercodes ([SWS_CM_00721], [SWS_CM_10517]).
Kontext
Die Template-Klasse <SI-Namespace>::skeleton::triggers::<Trigger> repräsentiert die serverseitige Schnittstelle eines Triggers, der innerhalb eines ServiceInterface in der Rolle trigger definiert ist. Als Bestandteil des Dienst-Skeletts (Skeleton) dient diese Klasse einer Service-Instanz dazu, asynchrone Benachrichtigungen oder Auslösesignale an abonnierende Client-Anwendungen im Gesamtsystem zu versenden. Ein Trigger unterscheidet sich von regulären Events dadurch, dass er primär als reines Signalisierungsereignis ohne komplexe Nutzdaten fungiert, wie die Einordnung in EXP_ARAComAPI §3 „Trigger::Send“ und SWS_CommunicationManagement §7.2.2.1.4 „Handling Triggers“ darlegt. Die Interaktionspartner umfassen die bereitstellende Server-Anwendung, die Middleware Communication Management (ara::com) sowie über das Netzwerk angebundene Subscriber-Clients.
Lebenszyklus
Die Instanziierung der Trigger-Objekte erfolgt typischerweise als integraler Bestandteil der Skeleton-Instanz des jeweiligen ServiceInterface. Vor der aktiven Nutzung muss das Skeleton über das Kommunikations-Management angeboten werden; wird versucht, einen Trigger vorher auszulösen, schlägt die Übertragung fehl ([SWS_CM_00721]). Die Klasse verwaltet den Subskriptionszustand der Abonnenten über ara::com::SubscriptionState, der jederzeit mit GetSubscriptionState() abgefragt werden kann ([SWS_CM_01109]). Zur asynchronen Zustandsüberwachung kann mittels SetSubscriptionStateChangeHandler() ein Callback registriert werden ([SWS_CM_01110]). Für nebenläufige Architekturen existiert eine Überladung, die einen benutzerdefinierten Executor entgegennimmt, sodass Benachrichtigungen im gewünschten Thread- oder Aufgabenkontext ausgeführt werden ([SWS_CM_01111]). Die Registrierung lässt sich über UnsetSubscriptionStateChangeHandler() wieder aufheben ([SWS_CM_01112]). Alle Methoden der Klasse bieten die Ausnahme-Garantie noexcept (exception safe).
Nutzungspfad
Der typische Ablauf zur Nutzung eines Triggers umfasst die Beobachtung des Subskriptionsstatus sowie das eigentliche Auslösen der Übertragung an alle aktiven Abonnenten:
Handler-Registrierung: Die Service-Anwendung registriert optional einen Zustands-Handler über SetSubscriptionStateChangeHandler() ([SWS_CM_01110], [SWS_CM_01111]), um über neu hinzukommende Abonnenten informiert zu werden.
Zustandsprüfung: Mit GetSubscriptionState() prüft der Server, ob mindestens ein aktiver Subscriber vorliegt ([SWS_CM_01109]), was gemäß [SWS_CM_10518] die Voraussetzung für die Sendeanforderung bildet.
Senden des Triggers: Das Senden wird über den Aufruf von Send() initiiert ([SWS_CM_00721], EXP_ARAComAPI §3 „Trigger::Send“), woraufhin das Kommunikations-Management das Signal an alle subskribierten Anwendungen verteilt.
Deregistrierung: Beim Herunterfahren oder wenn keine Zustandsbenachrichtigungen mehr gewünscht sind, wird UnsetSubscriptionStateChangeHandler() aufgerufen ([SWS_CM_01112]).
Die Methode Send() gibt ein ara::core::Result<void> zurück, über welches eventuelle Übertragungs- und Konfigurationsfehler transportiert werden ([SWS_CM_00721]):
ComErrc::kServiceNotOffered: Tritt auf, wenn die Service-Instanz noch nicht über OfferService() bereitgestellt wurde ([SWS_CM_00721]).
ComErrc::kMinimumSendIntervalViolationError: Wird zurückgegeben, falls ein konfiguriertes Mindestsendeintervall (minimumSendInterval) zwischen aufeinanderfolgenden Übertragungen unterschritten wurde ([SWS_CM_00721]).
ComErrc::kCommunicationFailure: Wird gemeldet, wenn das Versenden des Triggers lokal aufgrund eines zugrundeliegenden Netzwerkfehlers scheitert ([SWS_CM_10517]).
Ungültiger Handler (InvalidHandlerViolation): Das Übergeben eines nicht vorhandenen oder leeren Funktionsaufrufs (Callable) an SetSubscriptionStateChangeHandler() stellt eine Verletzung der API-Vertragsbedingungen dar ([SWS_CM_01110], [SWS_CM_01111]).
Dieser Leitfaden basiert ausschließlich auf den Spezifikationen AUTOSAR Adaptive Platform Release R25-11.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: a3259c7728c6HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Methode Send übermittelt einen Trigger ohne Nutzdaten an alle abonnierenden Applikationen ([SWS_CM_00721]). Sie gehört zur Skeleton-Klasse <SI-Namespace>::skeleton::triggers::<Trigger> und wird über die Header-Datei #include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h" bereitgestellt ([SWS_CM_00721]).
Die Funktion ist als noexcept definiert, gilt als ausnahmesicher und erwartet keine Übergabeparameter ([SWS_CM_00721]). Als Rückgabetyp dient ara::core::Result<void> ([SWS_CM_00721]):
Erfolgsfall: Das Ergebnis enthält einen leeren Wert (void) und signalisiert die erfolgreiche Auslösung der Übertragung ([SWS_CM_00721]).
Fehlerfall: Das Ergebnis kapselt einen Fehlercode aus der Domäne ara::com::ComErrc ([SWS_CM_10432]). Mögliche Fehler mit Rollback-Semantik sind:
ComErrc::kServiceNotOffered: Der Service wurde zuvor noch nicht mittels OfferService() angeboten ([SWS_CM_00721]).
ComErrc::kMinimumSendIntervalViolationError: Eine Übertragungsanforderung erfolgte vor Ablauf des konfigurierten Mindestsendeintervalls 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.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: d968f8357edfHerkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Funktion SetSubscriptionStateChangeHandler dient auf der Skeleton-Seite dazu, eine Callback-Funktion zur Überwachung von Subskriptionsänderungen an einem Trigger zu registrieren [SWS_CM_01110]. Die Methode gehört zum Namensraum <SI-Namespace>::skeleton::triggers::<Trigger> und wird über die Header-Datei <SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h bereitgestellt [SWS_CM_01110].
Als Parameter wird ein aufrufbares Funktionsobjekt vom Typ SubscriptionStateChangeHandler übergeben [SWS_CM_00311][SWS_CM_01110]. Der Aufruf ist als noexcept deklariert, liefert keinen Rückgabewert und ist als ausnahmesicher (exception safe) spezifiziert [SWS_CM_01110]. Wenn das übergebene Handler-Callable nicht existiert oder null ist, meldet das System eine InvalidHandlerViolation[SWS_CM_01110].
Das Communication Management ruft die registrierte Callback-Funktion auf, sobald sich der Subskriptionsstatus des Triggers ändert [SWS_CM_01101]:
mit dem Statuswert kSubscribed, sobald die Anzahl aktiver Subskriptionen für diesen Trigger größer als 0 wird [SWS_CM_01102],
mit dem Statuswert kNotSubscribed auf der Skeleton-Seite, wenn keine aktiven Abonnements mehr bestehen [SWS_CM_01103].
Der registrierte Handler darf zur Laufzeit überschrieben werden [SWS_CM_01101]. Soll die Ausführung des Handlers in einem definierten Ausführungskontext erfolgen, steht alternativ die überladene Template-Variante mit einem ExecutorT&&-Parameter zur Verfügung [SWS_CM_01111].
Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation R25-11 generiert.
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
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: f69a35ebe8e5HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Template-Funktion SetSubscriptionStateChangeHandler registriert auf Skeleton-Ebene für Trigger ([SWS_CM_01111]) einen Callback-Handler für Änderungen des Abonnementstatus (ara::com::SubscriptionState). Neben dem aufrufbaren Parameter handler nimmt die Methode einen Ausführungskontext executor vom Typ ExecutorT entgegen ([SWS_CM_01111]). Die Funktion besitzt keinen Rückgabewert und ist im Scope <SI-Namespace>::skeleton::triggers::<Trigger> definiert ([SWS_CM_01111]).
Im Gegensatz zur Basisfunktion ohne Executor ([SWS_CM_01110]) stellt diese Signatur sicher, dass der Callback in einem benutzerdefinierten Kontext ausgeführt wird ([SWS_CM_01111]). Wie bei der ereignisbasierten Variante nach [SWS_CM_12008] wird die Ausführung vermutlich an das übergebene Executor-Objekt delegiert, um das Threading innerhalb der Skeleton-Anwendung gezielt zu steuern. Frage Q-ba14993b00a7d972 (offen)
Die Schnittstelle ist als noexcept und ausnahmesicher spezifiziert ([SWS_CM_01111]). Sollte das übergebene Callable ungültig oder null sein, liegt laut Spezifikation eine InvalidHandlerViolation vor ([SWS_CM_01111]).
Funktional entspricht die Methode den analogen Executor-Überladungen für Skeleton-Events ([SWS_CM_12009]) sowie den clientseitigen Entsprechungen der Proxy-Schnittstelle ([SWS_CM_01106], [SWS_CM_11354]).
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikationsdaten von AUTOSAR Adaptive R25-11 generiert.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: d6281d4aa1edHerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Funktion UnsetSubscriptionStateChangeHandler dient auf Skeleton-Seite dazu, einen zuvor registrierten Callback für Änderungen des Abonnementstatus (SubscriptionState) an einem Service-Trigger zu entfernen ([SWS_CM_01112]). Sie ist im Namensraum <SI-Namespace>::skeleton::triggers::<Trigger> über den Header <SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h definiert ([SWS_CM_01112]).
Verwendung und Semantik: Die Schnittstelle besitzt die Signatur void UnsetSubscriptionStateChangeHandler() noexcept, erwartet keine Übergabeparameter und besitzt keinen Rückgabewert ([SWS_CM_01112]). Gemäß Spezifikation ist sie als ausnahmesicher (exception safe) eingestuft ([SWS_CM_01112]). Fehlercodes oder spezifische Reporting-Mechanismen (DET/DEM) sind für diesen Aufruf nicht vorgesehen.
gemini-3.8-flash-medium· 2026-10-13