20#ifndef FASTDDS_RTPS_HISTORY__READERHISTORY_HPP
21#define FASTDDS_RTPS_HISTORY__READERHISTORY_HPP
23#include <fastdds/rtps/history/History.hpp>
24#include <fastdds/rtps/common/CacheChange.hpp>
25#include <fastdds/dds/core/status/SampleRejectedStatus.hpp>
72 uint32_t total_payload_size,
73 size_t unknown_missing_changes_up_to,
74 bool& will_never_be_accepted)
const;
87 size_t unknown_missing_changes_up_to);
101 size_t unknown_missing_changes_up_to,
131 size_t unknown_missing_changes_up_to,
135 (void)unknown_missing_changes_up_to;
136 (void)rejection_reason;
157 bool release =
true)
override;
169 const std::chrono::time_point<std::chrono::steady_clock>& max_blocking_time,
170 bool release =
true)
override;
201 const GUID_t& writer_guid);
205 const GUID_t& writerGuid);
217 const GUID_t& writer_guid,
227 const GUID_t& writer_guid,
228 const uint32_t ownership_strength)
230 static_cast<void>(writer_guid);
231 static_cast<void>(ownership_strength);
239 template<
typename Pred>
246 std::lock_guard<RecursiveTimedMutex> guard(*
mp_mutex);
247 std::vector<CacheChange_t*>::iterator chit =
m_changes.begin();
Class HistoryAttributes, to specify the attributes of a WriterHistory or a ReaderHistory.
Definition HistoryAttributes.hpp:39
Class History, container of the different CacheChanges and the methods to access them.
Definition History.hpp:45
std::vector< CacheChange_t * >::iterator iterator
Definition History.hpp:58
FASTDDS_EXPORTED_API bool remove_change(CacheChange_t *ch)
Remove a specific change from the history.
std::vector< CacheChange_t * >::const_iterator const_iterator
Definition History.hpp:60
RecursiveTimedMutex * mp_mutex
Mutex for the History.
Definition History.hpp:269
std::vector< CacheChange_t * > m_changes
Vector of pointers to the CacheChange_t.
Definition History.hpp:263
Class RTPSReader, manages the reception of data from its matched writers.
Definition RTPSReader.hpp:54
Class ReaderHistory, container of the different CacheChanges of a reader.
Definition ReaderHistory.hpp:39
FASTDDS_EXPORTED_API ReaderHistory(const HistoryAttributes &att)
Constructor of the ReaderHistory.
FASTDDS_EXPORTED_API iterator remove_change_nts(const_iterator removal, const std::chrono::time_point< std::chrono::steady_clock > &max_blocking_time, bool release=true) override
Remove a specific change from the history.
FASTDDS_EXPORTED_API virtual bool completed_change(rtps::CacheChange_t *change)
Called when a fragmented change is received completely by the Subscriber.
Definition ReaderHistory.hpp:114
virtual FASTDDS_EXPORTED_API void writer_update_its_ownership_strength_nts(const GUID_t &writer_guid, const uint32_t ownership_strength)
This function should be called by reader if a writer updates its ownership strength.
Definition ReaderHistory.hpp:226
virtual FASTDDS_EXPORTED_API bool received_change(CacheChange_t *change, size_t unknown_missing_changes_up_to, fastdds::dds::SampleRejectedStatusKind &rejection_reason)
Virtual method that is called when a new change is received.
Definition ReaderHistory.hpp:99
FASTDDS_EXPORTED_API bool add_change(CacheChange_t *a_change)
Add a CacheChange_t to the ReaderHistory.
FASTDDS_EXPORTED_API bool get_min_change_from(CacheChange_t **min_change, const GUID_t &writerGuid)
FASTDDS_EXPORTED_API iterator remove_change_nts(const_iterator removal, bool release=true) override
Remove a specific change from the history.
FASTDDS_EXPORTED_API bool matches_change(const CacheChange_t *inner, CacheChange_t *outer) override
Criteria to search a specific CacheChange_t on history.
FASTDDS_EXPORTED_API void do_release_cache(CacheChange_t *ch) override
virtual FASTDDS_EXPORTED_API void writer_unmatched(const GUID_t &writer_guid, const SequenceNumber_t &last_notified_seq)
Called when a writer is unmatched from the reader holding this history.
FASTDDS_EXPORTED_API bool remove_changes_with_guid(const GUID_t &a_guid)
Remove all changes from the History that have a certain guid.
void remove_changes_with_pred(Pred pred)
Definition ReaderHistory.hpp:240
RTPSReader * mp_reader
Pointer to the reader.
Definition ReaderHistory.hpp:262
virtual FASTDDS_EXPORTED_API bool received_change(CacheChange_t *change, size_t unknown_missing_changes_up_to)
Virtual method that is called when a new change is received.
bool remove_fragmented_changes_until(const SequenceNumber_t &seq_num, const GUID_t &writer_guid)
Remove all fragmented changes from certain writer up to certain sequence number.
virtual FASTDDS_EXPORTED_API bool completed_change(CacheChange_t *change, size_t unknown_missing_changes_up_to, fastdds::dds::SampleRejectedStatusKind &rejection_reason)
Called when a fragmented change is received completely by the Subscriber.
Definition ReaderHistory.hpp:129
FASTDDS_EXPORTED_API ~ReaderHistory() override
virtual FASTDDS_EXPORTED_API bool can_change_be_added_nts(const GUID_t &writer_guid, uint32_t total_payload_size, size_t unknown_missing_changes_up_to, bool &will_never_be_accepted) const
Check if a new change can be added to this history.
SampleRejectedStatusKind
An enum with the possible values for the sample rejected reason.
Definition SampleRejectedStatus.hpp:32
@ NOT_REJECTED
Default value.
Definition SampleRejectedStatus.hpp:34
Structure CacheChange_t, contains information on a specific CacheChange.
Definition CacheChange.hpp:78
Structure GUID_t, entity identifier, unique in DDS-RTPS Domain.
Definition Guid.hpp:40
Structure SequenceNumber_t, different for each change in the same writer.
Definition SequenceNumber.hpp:38