pdcomm_gem_spool_entry_at
함수
스풀 메시지 하나를 큐 위치로 지정해 읽습니다.
PdcommStatus pdcomm_gem_spool_entry_at(PdcommTcpEndpoint *endpoint, size_t index, PdcommGemSpoolEntryInfo *info, PdcommSecsItem **body)인덱스 0은 선두입니다. 가장 오래된 엔트리이며 다음에 전달될 엔트리입니다.
매개변수
| 이름 | 설명 |
|---|---|
endpoint | 장비 스풀이 있는 엔드포인트입니다. |
index | 0부터 시작하는 큐 인덱스입니다. |
info | struct_size를 설정한 호출자 저장 공간입니다. 먼저 지워지고, 성공하면 채워집니다. |
body | 메시지 본문을 담은 새 항목을 받습니다. 메시지에 본문이 없으면 NULL을 받습니다(소유한 빈 항목과는 다릅니다). 먼저 NULL로 설정됩니다. NULL이 아니어야 합니다. |
반환값
성공하면 #PDCOMM_OK를 반환합니다. info 또는 body가 NULL이거나, info가 너무 작거나, endpoint가 NULL이면 #PDCOMM_INVALID_ARGUMENT를 반환합니다. 장비 스풀이 구성되지 않았으면 #PDCOMM_INVALID_STATE를 반환합니다. index가 끝을 넘으면 #PDCOMM_OUT_OF_RANGE를 반환합니다. 저장된 본문을 디코딩할 수 없으면 #PDCOMM_INVALID_DATA를 반환합니다. 그 밖에 #PDCOMM_ALLOCATION_FAILED 또는 #PDCOMM_POISONED를 반환합니다.
참고
- 소유권: NULL이 아닌
*body는 pdcomm_secs_destroy()로 해제합니다.