DEENESPTFRRUARHIKOZHNL

class <SI-Namespace>::skeleton:: events::<Event>

User GuideAI-GENERATED

Enables service providers to send events from the server side to subscribing applications.
AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 61a657b4f5c6 Provenance Open questions (2)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Enables service providers to send events from the server side to subscribing applications.

The class <SI-Namespace>::skeleton::events::<Event> serves service providers on the AUTOSAR Adaptive Platform to publish event data to subscribing applications. Events can be sent either copy-based or efficiently without copying via buffers pre-allocated via Allocate() ([SWS_CM_90438]). The send call via Send() strictly requires that the associated service instance was previously successfully offered and that the configured minimum send interval is adhered to ([SWS_CM_00162]).

Context

The class <SI-Namespace>::skeleton::events::<Event> represents the server-side interface for publishing events of a service within the AUTOSAR Adaptive Platform. It enables a service application (skeleton) to asynchronously transmit updated event data of type SampleType ([SWS_CM_11400]) to all subscribing client applications ([SWS_CM_00162]). The skeleton interacts directly with the communication layer (Communication Management), which handles the discovery of service instances and the physical distribution of event data. In addition to sending data, the event instance monitors the current subscription status and notifies the service provider of changes in the subscriber base ([SWS_CM_12008], [SWS_CM_12011]).

EventKontext Application Anwendungs-Skeleton Event <SI-Namespace>::skeleton::events::<Event> Application->Event Send() / Allocate() Event->Application SubscriptionState ComMgt Communication Management Event->ComMgt Datenweitergabe ComMgt->Event Abonnement-Zustand Subscribers Abonnierende Anwendungen ComMgt->Subscribers Event-Verteilung

Context diagram: Interaction of the Event class with service provider, Communication Management, and subscribers. Sources: [SWS_CM_00162], [SWS_CM_90437], [SWS_CM_12011]

Lifecycle

Instantiation of the Event class takes place in conjunction with the enclosing skeleton service instance. Presumably, the lifetime of the event instance is bound tightly to the lifetime of the skeleton, so that an event object becomes usable only after construction of the service and ends with its destruction. Question Q-4e733f93c853a3eb (open) Before active data transmission, the service must have been offered, as transmission attempts prior to service offering fail ([SWS_CM_00162]).

During the operational phase, the instance reflects the state of subscriber connections. The current status can be queried via GetSubscriptionState() ([SWS_CM_12011]). For asynchronous reactions to state changes, the application registers a corresponding callback using SetSubscriptionStateChangeHandler() ([SWS_CM_12008]), optionally coupled to a specific execution context via an executor object ([SWS_CM_12009]). Upon termination or re-orientation of the service, this handler can be deregistered again via UnsetSubscriptionStateChangeHandler() ([SWS_CM_12010]). All status queries and handler methods are declared as noexcept and ensure exception safety ([SWS_CM_12008], [SWS_CM_12011]).

Usage Path

Two principal transmission modes are available to the service application for publishing event data: copy-based transmission and the zero-copy method using managed memory (EXP ara::com API p. 10).

In the regular usage path, the service provider initially registers a callback for subscription changes if needed ([SWS_CM_12008]). As soon as subscribers are present, the application either creates local data and passes it by value to Send() ([SWS_CM_00162]), whereby Communication Management creates a copy of the data and forwards it to all subscribers (EXP ara::com API p. 10).

Alternatively, to avoid copy overhead, the application requests a memory buffer in the form of a Allocate() directly from the communication layer via ara::com::SampleAllocateePtr<SampleType> ([SWS_CM_90438], EXP ara::com API p. 10). After filling the buffer, it is transmitted via the specialized overload of Send() ([SWS_CM_90437]). Interpretation: Upon sending, ownership of the memory likely transfers completely to Communication Management, as any further access to the data after the call is explicitly prohibited for the application ([SWS_CM_90437]). Question Q-86aba8c6f9bf42e9 (open)

