RTI Connext C API
Version 5.1.0
|
Working with flow controllers. More...
Working with flow controllers.
Foo:
RTI Connext provides several built-in flow controllers.
The DDS_DEFAULT_FLOW_CONTROLLER_NAME built-in flow controller provides the basic asynchronous writer behavior. When calling FooDataWriter_write, the call signals the DDS_Publisher asynchronous publishing thread (DDS_PublisherQos::asynchronous_publisher) to send the actual data. As with any DDS_ASYNCHRONOUS_PUBLISH_MODE_QOS DDS_DataWriter, the FooDataWriter_write call returns immediately afterwards. The data is sent immediately in the context of the DDS_Publisher asynchronous publishing thread.
When using the DDS_FIXED_RATE_FLOW_CONTROLLER_NAME flow controller, data is also sent in the context of the DDS_Publisher asynchronous publishing thread, but at a regular fixed interval. The thread accumulates samples from different DDS_DataWriter instances and generates data on the wire only once per DDS_FlowControllerTokenBucketProperty_t::period.
In contrast, the DDS_ON_DEMAND_FLOW_CONTROLLER_NAME flow controller permits flow only when DDS_FlowController_trigger_flow is called. The data is still sent in the context of the DDS_Publisher asynchronous publishing thread. The thread accumulates samples from different DDS_DataWriter instances (across any DDS_Publisher) and sends all data since the previous trigger.
The properties of the built-in DDS_FlowController instances can be adjusted.
tokens_added_per_period
and bytes_per_token
permit).