Public Member Functions | |
virtual DDS_ReturnCode_t | set_property (const struct DDS_FlowControllerProperty_t &prop)=0 |
Sets the DDSFlowController property. | |
virtual DDS_ReturnCode_t | get_property (struct DDS_FlowControllerProperty_t &prop)=0 |
Gets the DDSFlowController property. | |
virtual DDS_ReturnCode_t | trigger_flow ()=0 |
Provides an external trigger to the DDSFlowController. | |
virtual const char * | get_name ()=0 |
Returns the name of the DDSFlowController. | |
virtual DDSDomainParticipant * | get_participant ()=0 |
Returns the DDSDomainParticipant to which the DDSFlowController belongs. |
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).
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. |
virtual DDS_ReturnCode_t DDSFlowController::get_property | ( | struct DDS_FlowControllerProperty_t & | prop | ) | [pure virtual] |
Gets the DDSFlowController property.
prop | <<in>> DDSFlowController to be filled in. |
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 DDSFlowController is solely triggered by the user on demand).
DDSFlowController::trigger_flow can be called on both strict on-demand DDSFlowController and hybrid DDSFlowController (internally and externally triggered).
virtual const char* DDSFlowController::get_name | ( | ) | [pure virtual] |
virtual DDSDomainParticipant* DDSFlowController::get_participant | ( | ) | [pure virtual] |
Returns the DDSDomainParticipant to which the DDSFlowController belongs.