RTI Connext Traditional C++ API  Version 7.0.0
DDSFlowController Class Referenceabstract

<<interface>> A flow controller is the object responsible for shaping the network traffic by determining when attached asynchronous DDSDataWriter instances are allowed to write data. More...

Public Member Functions

virtual DDS_ReturnCode_t set_property (const struct DDS_FlowControllerProperty_t &prop)=0
 Sets the DDSFlowController property. More...
 
virtual DDS_ReturnCode_t get_property (struct DDS_FlowControllerProperty_t &prop)=0
 Gets the DDSFlowController property. More...
 
virtual DDS_ReturnCode_t trigger_flow ()=0
 Provides an external trigger to the DDSFlowController. More...
 
virtual const char * get_name ()=0
 Returns the name of the DDSFlowController. More...
 
virtual DDSDomainParticipantget_participant ()=0
 Returns the DDSDomainParticipant to which the DDSFlowController belongs. More...
 

Detailed Description

<<interface>> A flow controller is the object responsible for shaping the network traffic by determining when attached asynchronous DDSDataWriter instances are allowed to write data.

QoS:
DDS_FlowControllerProperty_t

Member Function Documentation

◆ set_property()

virtual DDS_ReturnCode_t DDSFlowController::set_property ( const struct DDS_FlowControllerProperty_t prop)
pure virtual

Sets the DDSFlowController property.

This operation modifies the property of the DDSFlowController.

Once a DDSFlowController has been instantiated, only the DDS_FlowControllerProperty_t::token_bucket can be changed. The DDS_FlowControllerProperty_t::scheduling_policy is immutable.

A new DDS_FlowControllerTokenBucketProperty_t::period only takes effect at the next scheduled token distribution time (as determined by its previous value).

Parameters
prop<<in>> The new DDS_FlowControllerProperty_t. Property must be consistent. Immutable fields cannot be changed after DDSFlowController has been created. The special value DDS_FLOW_CONTROLLER_PROPERTY_DEFAULT can be used to indicate that the property of the DDSFlowController should be changed to match the current default DDS_FlowControllerProperty_t set in the DDSDomainParticipant.
Returns
One of the Standard Return Codes, DDS_RETCODE_IMMUTABLE_POLICY, or DDS_RETCODE_INCONSISTENT_POLICY.
See also
DDS_FlowControllerProperty_t for rules on consistency among property values.

◆ get_property()

virtual DDS_ReturnCode_t DDSFlowController::get_property ( struct DDS_FlowControllerProperty_t prop)
pure virtual

Gets the DDSFlowController property.

Parameters
prop<<in>> DDSFlowController to be filled in.
Returns
One of the Standard Return Codes

◆ trigger_flow()

virtual DDS_ReturnCode_t DDSFlowController::trigger_flow ( )
pure virtual

Provides an external trigger to the DDSFlowController.

Typically, a DDSFlowController uses an internal trigger to periodically replenish its tokens. The period by which this trigger is called is determined by the DDS_FlowControllerTokenBucketProperty_t::period property setting.

This function provides an additional, external trigger to the DDSFlowController. This trigger adds DDS_FlowControllerTokenBucketProperty_t::tokens_added_per_period tokens each time it is called (subject to the other property settings of the DDSFlowController).

An on-demand DDSFlowController can be created with a DDS_DURATION_INFINITE as DDS_FlowControllerTokenBucketProperty_t::period, in which case the only trigger source is external (i.e. the FlowController is solely triggered by the user on demand).

DDSFlowController::trigger_flow can be called on both strict on-demand FlowController and hybrid FlowController (internally and externally triggered).

Returns
One of the Standard Return Codes

◆ get_name()

virtual const char* DDSFlowController::get_name ( )
pure virtual

Returns the name of the DDSFlowController.

Returns
The name of the DDSFlowController.

◆ get_participant()

virtual DDSDomainParticipant* DDSFlowController::get_participant ( )
pure virtual

Returns the DDSDomainParticipant to which the DDSFlowController belongs.

Returns
The DDSDomainParticipant to which the DDSFlowController belongs.