35 return (role_bits != 0U) && ((role_bits & (role_bits - 1U)) == 0U);
43 if (osadapter == NULL)
52 return lifecycle_status;
62 if ((storage == NULL) || (config == NULL) || (out_handle == NULL))
83 return s_osadapter->open(storage, config, out_handle);
92 if ((handle == NULL) || (data == NULL) || (data_size == 0U))
108 return s_osadapter->send(handle, data, data_size, channel, timeout_ms);
117 if ((handle == NULL) || (out_data == NULL) || (buffer_size == 0U))
129 return s_osadapter->receive(handle, out_data, buffer_size, out_channel, timeout_ms);
151 if ((handle == NULL) || (out_attr == NULL))
170 if ((handle == NULL) || (new_attr == NULL))
182 return s_osadapter->setattr(handle, new_attr, out_old_attr);
rte_status_t rte_flow_send(rte_flow_handle_t handle, const void *data, size_t data_size, rte_flow_channel_t channel, rte_duration_ms_t timeout_ms)
Sends one fixed-size message on the given channel, blocking at most timeout_ms.
rte_status_t rte_flow_close(rte_flow_handle_t handle)
Closes (leaves/unregisters/unsubscribes from) a Flow.
rte_status_t rte_flow_receive(rte_flow_handle_t handle, void *out_data, size_t buffer_size, rte_flow_channel_t *out_channel, rte_duration_ms_t timeout_ms)
Receives one fixed-size message, blocking at most timeout_ms.
rte_status_t rte_flow_getattr(rte_flow_handle_t handle, rte_flow_attr_t *out_attr)
Reads this Flow's current (static and dynamic) attributes.
rte_status_t rte_flow_open(rte_flow_storage_t *storage, const rte_flow_config_t *config, rte_flow_handle_t *out_handle)
Opens (joins/registers/subscribes to, per OCORA's own fl_open() doc) a named Flow.
rte_flow_channel_t
Message-channel discriminator, matching OCORA PI API Annex A.1's e_fl_channels: a Flow can carry ordi...
struct rte_flow_impl_s * rte_flow_handle_t
Opaque handle to an opened Flow, returned by rte_flow_open().
rte_status_t rte_flow_setattr(rte_flow_handle_t handle, const rte_flow_attr_t *new_attr, rte_flow_attr_t *out_old_attr)
Sets this Flow's mutable (dynamic) attributes.
rte_status_t rte_lifecycle_check_setup_allowed(void)
Convenience check for a setup-only constructor: call this as one of the first checks in any function ...
rte_status_t
Common result/status codes.
@ RTE_STATUS_INVALID_PARAM
@ RTE_STATUS_NOT_SUPPORTED
@ RTE_STATUS_NOT_INITIALIZED
uint32_t rte_duration_ms_t
static const rte_osadapter_clocksync_t * s_osadapter
static bool oflags_select_exactly_one_role(uint32_t oflags)
Exactly one of PUBLISHER/SUBSCRIBER/REQUESTER/RESPONDER must be set - a Flow has one,...
OS Abstraction Layer - OCORA PI-API-compatible Flow service.
Process-wide application setup-phase lock (ADR-026).
OSAdapter interface for OCORA PI-API Flow communication.
rte_status_t rte_osadapter_flow_register(const rte_osadapter_flow_t *adapter)
Registers the OSAdapter Flow implementation.
Flow attributes (OCORA PI API Annex A.1 leaves fl_attr's content as "to be defined" - this is this fr...
Configuration for rte_flow_open().
OSAdapter Flow operations vtable.