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

pdcomm_gem_result_status_name

함수

S1F12 결과에서 SVID, 이름, 단위 엔트리 하나를 복사합니다.

PdcommStatus pdcomm_gem_result_status_name(const PdcommGemResult *result, size_t index, uint32_t *out_id, uint8_t *name, size_t name_capacity, size_t *name_required, uint8_t *units, size_t units_capacity, size_t *units_required)

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

결과 유형이 #PDCOMM_GEM_NAMES_RECEIVED인 결과만 이 함수를 지원하며, 엔트리 개수는 entry_count로 알 수 있습니다. SVID는 응답에서 가져옵니다. ID를 지정한 요청이면 응답이 요청한 ID와 순서대로 일치하는지 이미 검사했습니다. 필요한 길이는 둘 다 보고합니다. 어느 한 버퍼라도 너무 작으면 두 버퍼 모두 변경하지 않으며 out_id는 0으로 남습니다. 문자열은 내장된 NUL을 그대로 보존한 ASCII 바이트이며 종료 문자는 추가하지 않습니다.

매개변수

이름설명
result유효한 결과입니다.
index0부터 시작하는 엔트리 인덱스입니다.
out_id성공하면 SVID를 받습니다. 먼저 0으로 설정됩니다. NULL이 아니어야 합니다.
nameSVNAME을 받을 대상 버퍼입니다. name_capacity가 0일 때만 NULL일 수 있습니다.
name_capacityname의 크기(바이트)입니다.
name_required이름 길이를 받습니다(NULL이 아니면 먼저 0으로 설정됩니다). NULL이 아니어야 합니다.
unitsUNITS를 받을 대상 버퍼입니다. units_capacity가 0일 때만 NULL일 수 있습니다.
units_capacityunits의 크기(바이트)입니다.
units_required단위 길이를 받습니다(NULL이 아니면 먼저 0으로 설정됩니다). NULL이 아니어야 합니다.

반환값

엔트리를 복사했으면 #PDCOMM_OK를 반환합니다. 어느 한 용량이라도 너무 작으면 #PDCOMM_BUFFER_TOO_SMALL을 반환합니다(두 길이는 설정되고 버퍼는 변경되지 않습니다). result, out_id, name_required 또는 units_required가 NULL이거나, 용량이 0이 아닌데 버퍼가 NULL이면 #PDCOMM_INVALID_ARGUMENT를 반환합니다. 결과 유형이 #PDCOMM_GEM_NAMES_RECEIVED가 아니면 #PDCOMM_INVALID_STATE를 반환합니다. index가 entry_count보다 작지 않으면 #PDCOMM_OUT_OF_RANGE를 반환합니다. 패닉(panic)을 격리했으면 #PDCOMM_INTERNAL_ERROR를 반환합니다.

참고

  • 모든 출력은 쓸 수 있어야 하고, 서로 겹치면 안 되며, 결과와 분리되어 있어야 합니다.
  • 스레드 안전성: 읽기 전용 결과 getter는 서로 동시에 실행할 수 있지만 pdcomm_gem_result_destroy()와는 동시에 실행할 수 없습니다.