DEENESPTFRRUARHIKOZHNL

class {<hierarchical-namespace-list-lower-skeleton>}::skeleton::{ <service-interface-name>}Skeleton

User GuideKI-GENERIERT

Dient als Basisklasse zur serverseitigen Implementierung und Bereitstellung von Methoden eines Service-Interface.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 3d03b3b797b6 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Dient als Basisklasse zur serverseitigen Implementierung und Bereitstellung von Methoden eines Service-Interface.

Die Klasse dient als serverseitige Basisklasse zur Implementierung eines Service-Interface in ara::com, von der die Dienstanbieter-Anwendung ableitet. Beim Erzeugen wird über den Konstruktor festgelegt, ob eintreffende Methodenaufrufe ereignisgesteuert oder per Polling verarbeitet werden [SWS_CM_00130]. Fehlerhafte Abläufe werden bei ausnahmesicher deklarierten Methoden über das zurückgegebene ara::core::Future als Fehlercode signalisiert [SWS_CM_00191].

Kontext

Die Klasse {<hierarchical-namespace-list-lower-skeleton>}::skeleton::{ <service-interface-name>}Skeleton dient in der Adaptive Platform im Modul com als generierte, abstrakte Basisklasse für die serverseitige Bereitstellung eines Service-Interface. Eine anwendungsspezifische Dienstanbieter-Komponente leitet von dieser Skeleton-Klasse ab, um die funktionale Geschäftslogik des Dienstes zu implementieren. Die Klasse vermittelt zwischen der konkreten Dienstanbieter-Anwendung und der Kommunikations-Middleware bzw. dem zugrunde liegenden Protokoll-Binding wie SOME/IP (SWS CommunicationManagement §8.1 „Method invocation“). Zu den Interaktionspartnern gehören die Dienstanbieter-Anwendung, welche die Instanz erzeugt und besitzt, die Skeleton-Klasse selbst sowie die Kommunikationsinfrastruktur, welche eingehende Service-Anfragen empfängt, deserialisiert und an das Skeleton weiterleitet ([SWS_CM_10306], [SWS_CM_10307]).

Context Provider Dienstanbieter-Implementierung Skeleton ServiceSkeleton Provider->Skeleton erbt von / implementiert Binding Kommunikations-Binding / Middleware Skeleton->Binding liefert Future / Ergebnis Binding->Skeleton leitet Methodenaufrufe weiter

Kontextdiagramm: Zusammenspiel von Dienstanbieter-Anwendung, ServiceSkeleton und Kommunikations-Middleware. Quellen: [SWS_CM_10306], [SWS_CM_10307], SWS CommunicationManagement §8.1 „Method invocation“.

Lebenszyklus

Die Erzeugung der Skeleton-Instanz erfolgt über den Konstruktor, dem der gewünschte Verarbeitungsmodus ara::com::MethodCallProcessingMode übergeben wird [SWS_CM_00130]. Dieser Modus legt die Nebenläufigkeitsstrategie für eintreffende Methodenaufrufe fest: Wird kEvent oder kEventSingleThread konfiguriert, werden ankommende Methodenaufrufe unmittelbar ereignisgesteuert durch die Kommunikations-Middleware aufgerufen [SWS_CM_10306]. Wird stattdessen kPoll übergeben, erfolgt die Abwicklung abfragebasiert durch die Anwendung [SWS_CM_10307]. Interpretation: Die Skeleton-Instanz verbleibt vermutlich während der gesamten aktiven Dienstbereitstellung im Besitz der Dienstanbieter-Anwendung und wird erst beim Herunterfahren des Service zerstört. Frage Q-ce25321f79393024 (offen)

Nutzungspfad

Der typische Ablauf umfasst die Implementierung der rein virtuellen Methoden durch die abgeleitete Anbieterklasse und die spätere Ausführung bei eintreffenden Anfragen. Für reguläre Methodenaufrufe (Request-Response) definiert das Skeleton eine Schnittstelle, die ein ara::core::Future mit dem entsprechenden Ausgabe-Objekt zurückliefert [SWS_CM_00191], [SWS_CM_99556]. Für Fire-and-Forget-Methoden ohne Rückantwort stellt das Skeleton rein virtuelle Operationen mit dem Rückgabetyp void bereit [SWS_CM_90434]. Bei eingehenden Anforderungen deserialisiert die Kommunikations-Middleware die Nutzdaten und leitet den Aufruf gemäß des konfigurierten Verarbeitungsmodus an die konkrete Implementierung der Skeleton-Klasse weiter ([SWS_CM_10306], [SWS_CM_00191]).

Aufruf einer Service-Methode am SkeletonKommunikations-BindingServiceSkeletonDienstanbieter-ImplementierungEingehende Anfragenachricht (SOME/IP)Nutzdaten deserialisierenvirtual <Method>(inArgs)Geschäftslogik ausführenara::core::Future<<Method>Output>Antwortnachricht bereitstellen

Sequenzdiagramm: Ablauf eines Methodenaufrufs über das Skeleton. Quellen: [SWS_CM_00191], [SWS_CM_10306], SWS CommunicationManagement §8.1 „Method invocation“.

