Service proxy method class, one for each ClientServerOperation ( ClientServerOperation.fireAndForget ==FALSE) defined in the ServiceInterface in the role method.
Enables the asynchronous invocation of service methods with return value and the verification of the end-to-end status.
AI-GENERATEDunreviewedModel: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 90f1e995b658ProvenanceOpen questions (2)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original
Enables the asynchronous invocation of service methods with return value and the verification of the end-to-end status.
The proxy method class <SI-Namespace>::proxy::methods::<Method> enables client applications to perform method invocations with return value for client-server operations defined in ServiceInterface[SWS_CM_00196]. The invocation is performed non-blocking via operator(), which immediately returns a ara::core::Future for flexible synchronous or asynchronous result querying [SWS_CM_00196]. In addition, GetE2EStateMachineState() allows reading the protection status of the associated end-to-end state machine [SWS_CM_00148]. Because the operations are specified as exception-safe, transmission and runtime errors are reported via the Future with standardized error codes.
Context
Class <SI-Namespace>::proxy::methods::<Method> represents the client-side interface for synchronous and asynchronous method invocations within AUTOSAR Adaptive Communication Management. For each client-server operation declared in ServiceInterface for which the attribute ClientServerOperation.fireAndForget == FALSE is configured, the communication framework generates exactly one dedicated proxy method class in the role of a method. The class is declared as final and included via header #include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_proxy.h"SWS Communication Management, p. 39. The invoking client application and the network binding, which forwards the method transmission to the remote service instance and receives its response, act as direct interaction partners [SWS_CM_00196]. The proxy method accepts the invocation parameters and encapsulates the asynchronous sequence via a ara::core::Future object, through which the client queries the completion and result of the call.
Lifecycle
Instantiation of <SI-Namespace>::proxy::methods::<Method> occurs jointly with the parent service proxy. Interpretation: The method class is likely instantiated and destroyed together with the generated proxy object as an integral part of it, which is why the user does not allocate the instance separately. Question Q-546c9b1bceedef6b (open) Regarding concurrency, the method call via operator() is designed to be non-blocking; the function initiates transmission and immediately returns to the caller [SWS_CM_00196]. A central state of the instance is protection by end-to-end mechanisms (E2E). Via method GetE2EStateMachineState(), the application can determine the current status of the method-specific state machine (ara::com::e2e::SMState) [SWS_CM_00148]. This state is determined by the internal check function E2E_Check(), which is executed during the processing of the last call to operator()[SWS_CM_00148], SWS Communication Management, p. 55. Interpretation: The state update of the E2E state machine is likely to take effect asynchronously with the arrival and checking of the response message. Question Q-283a9927420e2952 (open)
Usage Path
The typical call sequence comprises initiating the method call, synchronizing on the result, and subsequently verifying integrity:
Trigger call: The client application invokes the function object via operator() with the declared input parameters [SWS_CM_00196], [SWS_CM_00191].
Immediate return: The call does not block the requesting thread, but returns an object of type ara::core::Future<Output> immediately [SWS_CM_00196].
Result query: The caller decides autonomously between synchronous waiting (e.g. via the Future object) or asynchronous monitoring for completion of the call [SWS_CM_00196]. Upon successful completion, the Future provides the Output object with the response values [SWS_CM_00196], [SWS_CM_99333].
Check E2E protection status: After completion of the call, the application can query the state of the E2E state machine via GetE2EStateMachineState() to ensure the validity of the data transmission [SWS_CM_00148].
Sequence diagram: Typical sequence of a method call with asynchronous return via future and subsequent E2E status query. Sources: [SWS_CM_00196], [SWS_CM_00148].
Error Scenarios
The operations operator() and GetE2EStateMachineState() are specified as exception-safe (exception safe) and declared with noexcept[SWS_CM_00148], [SWS_CM_00196]. Communication and provision errors are therefore not reported via C++ exceptions, but transported via the resulting ara::core::Future object, which encapsulates a corresponding ara::core::FutureErrc or error codes in the event of an error [SWS_CM_00196]. Specified error causes include:
CommunicationFailure: The network binding reports a recoverable communication error or the failure of a secured connection; in the event of communication timeouts, this may lead to an uncertain state on the remote server [SWS_CM_00196].
ComErrc::kServiceNotAvailable: The service instance is no longer reachable after previous provision [SWS_CM_00196].
ComErrc::kUnknownApplicationError: A remote service reports an unconfigured application error [SWS_CM_00196].
ComE2EErrc::kUnspecifiedE2EError: The remote service reports an unspecified end-to-end error [SWS_CM_00196].
ComErrc::kMinimumSendIntervalViolationError: The call request occurred faster than permitted by the minimum send interval configured for the interface element minimumSendInterval[SWS_CM_00196].
Permission violation (InsufficientPermissionsViolation): If the caller lacks required permissions, execution is rejected by grant enforcement [SWS_CM_00196].
According to the specification, rollback semantics (rollback_semantics) are defined for these application and communication errors [SWS_CM_00196].
This guide is based exclusively on the specification requirements of 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 · German original