struct <SI-Namespace>::proxy::methods::<Method>::Output
struct Output {...};
Structure wrapping the out arguments for a method
| Header-Datei | #include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_proxy.h" |
|---|---|
| Forwarding-Header | #include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_proxy/<SiShortname>_proxy_fwd.h" |
| Scope | class <SI-Namespace>::proxy::methods::<Method> |
User GuideKI-GENERIERT
Kapselt als Datenstruktur die Ausgabeparameter einer asynchron aufgerufenen Dienstmethode für den empfangenden Proxy.
Kapselt als Datenstruktur die Ausgabeparameter einer asynchron aufgerufenen Dienstmethode für den empfangenden Proxy.
Die Struktur <SI-Namespace>::proxy::methods::<Method>::Output kapselt die Ausgabeargumente einer Proxy-Dienstmethode der AUTOSAR Adaptive Platform ([SWS_CM_99333]). Der Aufrufer erhält die Struktur im Erfolgsfall über ein zurückgegebenes ara::core::Future nach dessen Auflösung via get() oder GetResult() (AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 „Struct: Output“). Treten während der Bearbeitung Fehler auf, wird kein Output-Objekt erzeugt, sondern stattdessen ein Fehlercode über den Future-Kontext bereitgestellt. Durch Zerstörung des Future-Objekts kann der Client einen laufenden Methodenaufruf vorzeitig abbrechen.
Kontext
Die Struktur <SI-Namespace>::proxy::methods::<Method>::Output dient im Kommunikationsmanagement (com) der AUTOSAR Adaptive Platform als strukturierte Kapselung für die Ausgabeargumente einer Dienstmethode ([SWS_CM_99333]). Auf der Seite des Dienstkonsumenten (Proxy) wird diese Klasse typisiert generiert, um die vom Dienstanbieter ermittelten und über die Middleware übertragenen Ergebniswerte gebündelt an die Client-Anwendung zu übergeben. Auf Seiten des Dienstanbieters (Skeleton) existiert eine korrespondierende Datenstruktur zur Bereitstellung der Methodenrückgabe ([SWS_CM_99556]). Wesentliche Interaktionspartner sind die aufrufende Client-Anwendung, die Proxy-Methodeninstanz sowie das von der Aufrufschnittstelle zurückgegebene ara::core::Future, das im Erfolgsfall das Output-Objekt transportiert (AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 „Struct: Output“).
Lebenszyklus
Der Lebenszyklus einer Instanz von Output ist direkt in das asynchrone Kommunikationsmuster der Adaptive Platform eingebettet. Bei Ausführung eines Methodenaufrufs am Proxy erzeugt die Laufzeitumgebung ein ara::core::Future, welches als Container für das spätere Output-Objekt dient (AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 „Struct: Output“). Die eigentlichen Ergebnisdaten werden auf der Anbieterseite erzeugt: Nach Abschluss der Verarbeitung – entweder synchron im Rumpf der Dienstmethode oder asynchron in einem separaten Thread – werden die Ausgabeparameter in der Ausgabestruktur abgelegt und über ein Promise an das zugehörige Future übergeben (ARAComAPI §6.19 „Returning Future with already set result“).
Sobald das Ergebnis bereitsteht, extrahiert der Client die Output-Instanz über get() oder GetResult(). Dabei geht das Objekt in den Besitz des Aufrufers über; die weitere Lebensdauer obliegt ab diesem Zeitpunkt vermutlich dem aufrufenden Anwendungscode. Frage Q-27f51b3c9fb838ed (offen) Eine relevante Randbedingung für den Lebenszyklus betrifft den vorzeitigen Abbruch: Der Destruktor des zurückgegebenen ara::core::Future-Objekts dient dem Aufrufer dazu, die Anfrage nach dem Absetzen abzubrechen ([SWS_CM_00194]). Wird das Future vorzeitig zerstört, führt dies zum Abbruch des Aufrufs, sodass keine Auslieferung der Output-Struktur stattfindet.
Nutzungspfad
Der typische Ablauf zur Entgegennahme der Methodenausgabeparameter umfasst folgende Schritte:
- Aufruf auslösen: Der Client ruft die Dienstmethode am Proxy auf und erhält unmittelbar ein
ara::core::Future<Output>(AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 „Struct: Output“). - Ergebnis abfragen: Der Client synchronisiert sich auf das Ergebnis oder ruft direkt
get()bzw.GetResult()auf. Wurde das Ergebnis bereits serverseitig amPromisegesetzt, blockiert der Aufruf nicht, sondern liefert sofort dieOutput-Struktur zurück (ARAComAPI §6.19 „Returning Future with already set result“). - Werte verarbeiten: Der Client liest die Ausgabewerte aus der empfangenen Struktur aus. Interpretation: Die Struktur
Outputdürfte alle definierten Out- und Inout-Argumente der Methode als frei zugängliche Member bereitstellen. Frage Q-3a292028627f3c64 (offen)
Sequenzdiagramm: Aufruf einer Proxy-Methode und Übernahme der Output-Struktur über das Future. Quellen: [SWS_CM_99333], AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 „Struct: Output“, ARAComAPI §6.19 „Returning Future with already set result“.
Fehlerszenarien
Tritt bei der Verarbeitung der Methode ein Fehler auf, wird kein reguläres Output-Objekt zurückgeliefert. Das Kommunikationsmanagement handhabt dies über spezifische Fehlermechanismen:
- Geprüfte Anwendungsfehler (Checked Errors): Tritt während der Bearbeitung des Methodenaufrufs ein definierter Fehler auf, wird der entsprechende
ara::core::ErrorCodeim Kontext desget()- bzw.GetResult()-Aufrufs geliefert ([SWS_CM_10371]). - Infrastruktur- und Übertragungsfehler: Schlägt der Aufruf fehl, enthält das
ara::core::Futureeinen entsprechenden Fehlercode wieara::core::FutureErrc(AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 „Struct: Output“) bzw. anbieterseitigara::com::ComErrc(AUTOSAR_AP_SWS_CommunicationManagement §8.4 „Methods“). - Fire-and-Forget-Methoden: Für Methoden ohne Rückgabewerte (Fire and Forget) werden keine geprüften Fehler zurückgemeldet ([SWS_CM_90436]); für solche Methoden existiert keine
Output-Struktur. - Aufrufabort: Das Zerstören des
Future-Objekts bricht die laufende Anfrage ab und verhindert das Bereitstellen einesOutput-Ergebnisses ([SWS_CM_00194]).
Dieser Leitfaden basiert ausschließlich auf den Spezifikationen des Adaptive-Release R25-11.
gemini-3.8-flash-medium· 2026-10-13