Service proxy method class, one for each ClientServerOperation ( ClientServerOperation.fireAndForget ==FALSE) defined in the ServiceInterface in the role method.
반환값이 있는 서비스 메서드의 비동기 호출 및 종단 간(End-to-End) 상태 확인을 가능하게 합니다.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 90f1e995b658출처열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
반환값이 있는 서비스 메서드의 비동기 호출 및 종단 간(End-to-End) 상태 확인을 가능하게 합니다.
프록시 메서드 클래스 <SI-Namespace>::proxy::methods::<Method>은(는) 클라이언트 애플리케이션이 ServiceInterface에 정의된 클라이언트-서버 연산에 대해 반환값이 있는 메서드 호출을 수행할 수 있도록 지원합니다 [SWS_CM_00196]. 호출은 operator()을(를) 통해 비차단(non-blocking) 방식으로 이루어지며, 이는 유연한 동기식 또는 비동기식 결과 조회를 위한 ara::core::Future을(를) 즉시 반환합니다 [SWS_CM_00196]. 또한 GetE2EStateMachineState()을(를) 사용하면 연결된 End-to-End 상태 머신의 보호 상태를 판독할 수 있습니다 [SWS_CM_00148]. 연산이 예외 안전성을 갖도록 지정되어 있으므로, 전송 및 런타임 오류는 표준화된 오류 코드가 포함된 Future을(를) 통해 보고됩니다.
컨텍스트
클래스 <SI-Namespace>::proxy::methods::<Method>은(는) AUTOSAR Adaptive 통신 관리 내에서 동기 및 비동기 메서드 호출을 위한 클라이언트 측 인터페이스를 나타냅니다. ServiceInterface에 선언되고 ClientServerOperation.fireAndForget == FALSE 속성이 구성된 각 클라이언트-서버 연산에 대해 통신 프레임워크는 메서드 역할의 자체 프록시 메서드 클래스를 정확히 하나씩 생성합니다. 이 클래스는 final(으)로 선언되며 헤더 #include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_proxy.h"을(를) 통해 포함됩니다 SWS Communication Management, 39쪽. 직접적인 상호작용 파트너로는 호출하는 클라이언트 애플리케이션과 메서드 전송을 원격 서비스 인스턴스로 전달하고 그 피드백을 수신하는 Network Binding이 있습니다 [SWS_CM_00196]. 프록시 메서드는 호출 매개변수를 수신하고 비동기 프로세스를 ara::core::Future 객체를 통해 캡슐화하며, 클라이언트는 이를 통해 호출의 완료 및 결과를 조회합니다.
수명 주기
<SI-Namespace>::proxy::methods::<Method>의 인스턴스화는 상위 서비스 프록시와 연계하여 수행됩니다. 해석: 메서드 클래스는 생성된 프록시 객체의 고정된 구성 요소로서 프록시 객체와 함께 인스턴스화 및 소멸될 것으로 보이므로, 사용자가 인스턴스를 별도로 할당하지 않습니다. 동시성과 관련하여 operator()을(를) 통한 메서드 호출은 비차단(non-blocking) 방식으로 설계되었습니다. 이 함수는 전송을 시작하고 즉시 호출자에게 반환됩니다 [SWS_CM_00196]. 인스턴스의 핵심 상태는 End-to-End 메커니즘(E2E)을 통한 보호입니다. 애플리케이션은 메서드 GetE2EStateMachineState()을(를) 통해 메서드별 상태 머신(ara::com::e2e::SMState)의 현재 상태를 확인할 수 있습니다 [SWS_CM_00148]. 이 상태는 operator()의 마지막 호출 처리 중에 실행되는 내부 검사 함수 E2E_Check()에 의해 결정됩니다 [SWS_CM_00148], SWS Communication Management, 55쪽. 해석: E2E 상태 머신의 상태 업데이트는 응답 메시지의 수신 및 검사와 함께 비동기적으로 유효해질 것으로 보입니다. 질문 Q-283a9927420e2952 (열림)질문 Q-546c9b1bceedef6b (열림)
사용 경로
일반적인 호출 순서는 메서드 호출 시작, 결과에 대한 동기화 및 후속 무결성 검사를 포함합니다:
즉시 반환: 이 호출은 요청 스레드를 차단하지 않고 ara::core::Future<Output> 타입의 객체를 즉시 반환합니다 [SWS_CM_00196].
결과 조회: 호출자는 동기식 대기(예: Future 객체를 통해) 또는 호출 완료에 대한 비동기식 모니터링을 자율적으로 결정합니다 [SWS_CM_00196]. 성공적으로 완료되면 Future은(는) 응답 값이 포함된 Output 객체를 제공합니다 [SWS_CM_00196], [SWS_CM_99333].
E2E 보호 상태 확인: 호출이 완료된 후 애플리케이션은 데이터 전송의 유효성을 보장하기 위해 GetE2EStateMachineState()을(를) 통해 E2E 상태 머신의 상태를 쿼리할 수 있습니다 [SWS_CM_00148].
연산 operator() 및 GetE2EStateMachineState()은(는) 예외 안전(exception safe)(으)로 지정되어 있으며 noexcept(으)로 선언되어 있습니다 [SWS_CM_00148], [SWS_CM_00196]. 따라서 통신 및 제공 오류는 C++ 예외를 통해 보고되지 않고 결과로 생성된 ara::core::Future 객체를 통해 전달되며, 이 객체는 오류 발생 시 해당 ara::core::FutureErrc 또는 오류 코드를 캡슐화합니다 [SWS_CM_00196]. 지정된 오류 원인에는 다음이 포함됩니다:
CommunicationFailure: Network Binding이 복구 가능한 통신 오류 또는 보안 연결 실패를 보고합니다. 통신 타임아웃의 경우 원격 서버에서 불확실한 상태로 이어질 수 있습니다 [SWS_CM_00196].
ComErrc::kServiceNotAvailable: 이전에 제공된 후 서비스 인스턴스에 더 이상 연결할 수 없습니다 [SWS_CM_00196].
ComErrc::kUnknownApplicationError: 원격 서비스가 구성되지 않은 애플리케이션 오류를 보고합니다 [SWS_CM_00196].
ComE2EErrc::kUnspecifiedE2EError: 원격 서비스가 지정되지 않은 End-to-End 오류를 보고합니다 [SWS_CM_00196].
ComErrc::kMinimumSendIntervalViolationError: 인터페이스 요소에 구성된 최소 전송 간격 minimumSendInterval이(가) 허용하는 것보다 호출 요청이 더 빠르게 발생했습니다 [SWS_CM_00196].
권한 위반(InsufficientPermissionsViolation): 호출자에게 필요한 권한이 없는 경우, Grant Enforcement에 의해 실행이 거부됩니다 [SWS_CM_00196].
이러한 애플리케이션 및 통신 오류에 대해 명세에 따라 롤백 시맨틱(rollback_semantics)이 정의되어 있습니다 [SWS_CM_00196].
이 가이드는 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 · 독일어 원문