RTI Connext Java API  Version 6.0.1
 All Classes Namespaces Functions Variables Groups Pages
Flow Controllers

<<extension>> com.rti.dds.publication.FlowController and associated elements More...

Classes

interface  FlowController
 <<interface>> A flow controller is the object responsible for shaping the network traffic by determining when attached asynchronous com.rti.dds.publication.DataWriter instances are allowed to write data. More...
 
class  FlowControllerProperty_t
 Determines the flow control characteristics of the com.rti.dds.publication.FlowController. More...
 
class  FlowControllerSchedulingPolicy
 Kinds of flow controller scheduling policy. More...
 
class  FlowControllerTokenBucketProperty_t
 com.rti.dds.publication.FlowController uses the popular token bucket approach for open loop network flow control. The flow control characteristics are determined by the token bucket properties. More...
 

Variables

static final String DEFAULT_FLOW_CONTROLLER_NAME
 [default] Special value of com.rti.dds.infrastructure.PublishModeQosPolicy.flow_controller_name that refers to the built-in default flow controller.
 
static final String FIXED_RATE_FLOW_CONTROLLER_NAME
 Special value of com.rti.dds.infrastructure.PublishModeQosPolicy.flow_controller_name that refers to the built-in fixed-rate flow controller.
 
static final String ON_DEMAND_FLOW_CONTROLLER_NAME
 Special value of com.rti.dds.infrastructure.PublishModeQosPolicy.flow_controller_name that refers to the built-in on-demand flow controller.
 

Detailed Description

<<extension>> com.rti.dds.publication.FlowController and associated elements

com.rti.dds.publication.FlowController provides the network traffic shaping capability to asynchronous com.rti.dds.publication.DataWriter instances. For use cases and advantages of publishing asnychronously, please refer to com.rti.dds.infrastructure.PublishModeQosPolicy of com.rti.dds.publication.DataWriterQos.

See Also
com.rti.dds.infrastructure.PublishModeQosPolicy
com.rti.dds.publication.DataWriterQos.publish_mode
com.rti.dds.infrastructure.AsynchronousPublisherQosPolicy

Variable Documentation

final String DEFAULT_FLOW_CONTROLLER_NAME
static

[default] Special value of com.rti.dds.infrastructure.PublishModeQosPolicy.flow_controller_name that refers to the built-in default flow controller.

RTI Connext provides several built-in com.rti.dds.publication.FlowController for use with an asynchronous com.rti.dds.publication.DataWriter. The user can choose to use the built-in flow controllers and optionally modify their properties or can create a custom flow controller.

By default, flow control is disabled. That is, the built-in com.rti.dds.publication.FlowController.DEFAULT_FLOW_CONTROLLER_NAME flow controller does not apply any flow control. Instead, it allows data to be sent asynchronously as soon as it is written by the com.rti.dds.publication.DataWriter.

Essentially, this is equivalent to a user-created com.rti.dds.publication.FlowController with the following com.rti.dds.publication.FlowControllerProperty_t settings:

- com.rti.dds.publication.FlowControllerProperty_t.scheduling_policy = com.rti.dds.publication.FlowControllerSchedulingPolicy.FlowControllerSchedulingPolicy.EDF_FLOW_CONTROLLER_SCHED_POLICY

- com.rti.dds.publication.FlowControllerProperty_t.token_bucket max_tokens = com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH_UNLIMITED

- com.rti.dds.publication.FlowControllerProperty_t.token_bucket tokens_added_per_period = com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH_UNLIMITED

- com.rti.dds.publication.FlowControllerProperty_t.token_bucket tokens_leaked_per_period = 0

- com.rti.dds.publication.FlowControllerProperty_t.token_bucket period = 1 second

- com.rti.dds.publication.FlowControllerProperty_t.token_bucket bytes_per_token = com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH_UNLIMITED

See Also
com.rti.dds.publication.Publisher.create_datawriter
com.rti.dds.domain.DomainParticipant.lookup_flowcontroller
com.rti.dds.publication.FlowController.set_property
com.rti.dds.infrastructure.PublishModeQosPolicy
com.rti.dds.infrastructure.AsynchronousPublisherQosPolicy
final String FIXED_RATE_FLOW_CONTROLLER_NAME
static

Special value of com.rti.dds.infrastructure.PublishModeQosPolicy.flow_controller_name that refers to the built-in fixed-rate flow controller.

RTI Connext provides several builtin com.rti.dds.publication.FlowController for use with an asynchronous com.rti.dds.publication.DataWriter. The user can choose to use the built-in flow controllers and optionally modify their properties or can create a custom flow controller.