Sequence of event transmission at the skeletonAnwendung (Skeleton)Event-ObjektCommunication ManagementUse Case: Handler-RegistrierungSetSubscriptionStateChangeHandler(handler)Abonnement-Handler registrierenUse Case: Variant 1: Zero-copy transmission with AllocateAllocate()Speicherpuffer reservierenSampleAllocateePtrSampleAllocateePtrPufferdaten schreibenSend(ptr)Transmit data to subscribersResult<void>Result<void>Use Case: Variant 2: Copy-based transmissionSend(data)Create copy and transmitResult<void>Result<void>

Sequence diagram: Typical sequence of event transmission including handler registration and allocation. Sources: [SWS_CM_12008], [SWS_CM_90438], [SWS_CM_90437], [SWS_CM_00162]

Error Scenarios

Calls to Send() return a ara::core::Result<void>, which in case of error contains a corresponding error code of type ara::com::ComErrc ([SWS_CM_00162], [SWS_CM_90437]). Defined error cases include:

  • ComErrc::kServiceNotOffered: The service was not yet provided via OfferService() before the send attempt ([SWS_CM_00162], [SWS_CM_90437]).
  • ComErrc::kMinimumSendIntervalViolationError: The minimum send interval configured for the event (minimumSendInterval) was violated because send calls were issued in too rapid succession ([SWS_CM_00162], [SWS_CM_90437]).

In addition, preconditions must be observed during allocation and handler configuration:

  • Allocate() is not exception-safe (not exception safe) and results in a SampleAllocationViolation in the event of insufficient memory resources, or in a AllocateUsageViolation in the event of impermissible use of user-defined allocators ([SWS_CM_90438]).
  • SetSubscriptionStateChangeHandler() requires a valid, callable function object; if a null or non-existent handler is passed, this results in a InvalidHandlerViolation ([SWS_CM_12008], [SWS_CM_12009]).

This guide is based on the AUTOSAR Adaptive Platform R25-11 specification.

Member map

Class diagram

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G n_SI_Namespace___skeleton___events___Event_831 <Event> + Allocate() + Send() + GetSubscriptionState() + SetSubscriptionStateChangeHandler() + UnsetSubscriptionStateChangeHandler()

Detail view

Select an entry in the outline.

Methods

Allocate function

Allocating data for event transfer when Communication Management is responsible for the data.

Query ara::com::SubscriptionState of an event.

ara::com::SubscriptionState GetSubscriptionState () const noexcept;
Send function 2

Send event where the application is responsible for the data. The Communication Management creates a copy of the data to send and sends it to all subscribing applications.

Overloads Send 2
ara::core::Result< void > Send (<SSampleDerivedType> data) noexcept; SWS_CM_00162
ara::core::Result< void > Send (ara::com::SampleAllocateePtr< Sample Type > data) noexcept; SWS_CM_90437

Set/Register ara::com::SubscriptionState change handler

Overloads SetSubscriptionStateChangeHandler 2
void SetSubscriptionStateChangeHandler (ara::com::SubscriptionState ChangeHandler handler) noexcept; SWS_CM_12008
template <typename ExecutorT> void SetSubscriptionStateChangeHandler (ara::com::SubscriptionState ChangeHandler handler, ExecutorT &&executor) noexcept; SWS_CM_12009

Unset/Deregister the ara::com::SubscriptionState change handler

void UnsetSubscriptionStateChangeHandler () noexcept;

Type aliases

SampleType type alias

Data type for the value of an event sample (the CppImplementationDataType of the Event, i.e. for the CppImplementationDataType which is either referenced by the VariableDataPrototype in the role type directly or via the indirection of a DataTypeMap)

using SampleType = <SSampleCppidt>;

Method documentation

function Allocate [SWS_CM_90438] Upstream: RS_CM_00201, RS_AP_00114, RS_AP_00115, RS_AP_00120

ara::com::SampleAllocateePtr< SampleType > Allocate ();