Fehlerszenarien

Sowohl Request-Response-Methoden als auch Fire-and-Forget-Methoden sind auf Schnittstellenebene mit noexcept annotiert und als ausnahmesicher deklariert ([SWS_CM_00191], [SWS_CM_90434]). Fehler bei der Bearbeitung regulärer Methodenaufrufe werden nicht über C++-Ausnahmen übermittelt; stattdessen transportiert das zurückgegebene ara::core::Future im Fehlerfall einen entsprechenden Fehlercode vom Typ ara::com::ComErrc oder einen ApApplicationError [SWS_CM_00191]. Für Fire-and-Forget-Methoden sind spezifikationsgemäß weder Rückgabewerte noch standardisierte Fehlercodes vorgesehen [SWS_CM_90434].

Dieser Leitfaden wurde durch einen KI-Assistenten auf Basis der AUTOSAR-Spezifikation generiert.

UML-Klassendiagramm

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

G n__hierarchical_namespace_list_lower_skeleton____skeleton_____service_i379 { <service-interface-name>}Skeleton + <FnFMethod>() + <Method>()

Methoden

<FnFMethod> function

Provision of a fire-and-forget method (ClientServerOperation. fireAndForget ==TRUE)

virtual void {<fnfmethod-name>} ({<fnfmethod-in-arg-derived-type-0to N>} {<fnfmethod-in-arg-symbol-0toN>}) noexcept=0;
<Method> function

Provision of a method (ClientServerOperation. fireAndForget ==FALSE)

virtual ara::core::Future< {<method-name>}Output > {<method-name>} ( {<method-in-arg-derived-type-0toN>} {<method-in-arg-symbol-0toN>}) noexcept=0;

Dokumentation der Methoden

function <FnFMethod> [SWS_CM_90434] Upstream: RS_CM_00215, RS_AP_00114

virtual void {<fnfmethod-name>} ({<fnfmethod-in-arg-derived-type-0to N>} {<fnfmethod-in-arg-symbol-0toN>}) noexcept=0;

Provision of a fire-and-forget method (ClientServerOperation. fireAndForget ==TRUE)

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 93c9c81c8712 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die API-Funktion [SWS_CM_90434] definiert die rein virtuelle Schnittstelle einer Fire-and-Forget-Methode auf Serverseite. Sie ist Bestandteil der generierten Skeleton-Klasse {<hierarchical-namespace-list-lower-skeleton>}::skeleton::{<service-interface-name>}Skeleton und wird über die Header-Datei {<si-namespace-derived-directory-path-lower>}/{<si-shortname-lower>}_skeleton.h bereitgestellt (AUTOSAR_AP_SWS_CommunicationManagement §8.4.5.2.4.1 „{<fnfmethod-name>}“). Die Funktion wird generiert, sobald im Entwurfsmodell für eine ClientServerOperation das Attribut ClientServerOperation.fireAndForget == TRUE konfiguriert ist.

Für die Implementierung und das Laufzeitverhalten gelten folgende wesentliche Aspekte:

  • Aufrufsemantik und Parameter: Die Methode nimmt Eingabeparameter analog zu regulären Methoden gemäß [SWS_CM_00191] entgegen. Da es sich um eine reine Einweg-Kommunikation handelt, besitzt die Signatur den Rückgabetyp void. Es werden weder Ausgabeparameter noch Rückgabewerte an den aufrufenden Client übermittelt.
  • Fehlerbehandlung und Exception-Sicherheit: Die Operation ist als noexcept=0 deklariert und damit als strikt ausnahmesicher (exception safe) spezifiziert ([SWS_CM_90434]). Es existieren weder anwendungsspezifische Fehlercodes noch sonstige Rückmeldekanäle; die Service-Implementierung darf keine C++-Exceptions aus der Methode entweichen lassen.
  • Ausführungskontext und Nebenläufigkeit: Wird das Skeleton im Modus ara::com::MethodCallProcessingMode == kPoll betrieben, erfolgt die Abarbeitung anstehender Aufrufe von [SWS_CM_90434] deterministisch im Thread-Kontext des Aufrufs von ProcessNextMethodCall() (AUTOSAR_AP_SWS_CommunicationManagement S. 410). Außerhalb des Polling-Modus dürfte die Ausführung vermutlich nebenläufig in einem internen Worker-Thread der Kommunikations-Middleware stattfinden. Frage Q-08f014e191f9aab0 (offen)

Dieser Verwendungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR R25-11 generiert.

Implementer's Guide folgt (Komplexität I1)

Header-Datei#include "{<si-namespace-derived-directory-path-lower>}/{ <si-shortname-lower>}_skeleton.h"
Scopeclass {<hierarchical-namespace-list-lower-skeleton>}::skeleton::{ <service-interface-name>}Skeleton
Exception-Sicherheitexception safe

Parameter (in)

