Class WriterHistory
Defined in File WriterHistory.hpp
Inheritance Relationships
Base Type
public eprosima::fastdds::rtps::History
(Class History)
Class Documentation
-
class WriterHistory : public eprosima::fastdds::rtps::History
Class WriterHistory, container of the different CacheChanges of a writer
Public Functions
-
FASTDDS_EXPORTED_API WriterHistory(const HistoryAttributes &att)
Construct a WriterHistory.
- Parameters:
att – Attributes configuring the WriterHistory.
Construct a WriterHistory with a custom payload pool.
- Parameters:
att – Attributes configuring the WriterHistory.
payload_pool – Pool of payloads to be used by the WriterHistory.
Construct a WriterHistory with custom payload and change pools.
- Parameters:
att – Attributes configuring the WriterHistory.
payload_pool – Pool of payloads to be used by the WriterHistory.
change_pool – Pool of changes to be used by the WriterHistory.
-
virtual FASTDDS_EXPORTED_API ~WriterHistory() override
- FASTDDS_EXPORTED_API const std::shared_ptr< IPayloadPool > & get_payload_pool () const
Get the payload pool used by this history.
- Returns:
Reference to the payload pool used by this history.
- FASTDDS_EXPORTED_API const std::shared_ptr< IChangePool > & get_change_pool () const
Get the change pool used by this history.
- Returns:
Reference to the change pool used by this history.
- FASTDDS_EXPORTED_API CacheChange_t * create_change (ChangeKind_t change_kind, InstanceHandle_t handle=c_InstanceHandle_Unknown)
Create a new CacheChange_t object.
- Parameters:
change_kind – Kind of the change.
handle – InstanceHandle_t of the change.
- Returns:
Pointer to the new CacheChange_t object.
- Pre:
A writer has been associated with this history
- FASTDDS_EXPORTED_API CacheChange_t * create_change (uint32_t payload_size, ChangeKind_t change_kind, InstanceHandle_t handle=c_InstanceHandle_Unknown)
Create a new CacheChange_t object with a specific payload size.
- Parameters:
payload_size – Size of the payload.
change_kind – Kind of the change.
handle – InstanceHandle_t of the change.
- Returns:
Pointer to the new CacheChange_t object.
- Pre:
A writer has been associated with this history
- FASTDDS_EXPORTED_API bool add_change (CacheChange_t *a_change)
Add a CacheChange_t to the WriterHistory.
- Parameters:
a_change – Pointer to the CacheChange_t to be added.
- Returns:
True if added.
- FASTDDS_EXPORTED_API bool add_change (CacheChange_t *a_change, WriteParams &wparams)
Add a CacheChange_t to the WriterHistory.
- Parameters:
a_change – Pointer to the CacheChange_t to be added.
wparams – Extra write parameters.
- Returns:
True if added.
- virtual FASTDDS_EXPORTED_API 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 change for removal
release – specifies if the change should be return to the pool
- Returns:
iterator to the next change if any
- virtual 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. No Thread Safe
- Parameters:
removal – iterator to the change for removal
release – specifies if the change should be return to the pool
max_blocking_time – [in] Maximum time this method has to complete the task.
- Returns:
iterator to the next change if any
- virtual FASTDDS_EXPORTED_API bool matches_change (const CacheChange_t *inner, CacheChange_t *outer) override
Criteria to search a specific CacheChange_t on history
- Parameters:
inner – change to compare
outer – change for comparison
- Returns:
true if inner matches outer criteria
- virtual FASTDDS_EXPORTED_API bool remove_change_g (CacheChange_t *a_change)
- virtual FASTDDS_EXPORTED_API bool remove_change_g (CacheChange_t *a_change, const std::chrono::time_point< std::chrono::steady_clock > &max_blocking_time)
- FASTDDS_EXPORTED_API bool remove_change (const SequenceNumber_t &sequence_number)
- FASTDDS_EXPORTED_API CacheChange_t * remove_change_and_reuse (const SequenceNumber_t &sequence_number)
- FASTDDS_EXPORTED_API bool remove_min_change ()
Remove the CacheChange_t with the minimum sequenceNumber.
- Returns:
True if correctly removed.
- FASTDDS_EXPORTED_API bool remove_min_change (const std::chrono::time_point< std::chrono::steady_clock > &max_blocking_time)
Remove the CacheChange_t with the minimum sequenceNumber.
- Parameters:
max_blocking_time – [in] Maximum time this method has to complete the task.
- Returns:
True if correctly removed.
- inline FASTDDS_EXPORTED_API SequenceNumber_t next_sequence_number () const
- FASTDDS_EXPORTED_API bool release_change (CacheChange_t *ch)
Release a change when it is not being used anymore.
- Parameters:
ch – Pointer to the cache change to be released.
- Returns:
whether the operation succeeded or not
- Pre:
A writer has been associated with this history
ch
is notnullptr
ch
points to a cache change obtained from a call tothis->create_change
- Post:
memory pointed to by
ch
is not accessed
- FASTDDS_EXPORTED_API bool remove_change (CacheChange_t *ch)
Introduce base class method into scope.
- FASTDDS_EXPORTED_API bool remove_change (CacheChange_t *ch, const std::chrono::time_point< std::chrono::steady_clock > &max_blocking_time)
Introduce base class method into scope.
- inline FASTDDS_EXPORTED_API iterator remove_change (const_iterator removal, bool release=true)
Introduce base class method into scope.
Protected Functions
- virtual FASTDDS_EXPORTED_API void do_release_cache (CacheChange_t *ch) override
-
bool add_change_(CacheChange_t *a_change, WriteParams &wparams, std::chrono::time_point<std::chrono::steady_clock> max_blocking_time = std::chrono::steady_clock::now() + std::chrono::hours(24))
Introduce a change into the history, and let the associated writer send it.
- Parameters:
a_change – [inout] The change to be added. Its
sequenceNumber
and sourceTimestamp will be filled by this method. Itswparams
will be filled from parameterwparams
.wparams – [inout] On input, it holds the WriteParams to be copied into
a_change
. On output, will be filled with the sample identity assigned toa_change
.max_blocking_time – [in] Maximum time point the writer is allowed to be blocked till the change is put into the wire or the sending queue.
- Returns:
whether
a_change
could be added to the history.
-
template<typename PreCommitHook>
inline bool add_change_with_commit_hook(CacheChange_t *a_change, WriteParams &wparams, PreCommitHook pre_commit, std::chrono::time_point<std::chrono::steady_clock> max_blocking_time) Introduce a change into the history, and let the associated writer send it.
- Parameters:
a_change – [inout] The change to be added. Its
sequenceNumber
and sourceTimestamp will be filled by this method. Itswparams
will be filled from parameterwparams
.wparams – [inout] On input, it holds the WriteParams to be copied into
a_change
. On output, will be filled with the sample identity assigned toa_change
.pre_commit – [in] Functor called after
a_change
has been added to the history, and its information has been filled, but before the writer is notified of the insertion.max_blocking_time – [in] Maximum time point the writer is allowed to be blocked till the change is put into the wire or the sending queue.
- Returns:
whether
a_change
could be added to the history.
Protected Attributes
-
SequenceNumber_t m_lastCacheChangeSeqNum = {}
Last CacheChange Sequence Number added to the History.
-
BaseWriter *mp_writer = nullptr
Pointer to the associated writer.
-
uint32_t high_mark_for_frag_ = 0
-
FASTDDS_EXPORTED_API WriterHistory(const HistoryAttributes &att)