구조체 <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> |
사용자 가이드AI 생성
수신 프록시를 위해 비동기식으로 호출된 서비스 메서드의 출력 매개변수를 데이터 구조로서 캡슐화합니다.
수신 프록시를 위해 비동기식으로 호출된 서비스 메서드의 출력 매개변수를 데이터 구조로서 캡슐화합니다.
구조체 <SI-Namespace>::proxy::methods::<Method>::Output은 AUTOSAR Adaptive Platform([SWS_CM_99333])의 프록시 서비스 메서드의 출력 인수를 캡슐화합니다. 호출자는 성공 시 get() 또는 GetResult()(AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 “Struct: Output”)를 통한 확인(resolution) 후 반환된 ara::core::Future를 통해 구조체를 수신합니다. 처리 중 오류가 발생하면 Output 객체가 생성되지 않고, 대신 Future 컨텍스트를 통해 오류 코드가 제공됩니다. Client는 Future 객체를 파기하여 진행 중인 메서드 호출을 조기에 중단할 수 있습니다.
컨텍스트
구조체 <SI-Namespace>::proxy::methods::<Method>::Output은 AUTOSAR Adaptive Platform의 통신 관리(com)에서 서비스 메서드([SWS_CM_99333])의 출력 인수를 위한 구조화된 캡슐화 역할을 합니다. 서비스 소비자(Proxy) 측에서 이 클래스는 서비스 제공자가 결정하고 미들웨어를 통해 전송된 결과 값을 클라이언트 애플리케이션에 묶어서 전달하기 위해 타입화되어 생성됩니다. 서비스 제공자(Skeleton) 측에는 메서드 반환값을 제공하기 위한 해당 데이터 구조가 존재합니다([SWS_CM_99556]). 주요 상호작용 파트너는 호출 클라이언트 애플리케이션, 프록시 메서드 인스턴스, 그리고 성공 시 Output 객체를 전달하는 호출 인터페이스에서 반환된 ara::core::Future입니다(AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 “Struct: Output”).
수명 주기
Output 인스턴스의 수명 주기는 Adaptive Platform의 비동기 통신 패턴에 직접 임베드되어 있습니다. 프록시에서 메서드 호출이 실행될 때 런타임 환경은 이후의 Output 객체를 위한 컨테이너 역할을 하는 ara::core::Future을 생성합니다(AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 “Struct: Output”). 실제 결과 데이터는 제공자 측에서 생성됩니다. 처리 완료 후—서비스 메서드의 본문에서 동기식으로 또는 별도 스레드에서 비동기식으로—출력 매개변수가 출력 구조에 저장되고 Promise를 통해 연결된 Future로 전달됩니다(ARAComAPI §6.19 “Returning Future with already set result”).
결과가 준비되는 즉시 Client는 get() 또는 GetResult()를 통해 Output 인스턴스를 추출합니다. 이때 객체의 소유권은 호출자에게 이전되며, 이후의 추가 수명은 호출하는 애플리케이션 코드에 귀속되는 것으로 추정됩니다. 수명 주기와 관련된 중요한 제약 조건은 조기 중단에 관한 것입니다. 반환된 ara::core::Future 객체의 소멸자는 호출자가 요청을 전송한 후 이를 취소하는 데 사용됩니다([SWS_CM_00194]). Future가 조기에 파기되면 호출이 취소되어 Output 구조체의 전달이 이루어지지 않습니다. 질문 Q-27f51b3c9fb838ed (열림)
사용 경로
메서드 출력 매개변수를 수신하기 위한 전형적인 절차는 다음 단계로 구성됩니다:
- 호출 시작: Client는 프록시에서 서비스 메서드를 호출하고 즉시
ara::core::Future<Output>을 받습니다(AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 “Struct: Output”). - 결과 쿼리: Client는 결과에 동기화하거나 직접
get()또는GetResult()을 호출합니다.Promise에서 서버 측에 결과가 이미 설정된 경우 호출은 블록되지 않고Output구조체를 즉시 반환합니다(ARAComAPI §6.19 “Returning Future with already set result”). - 값 처리: Client는 수신된 구조체에서 출력값을 읽습니다. 해석:
Output구조체는 메서드의 모든 정의된 Out 및 Inout 인수를 자유롭게 액세스 가능한 멤버로 제공할 것으로 보입니다. 질문 Q-3a292028627f3c64 (열림)
시퀀스 다이어그램: 프록시 메서드 호출 및 Future를 통한 Output 구조체 인수. 출처: [SWS_CM_99333], AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 “Struct: Output”, ARAComAPI §6.19 “Returning Future with already set result”.
오류 시나리오
메서드 처리 중에 오류가 발생하면 일반적인 Output 객체는 반환되지 않습니다. 통신 관리는 특정 오류 메커니즘을 통해 이를 처리합니다:
- 검증된 애플리케이션 오류(Checked Errors): 메서드 호출 처리 중에 정의된 오류가 발생하면
get()또는GetResult()호출의 컨텍스트에서 해당ara::core::ErrorCode이 제공됩니다([SWS_CM_10371]). - 인프라 및 전송 오류: 호출이 실패하면
ara::core::Future에는ara::core::FutureErrc(AUTOSAR_AP_SWS_CommunicationManagement §8.3.6 “Struct: Output”) 또는 제공자 측의ara::com::ComErrc(AUTOSAR_AP_SWS_CommunicationManagement §8.4 “Methods”)과 같은 해당 오류 코드가 포함됩니다. - Fire-and-Forget 메서드: 반환값이 없는 메서드(Fire and Forget)의 경우 검증된 오류가 반환되지 않으며([SWS_CM_90436]), 이러한 메서드에 대해서는
Output구조체가 존재하지 않습니다. - 호출 중단:
Future객체를 파기하면 진행 중인 요청이 중단되고Output결과의 제공이 방지됩니다([SWS_CM_00194]).
이 가이드는 Adaptive 릴리스 R25-11의 사양만을 기반으로 합니다.
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문