pdcomm_gem_host_constant_request
함수
호스트에서 Equipment Constant Request(S2F13) 또는 Namelist Request(S2F29)를 보냅니다.
PdcommStatus pdcomm_gem_host_constant_request(PdcommTcpEndpoint *endpoint, uint32_t kind, const PdcommSecsItem *const *ids, size_t count, PdcommTcpToken *out_token)ID 목록이 비어 있으면 모든 상수를 요청합니다. 명시한 ID는 송신 전에 복사되며 순서, 중복, 원래 항목 형식을 유지합니다. pdcomm_gem_result_constant_value()는 각 값과 함께 이 ID를 반환합니다. ID는 상태, 디렉터리, 조회 요청과 공유하는 호스트의 max_pending_ids에 포함됩니다. 명시한 ID에 대한 응답에는 요청한 ID마다 엔트리가 하나씩 있어야 하며, Namelist 응답은 ID도 순서대로 되돌려야 합니다. 그렇지 않으면 결과는 #PDCOMM_GEM_INVALID_RESPONSE입니다. 응답은 결과 유형이 #PDCOMM_GEM_CONSTANT_VALUES_RECEIVED 또는 #PDCOMM_GEM_CONSTANT_METADATA_RECEIVED인 #PDCOMM_GEM_RESPONSE로 도착합니다.
매개변수
| 이름 | 설명 |
|---|---|
endpoint | 호스트 엔드포인트입니다. |
kind | #PDCOMM_GEM_CONSTANT_VALUES 또는 #PDCOMM_GEM_CONSTANT_METADATA입니다. |
ids | count개의 ID 항목 배열입니다. count가 0이면 NULL일 수 있습니다. |
count | ID 개수입니다. 0이면 모든 상수를 요청합니다. |
out_token | 먼저 0으로 초기화되며, 성공하면 트랜잭션 토큰을 받습니다. NULL이 아니어야 합니다. |
반환값
요청을 큐에 넣었으면 #PDCOMM_OK를 반환합니다. endpoint 또는 out_token이 NULL이거나, kind를 알 수 없거나, count가 0이 아닌데 ids가 NULL이거나, ID가 NULL이거나 유효한 상수 ID가 아니면 #PDCOMM_INVALID_ARGUMENT를 반환합니다. ID가 max_pending_ids 또는 호스트 항목 한도를 넘으면 #PDCOMM_LIMIT_EXCEEDED를 반환합니다. 엔드포인트가 호스트가 아니거나 Communicating 상태가 아니면 #PDCOMM_INVALID_STATE를 반환합니다. 준비된 TCP 이벤트(staged event)가 있거나 대기 슬롯 또는 송신 큐가 가득 차면 #PDCOMM_BACKPRESSURE를 반환합니다. 그 밖에 #PDCOMM_ALLOCATION_FAILED, #PDCOMM_IO_ERROR, #PDCOMM_POISONED를 반환합니다.
참고
- 제출에 성공했다고 응답을 받은 것은 아닙니다.