Allocating data for event transfer when Communication Management is responsible for the data.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: fc3608719061 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The method Allocate is called at the skeleton level for an event ([SWS_CM_90438]; AUTOSAR_AP_EXP_ARAComAPI §5.4.1 “Skeleton Class API’s”) in order to allocate memory for the transmission of event data when Communication Management (ara::com) is responsible for managing the data ([SWS_CM_90438]). It returns an instance of type ara::com::SampleAllocateePtr<SampleType> ([SWS_CM_90438]). This pointer type conceptually behaves like a std::unique_ptr<T>, so that only one party owns the pointer at any given time (ARAComAPI §6 “Event Allocate/Send sample Binding implementer hint”).

Regarding error handling and exception safety, Allocate is specified as not exception safe ([SWS_CM_90438]). The specification defines two possible violations:

  • SampleAllocationViolation: Insufficient memory resources are available to allocate the data ([SWS_CM_90438]).
  • AllocateUsageViolation: The allocation was impermissibly performed via a custom allocator ([SWS_CM_90438]).

The concept behind Allocate primarily aims at supporting zero-copy mechanisms, particularly with shared-memory-based IPC transport, where strict synchronization between readers and writers is assumed (ARAComAPI §6 “Event Allocate/Send sample Binding implementer hint”). Implementers must note that serialization requirements can negate zero-copy if data types in deployment are not configured to be binary compatible or detection logic precludes this (ARAComAPI §6 “Event Allocate/Send sample Binding implementer hint”).

In interaction with sending events, the memory pointer obtained via Allocate is passed to Send(ara::com::SampleAllocateePtr<SampleType> data) ([SWS_CM_90437]). After calling Send, the service application may no longer access the data once Communication Management transmits the data to all subscribing applications ([SWS_CM_90437]).

This text was created by an AI and is based exclusively on the specification documents of AUTOSAR release R25-11.

Implementer's Guide to follow (complexity I2)

Header-Datei#include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h"
Scopeclass <SI-Namespace>::skeleton:: events::<Event>
Exception-Sicherheitnot exception safe
Verletzungen (Violations)SampleAllocation- Not enough memory resources can be allocated Violation AllocateUsageVio- The allocation was illegally done via custom allocator lation

Rückgabewert

TypBeschreibung
ara::com::SampleA ara::com::SampleAllocateePtr to an event sample AllocateePtr< Sample Type >

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

Record
AUTOSAR/AP/record/SWS_CM_90438
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CM_90438@rel:R25-11#b02a325f
Content hash
b02a325f
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_CommunicationManagement.pdf#nameddest=SWS_CM_90438
Status: valid/unmigrated Version: rel:R25-11#3059e6d8 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_90438@rel:R25-11#3059e6d8
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#b02a325f2026-09-30
  • R19-11rel:R19-11#b404edd72026-10-14
  • R20-11rel:R20-11#8f3783f62026-10-14
  • R21-11rel:R21-11#a234befb2026-10-14
  • R22-11rel:R22-11#340e44dd2026-10-14
  • R23-11rel:R23-11#340e44dd2026-10-14
  • R24-11rel:R24-11#2e4120f42026-10-14
  • R25-11rel:R25-11#3059e6d82026-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

function GetSubscriptionState [SWS_CM_12011]

ara::com::SubscriptionState GetSubscriptionState () const noexcept;

Query ara::com::SubscriptionState of an event.

Header-Datei#include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h"
Scopeclass <SI-Namespace>::skeleton:: events::<Event>
Exception-Sicherheitexception safe

Rückgabewert

TypBeschreibung
ara::com::SubscriptionStateThe state of the subscription (as per [SWS_CM_12008]).

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

Record
AUTOSAR/AP/record/SWS_CM_12011
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CM_12011@rel:R25-11#83254be0
Content hash
83254be0
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_CommunicationManagement.pdf#nameddest=SWS_CM_12011
Status: valid/unmigrated Version: rel:R25-11#dec03137 Versionshistorie & Revisions (1 transition, 4 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_12011@rel:R25-11#dec03137
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#83254be02026-09-30
  • R23-11rel:R23-11#ca04b0b12026-10-14
  • R24-11rel:R24-11#504de02a2026-10-14
  • R25-11rel:R25-11#dec031372026-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

