pdcomm_gem_host_directory_request
Function
Sends a Data Variable or Collection Event Namelist Request (S1F21 or S1F23) from a Host.
PdcommStatus pdcomm_gem_host_directory_request(PdcommTcpEndpoint *endpoint, uint32_t kind, const uint32_t *ids, size_t count, PdcommTcpToken *out_token)An empty ID list requests every entry in stored order. Explicit IDs are copied (as U4) and keep their order, duplicates, and unknown-ID markers; they count against the Host's shared max_pending_ids and follow the 32-slot, T3, cancellation, and token rules. A reply to explicit IDs must return exactly the requested IDs in the same order, or the result is #PDCOMM_GEM_INVALID_RESPONSE. A valid reply arrives as #PDCOMM_GEM_RESPONSE with outcome #PDCOMM_GEM_DATA_DIRECTORY_RECEIVED or #PDCOMM_GEM_EVENT_DIRECTORY_RECEIVED.
Parameters
| Name | Description |
|---|---|
endpoint | Host endpoint. |
kind | #PDCOMM_GEM_DATA_DIRECTORY or #PDCOMM_GEM_EVENT_DIRECTORY. |
ids | Array of count VIDs or CEIDs. May be NULL when count is 0. |
count | Number of IDs; 0 requests all entries. |
out_token | Zeroed first; receives the transaction token on success. Must not be NULL. |
Returns
#PDCOMM_OK when the request was queued; #PDCOMM_INVALID_ARGUMENT when endpoint or out_token is NULL, kind is unknown, or ids is NULL with a nonzero count; #PDCOMM_LIMIT_EXCEEDED when max_pending_ids or the Host item limits would be exceeded; #PDCOMM_INVALID_STATE when the endpoint is not a Host or is not Communicating; #PDCOMM_BACKPRESSURE when a TCP event is staged or the pending slots or send queue are full; #PDCOMM_ALLOCATION_FAILED, #PDCOMM_IO_ERROR, or #PDCOMM_POISONED.
Notes
- Submission is not a response.