17.2.2.11. LocatorSelector¶
-
class
eprosima::fastrtps::rtps
::
LocatorSelector
¶ A class used for the efficient selection of locators when sending data to multiple entities.
Algorithm:
Entries are added/removed with add_entry/remove_entry when matched/unmatched.
When data is to be sent:
A reference to this object is passed to the message group
For each submessage:
A call to reset is performed
A call to enable is performed per desired destination
If state_has_changed() returns true:
the message group is flushed
selection_start is called
for each transport:
transport_starts is called
transport handles the selection state of each entry
select may be called
Submessage is added to the message group
Public Functions
-
LocatorSelector
(const ResourceLimitedContainerConfig &entries_allocation)¶ Construct a LocatorSelector.
- Parameters
entries_allocation
: Allocation configuration regarding the number of remote entities.
-
void
clear
()¶ Clears all internal data.
-
bool
add_entry
(LocatorSelectorEntry *entry)¶ Add an entry to this selector.
- Parameters
entry
: Pointer to the LocatorSelectorEntry to add.
-
bool
remove_entry
(const GUID_t &guid)¶ Remove an entry from this selector.
- Parameters
guid
: Identifier of the entry to be removed.
-
void
reset
(bool enable_all)¶ Reset the enabling state of the selector.
- Parameters
enable_all
: Indicates whether entries should be initially enabled.
-
void
enable
(const GUID_t &guid)¶ Enable an entry given its GUID.
- Parameters
guid
: GUID of the entry to enable.
-
bool
state_has_changed
() const¶ Check if enabling state has changed.
- Return
true if the enabling state has changed, false otherwise.
-
void
selection_start
()¶ Reset the selection state of the selector.
-
ResourceLimitedVector<LocatorSelectorEntry*> &
transport_starts
()¶ Called when the selection algorithm starts for a specific transport.
Will set the temporary transport_should_process flag for all enabled entries.
- Return
a reference to the entries collection.
-
void
select
(size_t index)¶ Marks an entry as selected.
- Parameters
index
: The index of the entry to mark as selected.
-
size_t
selected_size
() const¶ Count the number of selected locators.
- Return
the number of selected locators.
-
bool
is_selected
(const Locator_t locator) const¶ Check if a locator is present in the selections of this object.
- Return
True if the locator has been selected, false otherwise.
- Parameters
locator
: The locator to be checked.
-
template<class
UnaryPredicate
>
voidfor_each
(UnaryPredicate action) const¶ Performs an action on each selected locator.
- Parameters
action
: Unary function that accepts a locator as argument. The function shall not modify its argument. This can either be a function pointer or a function object.
-
class
iterator
: public eprosima::fastdds::rtps::LocatorsIterator¶
-
struct
IteratorIndex
¶