pdcomm_gem_host_report_query
Function
Sends an Event Report, Individual Report, or Annotated Individual Report request from a Host.
PdcommStatus pdcomm_gem_host_report_query(PdcommTcpEndpoint *endpoint, uint32_t kind, uint32_t id, PdcommTcpToken *out_token)The ID is sent as U4 and consumes one entry of the Host's shared max_pending_ids. The 32-slot, T3, cancellation, and token rules of pdcomm_tcp.h apply. The reply arrives as #PDCOMM_GEM_RESPONSE with request kind kind and outcome #PDCOMM_GEM_EVENT_QUERY_RECEIVED, #PDCOMM_GEM_INDIVIDUAL_QUERY_RECEIVED, or #PDCOMM_GEM_ANNOTATED_QUERY_RECEIVED. An S6F16 must echo the requested CEID, or the result is #PDCOMM_GEM_INVALID_RESPONSE. S6F20 and S6F22 carry no RPTID, so the result reports the requested ID.
Parameters
| Name | Description |
|---|---|
endpoint | Host endpoint. |
kind | #PDCOMM_GEM_EVENT_QUERY (S6F15), #PDCOMM_GEM_INDIVIDUAL_QUERY (S6F19), or #PDCOMM_GEM_ANNOTATED_QUERY (S6F21). |
id | CEID for #PDCOMM_GEM_EVENT_QUERY, otherwise RPTID. |
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 or kind is unknown; #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
- A successful send is not a response.