The built-in com.rti.dds.publication.FlowController.FIXED_RATE_FLOW_CONTROLLER_NAME flow controller shapes the network traffic by allowing data to be sent only once every second. Any accumulated samples destined for the same destination are coalesced into as few network packets as possible.

Essentially, this is equivalent to a user-created com.rti.dds.publication.FlowController with the following com.rti.dds.publication.FlowControllerProperty_t settings:

- com.rti.dds.publication.FlowControllerProperty_t.scheduling_policy = com.rti.dds.publication.FlowControllerSchedulingPolicy.FlowControllerSchedulingPolicy.EDF_FLOW_CONTROLLER_SCHED_POLICY

- com.rti.dds.publication.FlowControllerProperty_t.token_bucket max_tokens = com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH_UNLIMITED

- com.rti.dds.publication.FlowControllerProperty_t.token_bucket tokens_added_per_period = com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH_UNLIMITED

- com.rti.dds.publication.FlowControllerProperty_t.token_bucket tokens_leaked_per_period = com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH_UNLIMITED

- com.rti.dds.publication.FlowControllerProperty_t.token_bucket period = 1 second

- com.rti.dds.publication.FlowControllerProperty_t.token_bucket bytes_per_token = com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH_UNLIMITED

See Also
com.rti.dds.publication.Publisher.create_datawriter
com.rti.dds.domain.DomainParticipant.lookup_flowcontroller
com.rti.dds.publication.FlowController.set_property
com.rti.dds.infrastructure.PublishModeQosPolicy
com.rti.dds.infrastructure.AsynchronousPublisherQosPolicy
final String ON_DEMAND_FLOW_CONTROLLER_NAME
static

Special value of com.rti.dds.infrastructure.PublishModeQosPolicy.flow_controller_name that refers to the built-in on-demand flow controller.

RTI Connext provides several builtin com.rti.dds.publication.FlowController for use with an asynchronous com.rti.dds.publication.DataWriter. The user can choose to use the built-in flow controllers and optionally modify their properties or can create a custom flow controller.

The built-in com.rti.dds.publication.FlowController.ON_DEMAND_FLOW_CONTROLLER_NAME allows data to be sent only when the user calls com.rti.dds.publication.FlowController.trigger_flow. With each trigger, all accumulated data since the previous trigger is sent (across all com.rti.dds.publication.Publisher or com.rti.dds.publication.DataWriter instances). In other words, the network traffic shape is fully controlled by the user. Any accumulated samples destined for the same destination are coalesced into as few network packets as possible.

This external trigger source is ideal for users who want to implement some form of closed-loop flow control or who want to only put data on the wire every so many samples (e.g. with the number of samples based on com.rti.ndds.transport.Transport.Property_t.gather_send_buffer_count_max).

Essentially, this is equivalent to a user-created com.rti.dds.publication.FlowController with the following com.rti.dds.publication.FlowControllerProperty_t settings:

- com.rti.dds.publication.FlowControllerProperty_t.scheduling_policy = com.rti.dds.publication.FlowControllerSchedulingPolicy.FlowControllerSchedulingPolicy.EDF_FLOW_CONTROLLER_SCHED_POLICY

- com.rti.dds.publication.FlowControllerProperty_t.token_bucket max_tokens = com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH_UNLIMITED

- com.rti.dds.publication.FlowControllerProperty_t.token_bucket tokens_added_per_period = com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH_UNLIMITED

- com.rti.dds.publication.FlowControllerProperty_t.token_bucket tokens_leaked_per_period = com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH_UNLIMITED

- com.rti.dds.publication.FlowControllerProperty_t.token_bucket period = com.rti.dds.infrastructure.Duration_t.DURATION_INFINITE

- com.rti.dds.publication.FlowControllerProperty_t.token_bucket bytes_per_token = com.rti.dds.infrastructure.ResourceLimitsQosPolicy.LENGTH_UNLIMITED

See Also
com.rti.dds.publication.Publisher.create_datawriter
com.rti.dds.domain.DomainParticipant.lookup_flowcontroller
com.rti.dds.publication.FlowController.trigger_flow
com.rti.dds.publication.FlowController.set_property
com.rti.dds.infrastructure.PublishModeQosPolicy
com.rti.dds.infrastructure.AsynchronousPublisherQosPolicy

RTI Connext Java API Version 6.0.1 Copyright © Sat Nov 23 2019 Real-Time Innovations, Inc