function Send [SWS_CM_00162] Upstream: RS_CM_00201, RS_AP_00114, RS_AP_00121

ara::core::Result< void > Send (<SSampleDerivedType> data) noexcept;

Send event where the application is responsible for the data. The Communication Management creates a copy of the data to send and sends it to all subscribing applications.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: b00b88b264c7 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function [SWS_CM_00162] serves on the service provider side within <SI-Namespace>::skeleton::events::<Event> to send event data to all subscribing applications. In this variant, responsibility for data allocation remains entirely with the applying application. The data object is passed via parameter data, whereupon the binding implementation creates an internal copy during the call (ARAComAPI, Figure 6.17 “BrakeEvent Class”). After the synchronous method call returns, the application can immediately modify or free the original memory area.

The method is declared with noexcept and specified as exception-safe. It returns a ara::core::Result<void>, which contains void in case of success and reports error codes from [SWS_CM_10432] in case of error ([SWS_CM_00162]):

  • ComErrc::kServiceNotOffered: Occurs if the service instance has not yet been offered via OfferService().
  • ComErrc::kMinimumSendIntervalViolationError: Occurs if the send request was issued faster than the configured minimum send interval (ServiceInterfaceDeploymentElement.minimumSendInterval).

In contrast to the zero-copy alternative [SWS_CM_90437], which requires pointers of type ara::com::SampleAllocateePtr obtained via Allocate(), this call does not require any memory binding to the framework. The same transmission behavior and error conditions also apply according to [SWS_CM_00119] to the update method Update of fields.

This usage note was generated automatically based on the specification.

Implementer's Guide to follow (complexity I2)

Header-Datei#include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h"
Scopeclass <SI-Namespace>::skeleton:: events::<Event>
Exception-Sicherheitexception safe

Parameter (in)

ParameterBeschreibung
dataThe data to send out to the subscribed applications.

Rückgabewert

TypBeschreibung
ara::core::Result< void >• 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

FehlercodeBeschreibung
ComErrc::kServiceNotOfferedrollback_semantics Service has not yet been offered via OfferService()
ComErrc::kMinimumSendIntervalViolationErrorrollback_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.

Record
AUTOSAR/AP/record/SWS_CM_00162
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CM_00162@rel:R25-11#862d1331
Content hash
862d1331
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_CommunicationManagement.pdf#nameddest=SWS_CM_00162
Status: valid/unmigrated Version: rel:R25-11#ba1342ed 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_00162@rel:R25-11#ba1342ed
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#862d13312026-09-30
  • R19-11rel:R19-11#13bfaa4c2026-10-14
  • R20-11rel:R20-11#1f8e5ce62026-10-14
  • R21-11rel:R21-11#dda704792026-10-14
  • R22-11rel:R22-11#d72ec9682026-10-14
  • R23-11rel:R23-11#eda889842026-10-14
  • R24-11rel:R24-11#ec951a632026-10-14
  • R25-11rel:R25-11#ba1342ed2026-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

function Send [SWS_CM_90437] Upstream: RS_CM_00201, RS_AP_00114, RS_AP_00121

ara::core::Result< void > Send (ara::com::SampleAllocateePtr< Sample Type > data) noexcept;

Send event where Communication Management is responsible for the data. The data is allocated using Allocate(). The application is not allowed to access the data after Communication Management sends it to all subscribing applications.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: b8026be0eee1 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Usage and Call Context

The method Send is called on an event instance in the service skeleton (<SI-Namespace>::skeleton::events::<Event>) ([SWS_CM_90437]). It transmits event data for whose memory management Communication Management is responsible. The parameter data of type ara::com::SampleAllocateePtr<SampleType> must have been obtained beforehand via Allocate() ([SWS_CM_90437]). This pointer type behaves semantically like a std::unique_ptr, whereby ownership of the data passes to the communication layer upon the call (ARAComAPI §6.17 “BrakeEvent Class”). After the transfer, the sending application is prohibited from any further access to the data ([SWS_CM_90437]).

