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)결과 유형이 #PDCOMM_GEM_NAMES_RECEIVED인 결과만 이 함수를 지원하며, 엔트리 개수는 entry_count로 알 수 있습니다. SVID는 응답에서 가져옵니다. ID를 지정한 요청이면 응답이 요청한 ID와 순서대로 일치하는지 이미 검사했습니다. 필요한 길이는 둘 다 보고합니다. 어느 한 버퍼라도 너무 작으면 두 버퍼 모두 변경하지 않으며 out_id는 0으로 남습니다. 문자열은 내장된 NUL을 그대로 보존한 ASCII 바이트이며 종료 문자는 추가하지 않습니다.
매개변수
| 이름 | 설명 |
|---|---|
result | 유효한 결과입니다. |
index | 0부터 시작하는 엔트리 인덱스입니다. |
out_id | 성공하면 SVID를 받습니다. 먼저 0으로 설정됩니다. NULL이 아니어야 합니다. |
name | SVNAME을 받을 대상 버퍼입니다. name_capacity가 0일 때만 NULL일 수 있습니다. |
name_capacity | name의 크기(바이트)입니다. |
name_required | 이름 길이를 받습니다(NULL이 아니면 먼저 0으로 설정됩니다). NULL이 아니어야 합니다. |
units | UNITS를 받을 대상 버퍼입니다. units_capacity가 0일 때만 NULL일 수 있습니다. |
units_capacity | units의 크기(바이트)입니다. |
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()와는 동시에 실행할 수 없습니다.