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 GuideAI-GEGENEREERD
Kapselt als datastructuur de uitvoerparameters van een asynchroon aangeroepen servicemethode in voor de ontvangende proxy.
Kapselt als datastructuur de uitvoerparameters van een asynchroon aangeroepen servicemethode in voor de ontvangende proxy.
De structuur <SI-Namespace>::proxy::methods::<Method>::Output kapselt de uitvoerargumenten van een proxyservicemethode van het AUTOSAR Adaptive Platform ([SWS_CM_99333]) in. De aanroeper ontvangt de structuur bij succes via een geretourneerde ara::core::Future na de afhandeling ervan via get() of GetResult() (AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 “Struct: Output”). Als er tijdens de verwerking fouten optreden, wordt er geen Output-object gegenereerd, maar wordt in plaats daarvan een foutcode via de Future-context verstrekt. Door het Future-object te vernietigen, kan de client een lopende methodeaanroep voortijdig afbreken.
Context
De structuur <SI-Namespace>::proxy::methods::<Method>::Output dient binnen Communication Management (com) van het AUTOSAR Adaptive Platform als gestructureerde inkapseling voor de uitvoerargumenten van een servicemethode ([SWS_CM_99333]). Aan de zijde van de serviceconsument (proxy) wordt deze klasse getypeerd gegenereerd om de door de serviceprovider bepaalde en via de middleware overgedragen resultaatwaarden gebundeld aan de clienttoepassing over te dragen. Aan de zijde van de serviceprovider (skeleton) bestaat een corresponderende datastructuur voor het beschikbaar stellen van de methode-teruggave ([SWS_CM_99556]). Belangrijke interactiepartners zijn de aanroepende clienttoepassing, de proxy-methode-instantie en de door de aanroepinterface geretourneerde ara::core::Future, die bij succes het Output-object transporteert (AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 “Struct: Output”).
Levenscyclus
De levenscyclus van een instantie van Output is direct ingebed in het asynchrone communicatiepatroon van het Adaptive Platform. Bij het uitvoeren van een methodeaanroep op de proxy genereert de runtime-omgeving een ara::core::Future, die fungeert als container voor het latere Output-object (AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 “Struct: Output”). De eigenlijke resultaatgegevens worden aan de providerzijde gegenereerd: na voltooiing van de verwerking – hetzij synchroon in de body van de servicemethode of asynchroon in een afzonderlijke thread – worden de uitvoerparameters in de uitvoerstructuur geplaatst en via een Promise aan de bijbehorende Future overgedragen (ARAComAPI §6.19 “Returning Future with already set result”).
Zodra het resultaat beschikbaar is, extraheert de client de Output-instantie via get() of GetResult(). Daarbij gaat het object over in het bezit van de aanroeper; de verdere levensduur ligt vanaf dat moment vermoedelijk bij de aanroepende applicatiecode. Vraag Q-27f51b3c9fb838ed (open) Een relevante randvoorwaarde voor de levenscyclus betreft het voortijdig afbreken: de destructor van het geretourneerde ara::core::Future-object dient ertoe dat de aanroeper het verzoek na het verzenden kan afbreken ([SWS_CM_00194]). Als de Future voortijdig wordt vernietigd, leidt dit tot het afbreken van de aanroep, zodat er geen aflevering van de Output-structuur plaatsvindt.
Gebruikspad
Het typische verloop voor het in ontvangst nemen van de methode-uitvoerparameters omvat de volgende stappen:
- Aanroep initiëren: De client roept de servicemethode op de proxy aan en ontvangt onmiddellijk een
ara::core::Future<Output>(AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 “Struct: Output”). - Resultaat opvragen: De client synchroniseert op het resultaat of roept direct
get()resp.GetResult()aan. Als het resultaat al aan de serverzijde op dePromiseis ingesteld, blokkeert de aanroep niet, maar retourneert onmiddellijk deOutput-structuur (ARAComAPI §6.19 “Returning Future with already set result”). - Waarden verwerken: De client leest de uitvoerwaarden uit de ontvangen structuur uit. Interpretation: De structuur
Outputzal naar verwachting alle gedefinieerde out- en inout-argumenten van de methode als vrij toegankelijke members beschikbaar stellen. Vraag Q-3a292028627f3c64 (open)
Sequentiediagram: Aanroep van een proxymethode en overname van de outputstructuur via de Future. Bronnen: [SWS_CM_99333], AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 “Struct: Output”, ARAComAPI §6.19 “Returning Future with already set result”.
Foutscenario's
Als er bij de verwerking van de methode een fout optreedt, wordt er geen regulier Output-object geretourneerd. Communication Management handelt dit af via specifieke foutmechanismen:
- Gecontroleerde applicatiefouten (checked errors): Als er tijdens de verwerking van de methodeaanroep een gedefinieerde fout optreedt, wordt de bijbehorende
ara::core::ErrorCodegeleverd in de context van deget()- resp.GetResult()-aanroep ([SWS_CM_10371]). - Infrastructuur- en overdrachtsfouten: Als de aanroep mislukt, bevat de
ara::core::Futureeen bijbehorende foutcode zoalsara::core::FutureErrc(AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 “Struct: Output”) resp. aan de providerzijdeara::com::ComErrc(AUTOSAR_AP_SWS_CommunicationManagement §8.4 “Methods”). - Fire-and-forget-methoden: Voor methoden zonder retourwaarden (fire and forget) worden geen gecontroleerde fouten teruggemeld ([SWS_CM_90436]); voor dergelijke methoden bestaat er geen
Output-structuur. - Aanroepafbreking: Het vernietigen van het
Future-object breekt het lopende verzoek af en voorkomt het beschikbaar stellen van eenOutput-resultaat ([SWS_CM_00194]).
Deze handleiding is uitsluitend gebaseerd op de specificaties van de Adaptive-release R25-11.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel