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

pdcomm_gem_formatted_program_respond

함수

수신한 S7F27 보고서에 대해 S7F28 확인 응답을 보냅니다.

PdcommStatus pdcomm_gem_formatted_program_respond(PdcommTcpEndpoint *endpoint, PdcommGemResult *result)

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

호스트 전용입니다. result는 이 엔드포인트가 현재 HSMS 세션에서 수신했고 아직 응답하지 않은 S7F27 1차 메시지여야 합니다. S7F28에는 본문이 없습니다. 성공하면 결과 유형이 #PDCOMM_GEM_REPLIED가 되고 reply_sent가 1이 됩니다.

큐에 넣지 못해도 준비한 응답은 유지되므로, #PDCOMM_BACKPRESSURE를 반환한 호출은 다시 시도할 수 있습니다. 응답이 확정된 뒤 다시 호출하면 다시 보내지 않고 #PDCOMM_OK를 반환합니다.

매개변수

이름설명
endpointGEM COMMUNICATING 상태인 호스트 엔드포인트입니다.
resultpdcomm_gem_handle_event()가 만든, 결과 유형이 #PDCOMM_GEM_FORMATTED_PROGRAM_RECEIVED인 결과입니다.

반환값

S7F28을 큐에 넣었거나 이미 보냈으면 #PDCOMM_OK를 반환합니다. endpoint 또는 result가 NULL이면 #PDCOMM_INVALID_ARGUMENT를 반환합니다. 엔드포인트가 COMMUNICATING 상태의 호스트가 아니거나, 서비스가 구성되지 않았거나, result가 검증 보고서 결과가 아니면 #PDCOMM_INVALID_STATE를 반환합니다. result가 수신한 S7F27이 아니거나, 다른 엔드포인트에서 왔거나, 이전 HSMS 세션 또는 선택(selection)에 속하면 #PDCOMM_STALE_TOKEN을 반환합니다. 준비된 TCP 이벤트(staged event)를 먼저 비워야 하거나 TCP 송신 큐가 가득 차면 #PDCOMM_BACKPRESSURE를 반환합니다(나중에 다시 시도합니다). 응답을 큐에 넣을 수 없으면 그 밖의 TCP 상태 코드를 반환합니다. 엔드포인트가 오염(poisoned) 상태이면 #PDCOMM_POISONED를 반환합니다.

참고

  • 스레드 안전성: endpoint에 대한 다른 모든 호출과 직렬화하며, 이 호출 중에는 다른 스레드에서 result를 읽지 않습니다.