Error Handling and Boundary Conditions

The function is declared as noexcept and returns a ara::core::Result<void> ([SWS_CM_90437]). If sending fails, the result contains an error code from ara::com::ComErrc ([SWS_CM_10432]):

  • ComErrc::kServiceNotOffered: The associated service has not yet been offered beforehand with OfferService() ([SWS_CM_90437]).
  • ComErrc::kMinimumSendIntervalViolationError: The minimum sending interval (minimumSendInterval) configured for the service element has not yet elapsed since the last transmission ([SWS_CM_90437]).

Both error cases have rollback semantics ([SWS_CM_90437]). Before the call, the service must therefore mandatorily have been offered, and consecutive send calls must adhere to the configured minimum interval.

Interaction and optimization

Compared to the signature [SWS_CM_00162], in which application-managed data is passed and copied by Communication Management, this variant aims at zero-copy communication via shared memory (ARAComAPI §6.18 “Event Allocate/Send sample”). In doing so, strict synchronization between writers and readers is assumed, whereby possible serialization requirements between communication partners must be observed (ARAComAPI §6.18 “Event Allocate/Send sample”).

Note: This usage note was created automatically based on the specification status R25-11.

Implementer's Guide to follow (complexity I2)

Header-Datei#include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h"
Scopeclass <SI-Namespace>::skeleton:: events::<Event>
Exception-Sicherheitexception safe

Parameter (in)

ParameterBeschreibung
datathe data to send.

Rückgabewert

TypBeschreibung
ara::core::Result< void >• 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

FehlercodeBeschreibung
ComErrc::kServiceNotOfferedrollback_semantics Service has not yet been offered via OfferService()
ComErrc::kMinimumSendIntervalViolationErrorrollback_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.

Record
AUTOSAR/AP/record/SWS_CM_90437
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CM_90437@rel:R25-11#396a1de4
Content hash
396a1de4
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_CommunicationManagement.pdf#nameddest=SWS_CM_90437
Status: valid/unmigrated Version: rel:R25-11#b7d5aba8 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_90437@rel:R25-11#b7d5aba8
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#396a1de42026-09-30
  • R19-11rel:R19-11#943893002026-10-14
  • R20-11rel:R20-11#a05235692026-10-14
  • R21-11rel:R21-11#928b87cd2026-10-14
  • R22-11rel:R22-11#7fc4ccbc2026-10-14
  • R23-11rel:R23-11#7b2bb5e12026-10-14
  • R24-11rel:R24-11#0010eeba2026-10-14
  • R25-11rel:R25-11#b7d5aba82026-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

function SetSubscriptionStateChangeHandler [SWS_CM_12008]

void SetSubscriptionStateChangeHandler (ara::com::SubscriptionState ChangeHandler handler) noexcept;

Set/Register ara::com::SubscriptionState change handler

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: ae7a884485e1 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

use

The function SetSubscriptionStateChangeHandler registers a callback handler in the skeleton scope (skeleton::events) for monitoring the subscription state of an event [SWS_CM_12008]. Parameter handler must be a callable object of type SubscriptionStateChangeHandler according to [SWS_CM_00311]. The method returns no value and is specified as noexcept [SWS_CM_12008].

Communication Management calls the registered handler as soon as the subscription state of the event changes [SWS_CM_12012]. On the skeleton side, this happens with the state kSubscribed as soon as the number of active subscriptions becomes greater than zero [SWS_CM_12013], or with kNotSubscribed when there are no longer any active subscriptions [SWS_CM_12014] SWS CommunicationManagement §7.5.4 “Query Service Event Subscription State on Skeleton side”.

Error Handling and Concurrency

