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

pdcomm_gem_formatted_program_verification_prepare

함수

협상에 사용할 S7F27 검증 보고서를 준비합니다.

PdcommStatus pdcomm_gem_formatted_program_verification_prepare(PdcommTcpEndpoint *endpoint, const PdcommSecsItem *id, const PdcommGemFormattedProgramVerificationNegotiationIssue *issues, size_t issue_count, PdcommGemResult **out_result)

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

장비 전용입니다. 보고서를 검증하고 인코딩해 복사하며, LENGTH를 계산합니다. 아무것도 보내지 않습니다. 결과를 가지고 pdcomm_gem_formatted_program_verification_submit()을 호출합니다.

매개변수

이름설명
endpoint서비스가 구성되고 Communicating 상태인 GEM 장비 엔드포인트입니다.
idPPID: 최대 120바이트이며 비어 있지 않은 ASCII 또는 Binary 항목입니다. 복사되며, 소유권은 호출자에게 남습니다.
issuesissue_count개의 문제 항목 배열입니다. issue_count가 0이면 NULL일 수 있습니다.
issue_count문제 항목 개수입니다. 최대 max_issues입니다.
out_result준비된 결과를 받습니다. NULL이 아니면 항상 먼저 NULL로 설정되므로, 실패하면 항상 NULL입니다.

반환값

성공하면 #PDCOMM_OK를 반환합니다. 포인터가 NULL이거나, id가 유효한 식별자가 아니거나, 문제 항목이 유효하지 않거나(코드가 5보다 큼, ASCII가 아닌 텍스트, 길이가 0이 아닌데 텍스트가 NULL), 보고서 한도(max_issues, max_issue_text_bytes, max_total_issue_text_bytes)를 넘거나, 보고서를 SECS-II 항목 한도 안에서 인코딩할 수 없으면 #PDCOMM_INVALID_ARGUMENT를 반환합니다. S7F27 프레임이 엔드포인트의 max_frame_bytes에 맞지 않거나 끝나지 않은 협상이 max_prepared개이면 #PDCOMM_LIMIT_EXCEEDED를 반환합니다. 엔드포인트가 Communicating 상태의 GEM 장비가 아니거나 서비스가 구성되지 않았으면 #PDCOMM_INVALID_STATE를 반환합니다. 엔드포인트에 준비된 TCP 이벤트(staged event)가 있으면 #PDCOMM_BACKPRESSURE를 반환합니다. 그 밖에 #PDCOMM_ALLOCATION_FAILED, #PDCOMM_POISONED를 반환합니다.

참고

  • 소유권: pdcomm_gem_result_destroy()로 결과를 해제합니다. 준비된 협상은 결과를 해제하더라도 끝나거나(시간 초과나 형식이 잘못된 응답으로 끝난 경우 포함) HSMS 세션이 끝날 때까지 max_prepared 슬롯 하나를 차지합니다.