Skip to content
Start free evaluation

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)

Declared in: #include <pdcomm_gem_directories.h>

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

NameDescription
endpointHost endpoint.
kind#PDCOMM_GEM_DATA_DIRECTORY or #PDCOMM_GEM_EVENT_DIRECTORY.
idsArray of count VIDs or CEIDs. May be NULL when count is 0.
countNumber of IDs; 0 requests all entries.
out_tokenZeroed 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.