pdcomm_gem_host_acknowledge_alarm
함수
수신한 W=1 알람 보고서에 대해 S5F2 Alarm Report Acknowledge를 보냅니다.
PdcommStatus pdcomm_gem_host_acknowledge_alarm(PdcommTcpEndpoint *endpoint, PdcommGemResult *result, uint8_t acknowledgement)호스트는 수신한 모든 S5F1을 검증하지만 자동으로 확인 응답하지는 않습니다. 결과는 본문과 트랜잭션 출처를 소유하므로, 원래 TCP 이벤트는 이미 해제되어 있어도 됩니다. S5F2가 송신용으로 접수된 뒤에만 결과가 확인 응답 완료로 표시되고, 그 PdcommGemResultInfo가 확인 응답 값과 reply_sent = 1을 받습니다. 할당 실패나 배압(backpressure) 실패가 발생하면 결과는 다시 시도할 수 있는 상태로 남습니다.
매개변수
| 이름 | 설명 |
|---|---|
endpoint | result를 만든 호스트 엔드포인트입니다. |
result | 결과 유형이 #PDCOMM_GEM_ALARM_RECEIVED인 결과입니다. |
acknowledgement | ACKC5 값이며 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()와 동시에 실행하지 않습니다.