콘텐츠로 이동
무료 평가 시작

pdcomm_gem_host_acknowledge_alarm

함수

수신한 W=1 알람 보고서에 대해 S5F2 Alarm Report Acknowledge를 보냅니다.

PdcommStatus pdcomm_gem_host_acknowledge_alarm(PdcommTcpEndpoint *endpoint, PdcommGemResult *result, uint8_t acknowledgement)

선언 위치: #include <pdcomm_gem_alarms.h>

호스트는 수신한 모든 S5F1을 검증하지만 자동으로 확인 응답하지는 않습니다. 결과는 본문과 트랜잭션 출처를 소유하므로, 원래 TCP 이벤트는 이미 해제되어 있어도 됩니다. S5F2가 송신용으로 접수된 뒤에만 결과가 확인 응답 완료로 표시되고, 그 PdcommGemResultInfo가 확인 응답 값과 reply_sent = 1을 받습니다. 할당 실패나 배압(backpressure) 실패가 발생하면 결과는 다시 시도할 수 있는 상태로 남습니다.

매개변수

이름설명
endpointresult를 만든 호스트 엔드포인트입니다.
result결과 유형이 #PDCOMM_GEM_ALARM_RECEIVED인 결과입니다.
acknowledgementACKC5 값이며 0(수락)부터 63(오류 코드)까지입니다.

반환값

S5F2를 큐에 넣었으면 #PDCOMM_OK를 반환합니다. endpoint 또는 result가 NULL이거나, acknowledgement가 63보다 크거나, result가 알람 결과가 아니면 #PDCOMM_INVALID_ARGUMENT를 반환합니다. result가 목록 응답이거나 W=0 보고서이거나, 엔드포인트에 GEM 호스트가 없거나, 통신이 COMMUNICATING 상태가 아니면 #PDCOMM_INVALID_STATE를 반환합니다. 보고서가 다른 엔드포인트, 이전 연결 세대 또는 선택(selection)에서 왔거나, 이미 확인 응답했거나, 응답 슬롯이 더 이상 열려 있지 않으면 #PDCOMM_STALE_TOKEN을 반환합니다. 준비된 TCP 이벤트(staged event)가 있거나 TCP 큐가 가득 차면 #PDCOMM_BACKPRESSURE를 반환합니다. #PDCOMM_INVALID_DATA, #PDCOMM_LIMIT_EXCEEDED, #PDCOMM_ALLOCATION_FAILED를 반환할 수도 있습니다. 엔드포인트가 오염(poisoned) 상태이거나 패닉(panic)을 격리했으면 #PDCOMM_POISONED를 반환합니다. 그 밖에 pdcomm_tcp_reply()와 같은 다른 TCP 응답 상태 코드를 반환할 수 있습니다.

참고

  • 스레드 안전성: 이 호출은 result를 변경합니다. 같은 결과에 대한 getter나 pdcomm_gem_result_destroy()와 동시에 실행하지 않습니다.