The operation is classified as exception safe [SWS_CM_12008]. If the passed callable is invalid or null, a InvalidHandlerViolation occurs [SWS_CM_12008]. Interpretation: Since the function neither throws exceptions nor returns an error code, this specification violation is likely caught via platform-specific runtime mechanisms. Question Q-a7b7b54f0d538b40 (open)

The handler may be overwritten at runtime [SWS_CM_12012]. For execution in a dedicated thread or task context, the overload with the template parameter executor exists [SWS_CM_12009]. An analogous registration for trigger elements of the skeleton is defined by [SWS_CM_01110].

This text was generated by an AI based on the AUTOSAR specification.

Implementer's Guide to follow (complexity I2)

Header-Datei#include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h"
Scopeclass <SI-Namespace>::skeleton:: events::<Event>
Exception-Sicherheitexception safe
Verletzungen (Violations)InvalidHandlerVio- Provided Callable handler does not exist or is null lation

Parameter (in)

ParameterBeschreibung
handlerThe handler (as per [SWS_CM_00311]) that shall be called by Communication Management as soon as the ara::com:: SubscriptionState of the event has changed.

Rückgabewert

TypBeschreibung
None

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

Record
AUTOSAR/AP/record/SWS_CM_12008
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CM_12008@rel:R25-11#5a03f429
Content hash
5a03f429
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_CommunicationManagement.pdf#nameddest=SWS_CM_12008
Status: valid/unmigrated Version: rel:R25-11#e64cfb4e Versionshistorie & Revisions (1 transition, 4 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_12008@rel:R25-11#e64cfb4e
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#5a03f4292026-09-30
  • R23-11rel:R23-11#d6b69d732026-10-14
  • R24-11rel:R24-11#a914158e2026-10-14
  • R25-11rel:R25-11#e64cfb4e2026-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

function SetSubscriptionStateChangeHandler [SWS_CM_12009]

template <typename ExecutorT> void SetSubscriptionStateChangeHandler (ara::com::SubscriptionState ChangeHandler handler, ExecutorT &&executor) noexcept;

As per [SWS_CM_12008] but the method shall execute in a provided context

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: db9c8806b4e9 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The template function SetSubscriptionStateChangeHandler serves at the skeleton level ([SWS_CM_12009]) in the namespace of an event to register a callback for state changes of incoming subscriptions. Compared to the basic function without executor ([SWS_CM_12008]), it additionally accepts an execution context (executor) in which the registered handler is executed ([SWS_CM_12009]). The function has no return value, is declared as noexcept, and is considered exception-safe ([SWS_CM_12009]).

Regarding error behavior, passing an invalid or null callable results in a InvalidHandlerViolation ([SWS_CM_12009]). The registered handler can be overwritten at any time during application runtime by calling the function again ([SWS_CM_12012]).

Communication Management calls the handler as soon as the state of the subscriptions for the respective event changes (SWS CommunicationManagement §7.5.4 “Query Service Event Subscription State on Skeleton side”, [SWS_CM_12012]):

  • The call is made with status kSubscribed if the number of active subscriptions increases from zero to more than zero ([SWS_CM_12013]).
  • If the number of active subscribers drops back to zero, the handler is notified with kNotSubscribed ([SWS_CM_12014]).

Interpretation: By passing executor, the execution of the handler is likely specifically bound to application-owned thread or dispatching contexts ([SWS_CM_12009]) in order to cleanly separate concurrent notification of skeleton code from internal communication threads. Question Q-b11f3bc97069f2ec (open)

This text was created by an AI and is based on the specifications of Release R25-11.

Implementer's Guide to follow (complexity I2)

Header-Datei#include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h"
Scopeclass <SI-Namespace>::skeleton:: events::<Event>
Exception-Sicherheitexception safe
Verletzungen (Violations)InvalidHandlerVio- Provided Callable handler does not exist or is null lation

Template-Parameter

ParameterBeschreibung
ExecutorTAs per [SWS_CM_11360]

Parameter (in)

ParameterBeschreibung
handlerAs per [SWS_CM_12008]
executorAs per [SWS_CM_11360]