ParameterBeschreibung
{<fnfmethod-in-arg-symbol-0toN>}As per {<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_90434
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CM_90434@rel:R25-11#293042c2
Content hash
293042c2
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_CommunicationManagement.pdf#nameddest=SWS_CM_90434
Status: valid/unmigrated Version: rel:R25-11#f1dee805 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_90434@rel:R25-11#f1dee805
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#293042c22026-09-30
  • R19-11rel:R19-11#bbdaa18c2026-10-14
  • R20-11rel:R20-11#e392aff42026-10-14
  • R21-11rel:R21-11#e392aff42026-10-14
  • R22-11rel:R22-11#256b25262026-10-14
  • R23-11rel:R23-11#256b25262026-10-14
  • R24-11rel:R24-11#60298f242026-10-14
  • R25-11rel:R25-11#f1dee8052026-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 <Method> [SWS_CM_00191] Upstream: RS_CM_00211, RS_AP_00114, RS_AP_00127, RS_AP_00128, RS_AP_00138

virtual ara::core::Future< {<method-name>}Output > {<method-name>} ( {<method-in-arg-derived-type-0toN>} {<method-in-arg-symbol-0toN>}) noexcept=0;

Provision of a method (ClientServerOperation. fireAndForget ==FALSE)

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: fe8609b23651 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die rein virtuelle Funktion <Method> dient der anbieterseitigen Bereitstellung einer Methode innerhalb einer Skeleton-Klasse für Client-Server-Operationen ohne Fire-and-Forget-Semantik [SWS_CM_00191]. Anwendungsentwickler implementieren diese Schnittstelle in der vom Service-Interface abgeleiteten Skeleton-Klasse, um eingehende Aufrufe entgegenzunehmen. Als Eingabeparameter werden alle modellierten Argumente übergeben, deren Richtung als in oder inout definiert ist [SWS_CM_00191].

Die Ausführung erfolgt asynchron über den Rückgabetyp ara::core::Future, welcher im Erfolgsfall das typisierte Output-Objekt mit den Ergebniswerten enthält [SWS_CM_00191], [SWS_CM_99556]. Die Methode ist als noexcept und ausnahmesicher spezifiziert; standardisierte synchrone Fehlercodes sind nicht vorgegeben [SWS_CM_00191]. Tritt bei der Bearbeitung ein Fehler auf, stellt die Implementierung diesen asynchron über das ara::core::Future bereit, entweder als Fehlercode vom Typ ara::com::ComErrc oder als modellspezifischer ApApplicationError [SWS_CM_00191].

Der Aufrufkontext und das Nebenläufigkeitsverhalten hängen vom Verarbeitungsmodus ara::com::MethodCallProcessingMode ab, der bei der Instanziierung an den Konstruktor von ServiceSkeleton übergeben wird [SWS_CM_00130]:

  • Wurde kEvent oder kEventSingleThread konfiguriert, wird die Methode ereignisgesteuert durch die Middleware aufgerufen, sobald eine entsprechende SOME/IP-Anforderungsnachricht empfangen und deserialisiert wurde [SWS_CM_10306].
  • Im Modus kPoll erfolgt der Aufruf hingegen synchronisiert im Thread der Dienstanwendung, wenn diese explizit ProcessNextMethodCall() an der Skeleton-Instanz ausführt [SWS_CM_10307], [SWS_CM_00199].

Dieser Text wurde von einer KI erstellt und basiert ausschließlich auf den Spezifikationsdaten von AUTOSAR R25-11.

Implementer's Guide folgt (Komplexität I2)

Header-Datei#include "{<si-namespace-derived-directory-path-lower>}/{ <si-shortname-lower>}_skeleton.h"
Scopeclass {<hierarchical-namespace-list-lower-skeleton>}::skeleton::{ <service-interface-name>}Skeleton
Exception-Sicherheitexception safe

Parameter (in)

ParameterBeschreibung
{<method-in-arg-symbol-0toN>}The symbol name of method argument[0..N] in the ordered list of method arguments, with ClientServerOperation. direction == in or direction == inout given by ClientServerOperation. ArgumentDataPrototype[0..N]. shortName

Rückgabewert

TypBeschreibung
ara::core::Future< {<method-name> }Output >• If successful: an ara::core::Future containing an Output object as per [SWS_CM_99556] • If unsuccessful: an ara::core::Future containing a corresponding ara::com::ComErrc or ApApplicationError.

Fehler

FehlercodeBeschreibung
This function does not specify any standardized errors.

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

Record
AUTOSAR/AP/record/SWS_CM_00191
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CM_00191@rel:R25-11#b57cf7ff
Content hash
b57cf7ff
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_CommunicationManagement.pdf#nameddest=SWS_CM_00191
Status: valid/unmigrated Version: rel:R25-11#c5e59178 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_00191@rel:R25-11#c5e59178
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#b57cf7ff2026-09-30
  • R19-11rel:R19-11#ef1fdf6b2026-10-14
  • R20-11rel:R20-11#0d8e3ab22026-10-14
  • R21-11rel:R21-11#e5b231ad2026-10-14
  • R22-11rel:R22-11#b1ef31032026-10-14
  • R23-11rel:R23-11#071cc7ef2026-10-14
  • R24-11rel:R24-11#95a8f1ee2026-10-14
  • R25-11rel:R25-11#c5e591782026-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