데이터가 없는 서비스 트리거를 구독하고 클라이언트 애플리케이션을 위해 수신되는 트리거 펄스를 카운트합니다.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: f0b35174b21c출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
데이터가 없는 서비스 트리거를 구독하고 클라이언트 애플리케이션을 위해 수신되는 트리거 펄스를 카운트합니다.
<SI-Namespace>::proxy::triggers::<Trigger> 클래스는 클라이언트 애플리케이션이 Communication Management를 통해 데이터 없는 트리거 펄스를 구독할 수 있도록 합니다 [SWS_CM_00723]. SetReceiveHandler()(을)를 통해 콜백을 등록한 후 애플리케이션은 새로 도착한 펄스를 GetNewTriggers()(으)로 읽어옵니다 [SWS_CM_00226], [SWS_CM_00250]. 예외 안전성은 UnsetReceiveHandler()(을)를 제외하고 기본적으로 보장됩니다 [SWS_CM_11614].
컨텍스트
생성된 프록시 클래스 <SI-Namespace>::proxy::triggers::<Trigger>는 서비스 인터페이스 내에서 trigger 역할로 모델링된 정확히 하나의 트리거 요소를 클라이언트 측에서 나타냅니다 AUTOSAR_AP_SWS_CommunicationManagement §8 “Service proxy Trigger class”. 이벤트 기반 데이터 스트림과 달리, 트리거는 페이로드 없이 순수한 트리거 펄스만을 전달합니다. 이 클래스는 이를 사용하는 클라이언트 애플리케이션, Communication Management(ara::com) 및 E2E 모니터링 시스템 사이의 중재 인스턴스 역할을 합니다. 핵심 역할은 인바운드 트리거에 대한 구독을 제어하고, 펄스 수신 또는 상태 변경에 대한 알림 콜백을 등록하며, 카운터를 통해 수신된 트리거 발생 횟수를 제공하는 것입니다 [SWS_CM_00226], [SWS_CM_00250].
수명 주기
<SI-Namespace>::proxy::triggers::<Trigger> 인스턴스의 수명은 클래스 멤버로서 존재하는 상위 서비스 프록시 객체의 수명에 종속됩니다. 상태 관점에서 트리거 구독은 ara::com::SubscriptionState에 의해 표현되고 GetSubscriptionState()를 통해 쿼리할 수 있는 여러 단계를 거칩니다 [SWS_CM_01105]:
구독 보류 중(kSubscriptionPending):Subscribe()를 트리거한 후 구독 확인이 진행되는 동안의 중간 상태 [SWS_CM_00723].
구독됨(kSubscribed): 구독이 활성 상태입니다. 인바운드 트리거 펄스는 내부 카운터를 증가시키고 등록된 핸들러에 대한 알림으로 이어집니다 [SWS_CM_00226], [SWS_CM_00250].
kSubscribed 또는 kSubscriptionPending 상태에서 Subscribe()를 다시 호출해도 아무런 효과가 없으며 아무런 동작 없이 반환됩니다 [SWS_CM_00723]. 호출 시점에 트리거 구독이 존재하지 않는 경우 Unsubscribe()도 유사하게 동작합니다 [SWS_CM_00810]. 상태 변화를 모니터링하기 위해 애플리케이션은 SetSubscriptionStateChangeHandler()를 사용하여 해당 콜백을 등록하거나 [SWS_CM_01107], UnsetSubscriptionStateChangeHandler()를 통해 등록 해제할 수 있습니다 [SWS_CM_01108].
상태 다이어그램: Subscribe 및 Unsubscribe를 통한 전이가 포함된 트리거 구독의 수명 주기. 출처: [SWS_CM_00723], [SWS_CM_00810], [SWS_CM_01105].
사용 경로
트리거 신호의 이벤트 구동 처리를 위한 전형적인 사용 경로는 콜백 구성, 구독 활성화 및 카운터 조회를 포함합니다:
핸들러 등록: 애플리케이션은 선택적으로 SetSubscriptionStateChangeHandler()를 통해 상태 핸들러를 등록하고 [SWS_CM_01107], 필수적으로 SetReceiveHandler()를 통해 수신 핸들러를 등록합니다 [SWS_CM_00250]. 동시성 아키텍처의 경우 비동기 계산을 위한 실행 컨텍스트를 지정하는 전용 ExecutorT를 갖춘 오버로드가 제공됩니다 [SWS_CM_00352], [SWS_CM_01106].
신호 수신 및 카운터 조회: 트리거 펄스가 도달하는 즉시 Communication Management는 매개변수 없이 TriggerReceiveHandler를 호출합니다 [SWS_CM_00250]. 이 핸들러 내에서 애플리케이션은 GetNewTriggers()를 호출하여 트리거 카운터를 업데이트하고 마지막 호출 이후 수신된 펄스 수를 읽어옵니다 [SWS_CM_00226]. 이때 0 값은 새로운 펄스가 없음을 나타냅니다.
종료: 정연한 정리를 위해 애플리케이션은 Unsubscribe()를 호출하고 [SWS_CM_00810], UnsetReceiveHandler()[SWS_CM_11614] 및 UnsetSubscriptionStateChangeHandler()[SWS_CM_01108]를 통해 설정된 핸들러를 제거합니다.
시퀀스 다이어그램: 등록 및 구독부터 신호 수신 및 등록 해제에 이르는 트리거 처리의 전형적인 흐름. 출처: [SWS_CM_00226], [SWS_CM_00250], [SWS_CM_00723], [SWS_CM_00810], [SWS_CM_11614].
오류 시나리오
규격은 인터페이스 메서드에 대한 특정 위반 조건(Violations) 및 예외 안전성을 정의합니다:
InsufficientPermissionsViolation: 액세스 제어(Grant Enforcement)가 트리거 구독 권한을 거부할 때 Subscribe()에서 발생합니다 [SWS_CM_00723].
E2E 보호의 전송 오류: 오류가 있는 전송 상태는 SetTransportFaultConditionHandler()를 통해 등록된 핸들러를 통해 보고되며 [SWS_CM_00106], [SWS_CM_00107], 이는 UnsetTransportFaultConditionHandler()를 통해 다시 등록 해제될 수 있습니다 [SWS_CM_00108].
예외 안전성: 거의 모든 작업이 noexcept로 선언되어 있으며 예외에 안전합니다(exception safe) [SWS_CM_00226], [SWS_CM_00723]. 한 가지 예외는 규격상 명시적으로 예외에 안전하지 않음(not exception safe)으로 분류된 UnsetReceiveHandler()입니다 [SWS_CM_11614]. 오류 발생 시 호출이 예외를 전파하거나 클라이언트 애플리케이션에서 별도의 오류 처리를 요구할 것으로 추정됩니다. 질문 Q-3f9833ab71a91dd1 (열림)
이 가이드는 Communication Management 모듈에 대한 AUTOSAR Adaptive R25-11 규격만을 기반으로 합니다.
Method to subscribe to a service trigger. When called it starts a subscription of the corresponding Trigger. If the Trigger is already in state kSubscribed or in state kSubscriptionPending at the time of the call, and this method is invoked, it shall return without any action.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 6c77e80a6df1출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
사용
함수 SetReceiveHandler은 서비스 프록시의 트리거 클래스 스코프(<SI-Namespace>::proxy::triggers::<Trigger>)에서 호출되며 헤더 <SiNamespaceDerivedDirectoryPath>/<SiShortname>_proxy.h를 통해 포함됩니다 [SWS_CM_00250]. 트리거는 ara::com에서 이벤트, 메서드 및 필드와 함께 4가지 통신 메커니즘 중 하나를 형성합니다 EXP_ARAComAPI §4.2 “Means of Communication”.
ara::com::TriggerReceiveHandler 유형의 매개변수 handler은 트리거가 도착할 때 Communication Management에 의해 호출되는 호출 가능 객체를 수신합니다. 핸들러 자체에는 매개변수가 없습니다. 현재 트리거 카운터 값을 쿼리하려면 콜백 함수 내에서 특정 트리거 클래스의 메서드 GetNewTriggers를 호출해야 합니다 [SWS_CM_00250].
오류 처리 및 예외 안전성
등록은 반환값을 제공하지 않으며(void) noexcept 및 exception safe로 정의됩니다 [SWS_CM_00250]. 전달된 Callable이 존재하지 않거나 null인 경우 InvalidHandlerViolation 형태의 호출 규칙 위반이 발생합니다 [SWS_CM_00250].
InvalidHandlerVio- Provided Callable handler does not exist or is null lation
Parameter (in)
Parameter
Beschreibung
handler
The handler that shall be called by Communication Management upon trigger arrival. The ara::com::TriggerReceiveHandler constitutes a function without parameters and has to use the Get NewTriggers method of the specific Trigger class to access the retrieved trigger counter. See [SWS_CM_00351] for it’s definition.
As per [SWS_CM_01107] but the method shall execute in a provided context
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: d2573855e57e출처열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
사용
<SI-Namespace>::proxy::triggers::<Trigger> 유효 범위의 템플릿 함수 SetSubscriptionStateChangeHandler은(는) 구독 상태 변경에 대한 알림을 위한 콜백을 등록합니다([SWS_CM_01106]). 헤더 파일 <SiNamespaceDerivedDirectoryPath>/<SiShortname>_proxy.h을(를) 통해 선언되며 두 개의 매개변수를 받습니다:
handler: 상태 변경 시 실행되어야 하는 ara::com::SubscriptionStateChangeHandler 타입의 호출 가능 단위([SWS_CM_01107]).
executor: 핸들러 실행이 수행되어야 하는 ExecutorT 타입의 실행 컨텍스트([SWS_CM_11360]).
등록 자체는 동기식으로 동작하며 반환값이 없습니다(void). 등록된 콜백은 상태 변경 시 지정된 실행 컨텍스트에서 실행됩니다.
오류 처리 및 예외 안전성
해당 메서드는 noexcept(으)로 선언되어 있으며 exception safe(으)로 명시되어 있습니다([SWS_CM_01106]). 전달된 Callable 인스턴스가 존재하지 않거나 널인 경우 InvalidHandlerViolation이(가) 발생합니다([SWS_CM_01106]). 예외가 발생하지 않으므로, 유효하지 않은 핸들러는 플랫폼별 오류 경로로 이어질 것으로 보입니다(해석). 질문 Q-cbb90bfbfa10338d (열림)
동시성 및 상호 작용
Executor([SWS_CM_11360])를 전달함으로써 애플리케이션은 상태 콜백을 위한 실행 컨텍스트를 직접 제어합니다. 이는 장시간 실행되는 핸들러 호출이 커뮤니케이션 관리의 내부 이벤트 처리를 차단하는 것을 방지할 것으로 보입니다(해석). 질문 (열림) 이 함수는 컨텍스트가 없는 변형 [SWS_CM_01107]을(를) 확장하며, Proxy 이벤트([SWS_CM_11354]), Proxy 필드([SWS_CM_11608]) 및 Skeleton 트리거([SWS_CM_11111])를 위한 Executor 기반 인터페이스에 대한 트리거 대응물을 형성합니다.
이 사용 지침은 자동으로 생성되었으며 AUTOSAR Adaptive Platform의 사양을 기반으로 합니다.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: b21ff32dc0c5출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
[SWS_CM_01107] 함수를 통해 트리거의 프록시 영역(<SI-Namespace>::proxy::triggers::<Trigger>)에서 콜백 핸들러를 등록하며, Communication Management는 구독 상태(ara::com::SubscriptionState)가 변경될 때마다 이 핸들러를 호출합니다. 이 함수는 반환값이 없으며 예외 안전(noexcept)으로 명시되어 있습니다.
구독은 기본적으로 비동기 프로세스로 처리되어야 하므로, 애플리케이션은 [SWS_CM_01107]을(를) 통해 등록된 핸들러 또는 쿼리 함수 GetSubscriptionState()이(가) 상태 kSubscribed을(를) 보고한 후에만 성공적인 구독으로 간주해야 합니다[SWS_CM_12006]. 시간 지연이 발생하거나 재시작 또는 네트워크 문제로 인해 서버를 일시적으로 사용할 수 없는 경우, Communication Management는 핸들러를 상태 kSubscriptionPending(으)로 활성화합니다[SWS_CM_00313].
오류 처리 및 통합에는 다음과 같은 제약 조건이 적용됩니다:
오류 처리: 존재하지 않거나 비어 있는 호출 가능 객체(null)를 전달하는 것은 허용되지 않으며 InvalidHandlerViolation[SWS_CM_01107](으)로 이어집니다.
실행 컨텍스트: 핸들러를 기본 컨텍스트가 아닌 특정 실행 컨텍스트 내에서 실행해야 하는 경우 ExecutorT&&이(가) 포함된 템플릿 오버로드가 제공됩니다[SWS_CM_01106].
Provides possibility to register a TransportFaultConditionHandler for a given Proxy Trigger.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 979128a8c136출처열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
함수 SetTransportFaultConditionHandler은 proxy::triggers::<Trigger> 인스턴스에서 ara::com::e2e::TransportFaultConditionHandler 타입의 콜백 함수를 등록하는 데 사용됩니다([SWS_CM_00106]). 매개변수 handler을(를) 전달받고, 반환값이 없으며, noexcept 및 exception safe(으)로 명시되어 있습니다([SWS_CM_00106]).
등록된 핸들러를 통해 통신 계층은 감지된 전송 계층 오류를 신호합니다. DDS 네트워크 바인딩에서 핸들러는 기반 DataReader 엔터티의 이벤트를 TransportFaultCondition(으)로 보고합니다([SWS_CM_00212]):
샘플이 폐기된 경우(예: 메모리 부족 또는 데이터 손상 등) TransportFaultCondition::kSampleRejected,
수신 데드라인을 위반한 경우(REQUESTED_DEADLINE_MISSED) TransportFaultCondition::kDeadlineMissed,
감지된 데이터 샘플이 손실된 경우([SWS_CM_00212]) TransportFaultCondition::kSampleLost.
유효한 Callable 대신 존재하지 않거나 비어 있는 핸들러가 전달되면 런타임 환경은 InvalidHandlerViolation을(를) 보고합니다([SWS_CM_00106]). 함수 시그니처가 noexcept(으)로 선언되어 있으므로, 이 위반은 C++ 예외 대신 플랫폼 차원의 오류 처리로 이어질 것으로 추정됩니다. 질문 Q-ebaf44b8f7b198e8 (열림)
등록은 호출자 컨텍스트에서 동기식으로 수행되며, 이 오버로드에서는 핸들러 실행이 특정 디스패처로 위임되지 않습니다. 정의된 실행 컨텍스트에서 콜백을 실행해야 하는 경우 추가적인 ExecutorT&&을(를) 갖는 오버로드된 템플릿 변형을 사용할 수 있습니다([SWS_CM_00107]). 오류를 처음부터 포착하기 위해 연동은 일반적으로 실제 트리거 처리 전에 수행될 것으로 보입니다. 질문 (열림)
Execution Context overload for hierarchicalnamespacelistlowerproxy::proxy:: triggers::triggername::SetTransportFaultConditionHandler for a given Proxy Trigger.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 653e5e8a79be출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
함수 [SWS_CM_00107]은 네임스페이스 <SI-Namespace>::proxy::triggers::<Trigger>에서 프록시 트리거의 전송 오류에 대한 콜백 루틴을 등록하는 데 사용됩니다. 실행 컨텍스트가 있는 오버로드로서 ara::com::e2e::TransportFaultConditionHandler 유형의 핸들러 외에도 트리거된 비동기 계산이 실행되는 실행자 객체 executor을 전달받습니다.
사용 및 오류 처리에는 다음 규정이 적용됩니다:
매개변수 및 반환값: 매개변수 handler은 설정할 Callable을 전달하는 반면, executor은 비동기 작업의 실행 컨텍스트를 정의합니다 [SWS_CM_00107]. 함수는 반환값을 제공하지 않으며 noexcept으로 선언되었습니다(예외 안전성: exception safe).
오류 케이스 및 위반: 존재하지 않거나 유효하지 않은 핸들러가 전달되면(null), 런타임은 InvalidHandlerViolation을 보고합니다 [SWS_CM_00107].
보고된 오류 상태: 등록된 핸들러는 [SWS_CM_00212]에 따라 감지된 전송 오류를 수신합니다. 여기에는 TransportFaultCondition::kSampleRejected(데이터 손상 또는 리소스 부족 등), TransportFaultCondition::kDeadlineMissed(기한 위반 시) 및 TransportFaultCondition::kSampleLost(샘플 손실 시)이 포함됩니다.
Method to subscribe to a service trigger. When called it starts a subscription of the corresponding Trigger. If the Trigger is already in state kSubscribed or in state kSubscriptionPending at the time of the call, and this method is invoked, it shall return without any action.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: cad2e3ac0bc9출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
메서드 Subscribe은(는) 네임스페이스 <SI-Namespace>::proxy::triggers::<Trigger>의 프록시 인스턴스를 통해 서비스 트리거를 클라이언트 측에서 구독하는 데 사용됩니다 [SWS_CM_00723]. 사용하기 전에 서비스 인스턴스가 서버 측에서 OfferService()을(를) 통해 제공되고 클라이언트가 Service Discovery 메커니즘을 통해 찾은 상태여야 합니다 AUTOSAR_AP_EXP_ARAComAPI §4.2 “Means of Communication”.
매개변수 및 캐시: 이 함수는 매개변수를 받지 않습니다(void Subscribe() noexcept) [SWS_CM_00723]. 트리거는 데이터 샘플 없이 순수 알림만 전달하므로, 이벤트에서 흔히 사용되는 maxSampleCount을(를) 통한 로컬 샘플 캐시 예약이 생략됩니다 [SWS_CM_00141].
반환값:ara::core::Result은(는) 반환되지 않으며, void이(가) 반환됩니다 [SWS_CM_00723].
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 78176c7d7edd출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
사용
<SI-Namespace>::proxy::triggers::<Trigger> 네임스페이스의 동기 함수 UnsetReceiveHandler은(는) 프록시 측 [SWS_CM_11614]에서 서비스 트리거용으로 이전에 등록된 수신 핸들러를 비활성화하는 데 사용됩니다. 이 함수는 헤더 파일 #include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_proxy.h"의 포함을 필요로 하며, 전달 매개변수를 받지 않고 반환값을 갖지 않습니다.
명시적으로 noexcept 및 예외 안전(exception safe)으로 명세된 서비스 이벤트용 [SWS_CM_00183] 및 서비스 필드용 [SWS_CM_11606]의 유사 함수들과 달리, 트리거용 UnsetReceiveHandler은(는) 예외 안전하지 않음(not exception safe)으로 선언되어 있습니다 [SWS_CM_11614]. 해석: 표준에 특정 예외 유형이나 오류 코드가 나열되어 있지 않더라도, 호출자는 통신 인프라의 내부 오류 발생 시 예외가 발생할 수 있음을 염두에 두어야 합니다. 질문 Q-92e16243a7ddee35 (열림)
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: de69ae0196a3출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
UnsetSubscriptionStateChangeHandler 함수는 클라이언트 측에서 트리거의 구독 상태 변경(ara::com::SubscriptionState)을 위해 이전에 등록된 콜백을 제거하는 데 사용됩니다[SWS_CM_01108]. <SI-Namespace>::proxy::triggers::<Trigger> 유효 범위에 선언되어 있으며 헤더 #include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_proxy.h"을(를) 통해 포함되어야 합니다[SWS_CM_01108].
시그니처는 void UnsetTransportFaultConditionHandler() noexcept;입니다. 호출은 매개변수를 받지 않으며 반환값을 반환하지 않습니다([SWS_CM_00108]). noexcept 선언 및 exception safe 분류를 통해 이 함수는 정상 작동 시 예외를 발생시키지 않습니다([SWS_CM_00108]). 사양에는 특정 오류 코드, 오류 채널 또는 폴백 값이 제공되지 않습니다.
프로세스와 관련하여 함수는 오류 처리 루틴과의 연결을 동기적으로 해제합니다. 따라서 성공적인 실행 후에는 해당 트리거에 대한 E2E 전송 오류에 대한 추가 알림이 이전 핸들러로 전달되지 않을 것으로 보입니다(해석).
질문 Q-ae8477bc6530e352 (열림)
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문