RTI Connext .NET API (legacy)
Version 6.1.2
|
Working with flow controllers. More...
Working with flow controllers.
Foo:
RTI Connext provides several built-in flow controllers.
The DDS::FlowController::DEFAULT_FLOW_CONTROLLER_NAME built-in flow controller provides the basic asynchronous writer behavior. When calling DDS::TypedDataWriter::write, the call signals the DDS::Publisher asynchronous publishing thread (DDS::PublisherQos::asynchronous_publisher) to send the actual data. As with any ASYNCHRONOUS_PUBLISH_MODE_QOS DDS::DataWriter, the DDS::TypedDataWriter::write call returns immediately afterwards. The data is sent immediately in the context of the DDS::Publisher asynchronous publishing thread.
When using the DDS::FlowController::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::FlowController::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).