Service proxy method class, one for each ClientServerOperation ( ClientServerOperation.fireAndForget ==FALSE) defined in the ServiceInterface in the role method.
Permite la llamada asíncrona a métodos de servicio con valor de retorno, así como la verificación del estado End-to-End.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 90f1e995b658ProcedenciaPreguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Permite la llamada asíncrona a métodos de servicio con valor de retorno, así como la verificación del estado End-to-End.
La clase de método proxy <SI-Namespace>::proxy::methods::<Method> permite a las aplicaciones cliente realizar llamadas a métodos con valor de retorno para operaciones cliente-servidor definidas en ServiceInterface[SWS_CM_00196]. La llamada se realiza de manera no bloqueante a través de operator(), que devuelve inmediatamente un ara::core::Future para la consulta flexible, sincrónica o asincrónica, del resultado [SWS_CM_00196]. De forma complementaria, GetE2EStateMachineState() permite leer el estado de protección de la máquina de estados End-to-End asociada [SWS_CM_00148]. Dado que las operaciones están especificadas como seguras frente a excepciones, los errores de transmisión y de tiempo de ejecución se notifican a través de Future con códigos de error estandarizados.
Contexto
La clase <SI-Namespace>::proxy::methods::<Method> representa la interfaz del lado cliente para llamadas a métodos sincrónicas y asincrónicas dentro de la gestión de la comunicación de AUTOSAR Adaptive. Para cada operación cliente-servidor declarada en ServiceInterface en la que esté configurado el atributo ClientServerOperation.fireAndForget == FALSE, el marco de comunicación genera exactamente una clase de método proxy propia en el rol de un método. La clase está declarada como final e incluida a través del encabezado #include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_proxy.h"SWS Communication Management, p. 39. Como interlocutores de interacción directos actúan la aplicación cliente llamadora y el Network Binding, el cual reenvía la transmisión del método a la instancia de servicio remota y recibe su respuesta [SWS_CM_00196]. El método proxy acepta los parámetros de llamada y encapsula el flujo asíncrono a través de un objeto ara::core::Future, mediante el cual el cliente consulta la finalización y el resultado de la llamada.
Ciclo de vida
La instanciación de <SI-Namespace>::proxy::methods::<Method> se produce junto con el proxy de servicio de nivel superior. Interpretación: se asume que la clase de método, como parte integrante del objeto proxy generado, se instancia y destruye junto con este, por lo que el usuario no asigna la instancia por separado. Pregunta Q-546c9b1bceedef6b (abierta) En cuanto a la concurrencia, la llamada al método a través de operator() está diseñada para no ser bloqueante; la función inicia la transmisión y regresa inmediatamente al llamador [SWS_CM_00196]. Un estado central de la instancia es la protección mediante mecanismos End-to-End (E2E). Mediante el método GetE2EStateMachineState(), la aplicación puede determinar el estado actual de la máquina de estados específica del método (ara::com::e2e::SMState) [SWS_CM_00148]. Este estado se determina mediante la función de comprobación interna E2E_Check(), que se ejecuta durante el procesamiento de la última llamada de operator()[SWS_CM_00148], SWS Communication Management, p. 55. Interpretación: se asume que la actualización de estado de la máquina de estados E2E surte efecto de forma asíncrona con la llegada y verificación del mensaje de respuesta. Pregunta Q-283a9927420e2952 (abierta)
Ruta de uso
La secuencia típica de llamadas incluye la iniciación de la llamada al método, la sincronización con el resultado y la posterior comprobación de integridad:
Activar llamada: la aplicación cliente invoca el objeto de función a través de operator() con los parámetros de entrada declarados [SWS_CM_00196], [SWS_CM_00191].
Retorno inmediato: la llamada no bloquea el hilo solicitante, sino que devuelve inmediatamente un objeto de tipo ara::core::Future<Output>[SWS_CM_00196].
Consulta del resultado: el llamador decide de forma autónoma entre la espera sincrónica (p. ej., a través del objeto Future) o la supervisión asincrónica de la finalización de la llamada [SWS_CM_00196]. En caso de finalización satisfactoria, Future proporciona el objeto Output con los valores de respuesta [SWS_CM_00196], [SWS_CM_99333].
Comprobar estado de protección E2E: una vez finalizada la llamada, la aplicación puede consultar el estado de la máquina de estados E2E a través de GetE2EStateMachineState() para garantizar la validez de la transmisión de datos [SWS_CM_00148].
Diagrama de secuencia: flujo típico de una llamada a método con retorno asíncrono a través de Future y posterior consulta de estado E2E. Fuentes: [SWS_CM_00196], [SWS_CM_00148].
Escenarios de error
Las operaciones operator() y GetE2EStateMachineState() están especificadas como seguras frente a excepciones (exception safe) y declaradas con noexcept[SWS_CM_00148], [SWS_CM_00196]. Por lo tanto, los errores de comunicación y de provisión no se notifican a través de excepciones C++, sino que se transportan a través del objeto ara::core::Future resultante, que en caso de error encapsula un correspondiente ara::core::FutureErrc o códigos de error [SWS_CM_00196]. Entre las causas de error especificadas se incluyen:
CommunicationFailure: el Network Binding notifica un error de comunicación recuperable o el fallo de una conexión protegida; en caso de tiempos de espera agotados de comunicación, esto puede provocar un estado incierto en el servidor remoto [SWS_CM_00196].
ComErrc::kServiceNotAvailable: la instancia de servicio ya no es accesible tras haber estado disponible previamente [SWS_CM_00196].
ComErrc::kUnknownApplicationError: un servicio remoto notifica un error de aplicación no configurado [SWS_CM_00196].
ComE2EErrc::kUnspecifiedE2EError: el servicio remoto notifica un error End-to-End no especificado [SWS_CM_00196].
ComErrc::kMinimumSendIntervalViolationError: la solicitud de llamada se realizó más rápido de lo que permite el intervalo de transmisión mínimo configurado para el elemento de interfaz minimumSendInterval[SWS_CM_00196].
Infracción de permisos (InsufficientPermissionsViolation): si el llamador carece de los permisos necesarios, la Grant Enforcement deniega la ejecución [SWS_CM_00196].
Para estos errores de aplicación y de comunicación, según la especificación, se han definido semánticas de reversión (rollback_semantics) [SWS_CM_00196].
Esta guía se basa exclusivamente en las disposiciones de la especificación de 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 · Original en alemán