RTI Connext Java API
Version 5.1.0
|
Working with flow controllers. More...
Working with flow controllers.
Foo:
RTI Connext provides several built-in flow controllers.
The com.rti.dds.publication.FlowController.DEFAULT_FLOW_CONTROLLER_NAME built-in flow controller provides the basic asynchronous writer behavior. When calling com.rti.ndds.example.FooDataWriter.write, the call signals the com.rti.dds.publication.Publisher asynchronous publishing thread (com.rti.dds.publication.PublisherQos.asynchronous_publisher) to send the actual data. As with any com.rti.dds.infrastructure.PublishModeQosPolicyKind.PublishModeQosPolicyKind.ASYNCHRONOUS_PUBLISH_MODE_QOS com.rti.dds.publication.DataWriter, the com.rti.ndds.example.FooDataWriter.write call returns immediately afterwards. The data is sent immediately in the context of the com.rti.dds.publication.Publisher asynchronous publishing thread.
When using the com.rti.dds.publication.FlowController.FIXED_RATE_FLOW_CONTROLLER_NAME flow controller, data is also sent in the context of the com.rti.dds.publication.Publisher asynchronous publishing thread, but at a regular fixed interval. The thread accumulates samples from different com.rti.dds.publication.DataWriter instances and generates data on the wire only once per com.rti.dds.publication.FlowControllerTokenBucketProperty_t.period.
In contrast, the com.rti.dds.publication.FlowController.ON_DEMAND_FLOW_CONTROLLER_NAME flow controller permits flow only when com.rti.dds.publication.FlowController.trigger_flow is called. The data is still sent in the context of the com.rti.dds.publication.Publisher asynchronous publishing thread. The thread accumulates samples from different com.rti.dds.publication.DataWriter instances (across any com.rti.dds.publication.Publisher) and sends all data since the previous trigger.
The properties of the built-in com.rti.dds.publication.FlowController instances can be adjusted.
tokens_added_per_period
and bytes_per_token
permit).