Class SubscriberHistory
Defined in File SubscriberHistory.h
Inheritance Relationships
Base Type
public eprosima::fastrtps::rtps::ReaderHistory
(Class ReaderHistory)
Class Documentation
-
class SubscriberHistory : public eprosima::fastrtps::rtps::ReaderHistory
Class SubscriberHistory, container of the different CacheChanges of a subscriber
Read or take data methods.
Methods to read or take data from the History.
- param data
Pointer to the object where you want to read or take the information.
- param info
Pointer to a SampleInfo_t object where you want
- param max_blocking_time
Maximum time the function can be blocked. to store the information about the retrieved data
-
bool readNextData(void *data, SampleInfo_t *info, std::chrono::steady_clock::time_point &max_blocking_time)
-
bool takeNextData(void *data, SampleInfo_t *info, std::chrono::steady_clock::time_point &max_blocking_time)
Variants of incoming change processing.
Will be called with the history mutex taken.
- param change
[in] The received change
- param unknown_missing_changes_up_to
Number of missing changes before this one
- return
Public Functions
-
SubscriberHistory(const TopicAttributes &topic_att, fastdds::dds::TopicDataType *type, const fastrtps::ReaderQos &qos, uint32_t payloadMax, rtps::MemoryManagementPolicy_t mempolicy)
Constructor. Requires information about the subscriber.
- Parameters
topic_att – TopicAttributes.
type – TopicDataType.
qos – ReaderQoS policy.
payloadMax – Maximum payload size per change.
mempolicy – Set whether the payloads ccan dynamically resized or not.
-
~SubscriberHistory() override
-
virtual iterator remove_change_nts(const_iterator removal, bool release = true) override
Remove a specific change from the history. No Thread Safe
- Parameters
removal – iterator to the CacheChange_t to remove.
release – defaults to true and hints if the CacheChange_t should return to the pool
- Returns
iterator to the next CacheChange_t or end iterator.
-
virtual bool can_change_be_added_nts(const rtps::GUID_t &writer_guid, uint32_t total_payload_size, size_t unknown_missing_changes_up_to, bool &will_never_be_accepted) const override
Check if a new change can be added to this history.
- Parameters
writer_guid – [in] GUID of the writer where the change came from.
total_payload_size – [in] Total payload size of the incoming change.
unknown_missing_changes_up_to – [in] The number of changes from the same writer with a lower sequence number that could potentially be received in the future.
will_never_be_accepted – [out] When the method returns
false
, this parameter will inform whether the change could be accepted in the future or not.
- Pre
change should not be present in the history
- Returns
Whether a call to received_change will succeed when called with the same arguments.
-
virtual bool received_change(rtps::CacheChange_t *change, size_t unknown_missing_changes_up_to) override
Called when a change is received by the Subscriber. Will add the change to the history.
- Parameters
change – [in] The received change
unknown_missing_changes_up_to – Number of missing changes before this one
- Pre
Change should not be already present in the history.
- Returns
-
virtual bool completed_change(rtps::CacheChange_t *change) override
Called when a fragmented change is received completely by the Subscriber. Will find its instance and store it.
- Parameters
change – [in] The received change
- Pre
Change should be already present in the history.
- Returns
-
bool get_first_untaken_info(SampleInfo_t *info)
Returns information about the first untaken sample.
- Parameters
info – [out] Pointer to a SampleInfo_t structure to store first untaken sample information.
- Returns
true if sample info was returned. false if there is no sample to take.
-
bool remove_change_sub(rtps::CacheChange_t *change)
This method is called to remove a change from the SubscriberHistory.
- Parameters
change – Pointer to the CacheChange_t.
- Returns
True if removed.
-
bool remove_change_sub(rtps::CacheChange_t *change, iterator &it)
This method is called to remove a change from the SubscriberHistory.
- Parameters
change – [in] Pointer to the CacheChange_t.
it – [inout] Iterator pointing to change on input. Will point to next valid change on output.
- Returns
True if removed.
-
bool set_next_deadline(const rtps::InstanceHandle_t &handle, const std::chrono::steady_clock::time_point &next_deadline_us)
A method to set the next deadline for the given instance.
- Parameters
handle – The handle to the instance
next_deadline_us – The time point when the deadline will occur
- Returns
True if the deadline was set correctly
-
bool get_next_deadline(rtps::InstanceHandle_t &handle, std::chrono::steady_clock::time_point &next_deadline_us)
A method to get the next instance handle that will miss the deadline and the time when the deadline will occur.
- Parameters
handle – The handle to the instance
next_deadline_us – The time point when the instance will miss the deadline
- Returns
True if the deadline was retrieved successfully