Rückgabewert

TypBeschreibung
None

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

Record
AUTOSAR/AP/record/SWS_CM_12009
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CM_12009@rel:R25-11#9ab0c0f9
Content hash
9ab0c0f9
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_CommunicationManagement.pdf#nameddest=SWS_CM_12009
Status: valid/unmigrated Version: rel:R25-11#2c78e37d Versionshistorie & Revisions (1 transition, 4 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_12009@rel:R25-11#2c78e37d
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#9ab0c0f92026-09-30
  • R23-11rel:R23-11#35fb91a02026-10-14
  • R24-11rel:R24-11#7040342f2026-10-14
  • R25-11rel:R25-11#2c78e37d2026-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

function UnsetSubscriptionStateChangeHandler [SWS_CM_12010]

void UnsetSubscriptionStateChangeHandler () noexcept;

Unset/Deregister the ara::com::SubscriptionState change handler

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 7e38e0032e54 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function UnsetSubscriptionStateChangeHandler is used on the skeleton level in namespace ::skeleton::events::{<event-name>} to deregister a previously registered state change handler for the ara::com::SubscriptionState of an event [SWS_CM_12010]. The function takes no parameters and returns no value (void) [SWS_CM_12010]. Inclusion is done via header #include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h" [SWS_CM_12010].

Regarding exception behavior, the method is declared with noexcept and specified as exception safe (exception safe) [SWS_CM_12010]. No specific error codes are returned or C++ exceptions thrown [SWS_CM_12010]. Interpretation: Any internal error states during deregistration should be caught internally by Communication Management, since the signature does not provide for error feedback. Question Q-7e986a15e552ca19 (open)

In interaction with related interfaces, analogous functions for handler deregistration exist:

This text was created by an AI and is based on the specification status of AUTOSAR Adaptive Release R25-11.

Implementer's Guide to follow (complexity I2)

Header-Datei#include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h"
Scopeclass <SI-Namespace>::skeleton:: events::<Event>
Exception-Sicherheitexception safe

Rückgabewert

TypBeschreibung
None

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

Record
AUTOSAR/AP/record/SWS_CM_12010
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CM_12010@rel:R25-11#e1b9df13
Content hash
e1b9df13
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_CommunicationManagement.pdf#nameddest=SWS_CM_12010
Status: valid/unmigrated Version: rel:R25-11#05477f97 Versionshistorie & Revisions (1 transition, 4 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_12010@rel:R25-11#05477f97
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#e1b9df132026-09-30
  • R23-11rel:R23-11#0217aa9b2026-10-14
  • R24-11rel:R24-11#1066f1922026-10-14
  • R25-11rel:R25-11#05477f972026-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

Type alias documentation

type alias SampleType [SWS_CM_11400] Upstream: RS_CM_00201, RS_AP_00114

using SampleType = <SSampleCppidt>;

Data type for the value of an event sample (the CppImplementationDataType of the Event, i.e. for the CppImplementationDataType which is either referenced by the VariableDataPrototype in the role type directly or via the indirection of a DataTypeMap)

Header-Datei#include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h"
Scopeclass <SI-Namespace>::skeleton:: events::<Event>
SymbolSampleType

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

Record
AUTOSAR/AP/record/SWS_CM_11400
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CM_11400@rel:R25-11#6078d79a
Content hash
6078d79a
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_CommunicationManagement.pdf#nameddest=SWS_CM_11400
Status: valid/unmigrated Version: rel:R25-11#6376c0a1 Versionshistorie & Revisions (1 transition, 5 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_11400@rel:R25-11#6376c0a1
Point-in-Time History:
Recorded Revisions (5):
  • R25-11rel:R25-11#6078d79a2026-09-30
  • R22-11rel:R22-11#9e7787d62026-10-14
  • R23-11rel:R23-11#9e7787d62026-10-14
  • R24-11rel:R24-11#b98c990b2026-10-14
  • R25-11rel:R25-11#6376c0a12026-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