Service proxy method class, one for each ClientServerOperation ( ClientServerOperation.fireAndForget ==FALSE) defined in the ServiceInterface in the role method.
Maakt de asynchrone aanroep van servicemethoden met retourwaarde mogelijk, evenals de controle van de end-to-end-status.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 90f1e995b658HerkomstOpen vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Maakt de asynchrone aanroep van servicemethoden met retourwaarde mogelijk, evenals de controle van de end-to-end-status.
De proxy-methodeklasse <SI-Namespace>::proxy::methods::<Method> stelt clientapplicaties in staat om methode-aanroepen met retourwaarde uit te voeren voor client-serverbewerkingen die in ServiceInterface zijn gedefinieerd [SWS_CM_00196]. De aanroep vindt niet-blokkerend plaats via operator(), die onmiddellijk een ara::core::Future retourneert voor flexibele synchrone of asynchrone resultaatopvraging [SWS_CM_00196]. Daarnaast maakt GetE2EStateMachineState() het uitlezen van de beveiligingsstatus van de bijbehorende end-to-end-toestandsmachine mogelijk [SWS_CM_00148]. Aangezien de operaties als uitzonderingsveilig zijn gespecificeerd, worden overdrachts- en runtimefouten via de Future gemeld met gestandaardiseerde foutcodes.
Context
De klasse <SI-Namespace>::proxy::methods::<Method> vormt de clientzijde-interface voor synchrone en asynchrone methode-aanroepen binnen AUTOSAR Adaptive Communication Management. Voor elke in ServiceInterface gedeclareerde client-serverbewerking waarbij het attribuut ClientServerOperation.fireAndForget == FALSE is geconfigureerd, genereert het communicatieframework precies één eigen proxy-methodeklasse in de rol van een methode. De klasse is gedeclareerd als final en ingebonden via de header #include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_proxy.h"SWS Communication Management, p. 39. Als directe interactiepartners fungeren de aanroepende clientapplicatie en de network binding, die de methodeoverdracht doorstuurt naar de externe service-instantie en de respons daarvan in ontvangst neemt [SWS_CM_00196]. De proxy-methode neemt de aanroepparameters in ontvangst en kapselt het asynchrone verloop in via een ara::core::Future-object, waarmee de client de voltooiing en het resultaat van de aanroep opvraagt.
Levenscyclus
De instantiëring van <SI-Namespace>::proxy::methods::<Method> vindt plaats in samenhang met de bovenliggende serviceproxy. Interpretatie: de methodeklasse wordt vermoedelijk als vast onderdeel van het gegenereerde proxy-object samen daarmee geïnstantieerd en vernietigd, waardoor de gebruiker de instantie niet afzonderlijk alloceert. Vraag Q-546c9b1bceedef6b (open) Wat betreft concurrency is de methode-aanroep via operator() niet-blokkerend ontworpen; de functie initieert de overdracht en keert onmiddellijk terug naar de aanroeper [SWS_CM_00196]. Een centrale toestand van de instantie is de beveiliging door end-to-end-mechanismen (E2E). Via de methode GetE2EStateMachineState() kan de applicatie de actuele status van de methodespecifieke toestandsmachine (ara::com::e2e::SMState) bepalen [SWS_CM_00148]. Deze toestand wordt bepaald door de interne controlefunctie E2E_Check(), die wordt uitgevoerd tijdens de verwerking van de laatste aanroep van operator()[SWS_CM_00148], SWS Communication Management, p. 55. Interpretatie: de statusactualisering van de E2E-toestandsmachine wordt vermoedelijk asynchroon van kracht bij de ontvangst en verificatie van het antwoordbericht. Vraag Q-283a9927420e2952 (open)
Gebruikspad
De typische aanroepvolgorde omvat de initiatie van de methode-aanroep, de synchronisatie op het resultaat en de aansluitende integriteitscontrole:
Aanroep activeren: de clientapplicatie roept het functie-object aan via operator() met de gedeclareerde invoerparameters [SWS_CM_00196], [SWS_CM_00191].
Onmiddellijke terugkeer: de aanroep blokkeert de verzoekende thread niet, maar retourneert onmiddellijk een object van het type ara::core::Future<Output>[SWS_CM_00196].
Resultaatopvraging: de aanroeper beslist autonoom over synchroon wachten (bijv. via het Future-object) of asynchrone bewaking van de voltooiing van de aanroep [SWS_CM_00196]. Bij succesvolle afronding levert de Future het Output-object met de antwoordwaarden [SWS_CM_00196], [SWS_CM_99333].
E2E-beveiligingsstatus controleren: na beëindiging van de aanroep kan de applicatie via GetE2EStateMachineState() de toestand van de E2E-toestandsmachine opvragen om de geldigheid van de gegevensoverdracht te waarborgen [SWS_CM_00148].
Sequentiediagram: typisch verloop van een methode-aanroep met asynchrone teruggave via Future en daaropvolgende E2E-statusopvraag. Bronnen: [SWS_CM_00196], [SWS_CM_00148].
Foutscenario's
De bewerkingen operator() en GetE2EStateMachineState() zijn gespecificeerd als uitzonderingsveilig (exception safe) en gedeclareerd met noexcept[SWS_CM_00148], [SWS_CM_00196]. Communicatie- en implementatiefouten worden daarom niet via C++-exceptions gemeld, maar getransporteerd via het resulterende ara::core::Future-object, dat in geval van een fout een corresponderende ara::core::FutureErrc respectievelijk foutcodes inkapselt [SWS_CM_00196]. Gespecificeerde foutoorzaken zijn onder andere:
CommunicationFailure: De network binding meldt een herstelbare communicatiefout of het mislukken van een beveiligde verbinding; bij communicatietime-outs kan dit leiden tot een onzekere toestand op de externe server [SWS_CM_00196].
ComErrc::kServiceNotAvailable: De service-instantie is na eerdere beschikbaarstelling niet meer bereikbaar [SWS_CM_00196].
ComErrc::kUnknownApplicationError: Een externe service meldt een niet-geconfigureerde applicatiefout [SWS_CM_00196].
ComE2EErrc::kUnspecifiedE2EError: De remote service meldt een niet-gespecificeerde end-to-end-fout [SWS_CM_00196].
ComErrc::kMinimumSendIntervalViolationError: Het aanroepverzoek vond sneller plaats dan het voor het interface-element geconfigureerde minimale verzendinterval minimumSendInterval toestaat [SWS_CM_00196].
Machtigingsschending (InsufficientPermissionsViolation): ontbreken bij de aanroeper de vereiste machtigingen, dan wordt de uitvoering geweigerd door de grant enforcement [SWS_CM_00196].
Voor deze applicatie- en communicatiefouten zijn volgens de specificatie rollback-semantieken (rollback_semantics) vastgelegd [SWS_CM_00196].
Deze handleiding is uitsluitend gebaseerd op de specificatierichtlijnen van AUTOSAR Adaptive Release R25-11.
Returns the state of the specific method class, which was determined by the last run of E2E_Check() function invoked during the last call of operator()
Initiate a method call (ClientServerOperation. fireAndForget ==FALSE). The method call will return immediately. The caller’s selection of a synchronous or asynchronous behavior to get the method output is achieved by the use of the returned ara::core::Future object which is used to query for method completion and result including possible error.
Returns the state of the specific method class, which was determined by the last run of E2E_Check() function invoked during the last call of operator()
Initiate a method call (ClientServerOperation. fireAndForget ==FALSE). The method call will return immediately. The caller’s selection of a synchronous or asynchronous behavior to get the method output is achieved by the use of the returned ara::core::Future object which is used to query for method completion and result including possible error.
The network binding reported a recoverable communications error or a secure communication failure. In case of a communication timeout this could lead to an uncertain state on the remote server side.
ComErrc::kUnknownApplicationError
rollback_semantics A remote service returned an unconfigured application error.
ComErrc::kServiceNotAvailable
rollback_semantics Service is not available after being previously offered via Offer Service()
ComE2EErrc::kUnspecifiedE2EError
rollback_semantics A remote service returned an unspecified E2E error.
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.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel