pdcomm_gem_equipment_configure_fixed_catalog
Function
Atomically installs a fixed report graph and its STATUS or DATA bindings.
PdcommStatus pdcomm_gem_equipment_configure_fixed_catalog(PdcommTcpEndpoint *endpoint, const PdcommGemReportOptions *report_options, const PdcommGemReportSpec *reports, size_t report_count, const PdcommGemFixedEventSpec *events, size_t event_count, const PdcommGemBindingOptions *binding_options, const PdcommGemReportBinding *bindings, size_t binding_count)Builds a report store from the given reports and events, links each event to its reports, enables the events marked enabled, and installs it together with a new explicit binding store. The Equipment must not have a report store or a binding store yet. Every report needs at least one VID, every VID must be bound, and CONSTANT bindings are not accepted here. All input arrays are borrowed only for the call. On failure neither store changes. Hosts may still change the reports and links at run time with S2F33 and S2F35.
Parameters
| Name | Description |
|---|---|
endpoint | Equipment endpoint; the TCP endpoint must be Stopped. |
report_options | Report store limits; version must be #PDCOMM_GEM_REPORT_OPTIONS_VERSION and reserved 0. |
reports | Array of report_count report definitions with unique RPTIDs and at least one VID each. May be NULL when report_count is 0. |
report_count | Number of reports; at most max_reports. |
events | Array of event_count events with unique CEIDs. May be NULL when event_count is 0. |
event_count | Number of events; at most max_events. |
binding_options | Binding store limits; version must be #PDCOMM_GEM_BINDING_OPTIONS_VERSION and reserved 0. |
bindings | Array of binding_count STATUS or DATA bindings. May be NULL when binding_count is 0. |
binding_count | Number of bindings. |
Returns
#PDCOMM_OK on success; #PDCOMM_INVALID_ARGUMENT when a required pointer is NULL, an options structure is invalid, a report has no VIDs, an enabled flag is greater than 1, an ID is duplicated, a link names an unknown report, a binding is invalid or CONSTANT, or a VID or source does not exist (an enabled event without links is valid and is reported with an empty report list); #PDCOMM_LIMIT_EXCEEDED when a store limit is exceeded; #PDCOMM_BACKPRESSURE when a TCP event is staged; #PDCOMM_INVALID_STATE when the endpoint is not Stopped, is not an Equipment, already has a report or binding store, or GEM communication is active; #PDCOMM_ALLOCATION_FAILED or #PDCOMM_POISONED.