19.2.6.1. History

class History

Class History, container of the different CacheChanges and the methods to access them.

Subclassed by eprosima::fastdds::rtps::ReaderHistory, eprosima::fastdds::rtps::WriterHistory

Public Functions

inline bool isFull()

Check if the history is full

Returns:

true if the History is full.

inline size_t getHistorySize()

Get the History size.

Returns:

Size of the history.

const_iterator find_change_nts(CacheChange_t *ch)

Find a specific change in the history using the matches_change method criteria. No Thread Safe

Parameters:

ch – Pointer to the CacheChange_t to search for.

Returns:

an iterator if a suitable change is found

virtual iterator remove_change_nts(const_iterator removal, bool release = true)

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 iterator remove_change_nts(const_iterator removal, const std::chrono::time_point<std::chrono::steady_clock> &max_blocking_time, bool release = true)

Remove a specific change from the history. No Thread Safe

Parameters:
  • removal – iterator to the CacheChange_t to remove.

  • max_blocking_time[in] Maximum time this method has to complete the task.

  • 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.

bool remove_all_changes()

Remove all changes from the History

Returns:

True if everything was correctly removed.

bool remove_change(CacheChange_t *ch)

Remove a specific change from the history.

Parameters:

ch – Pointer to the CacheChange_t.

Returns:

True if removed.

bool remove_change(CacheChange_t *ch, const std::chrono::time_point<std::chrono::steady_clock> &max_blocking_time)

Remove a specific change from the history.

Parameters:
  • ch – Pointer to the CacheChange_t.

  • max_blocking_time[in] Maximum time this method has to complete the task.

Returns:

True if removed.

inline const_iterator find_change(CacheChange_t *ch)

Find a specific change in the history using the matches_change method criteria.

Parameters:

ch – Pointer to the CacheChange_t to search for.

Returns:

an iterator if a suitable change is found

virtual bool matches_change(const CacheChange_t *ch_inner, CacheChange_t *ch_outer)

Verifies if an element of the changes collection matches a given change Derived classes have more info on how to identify univocally a change and should override.

Parameters:
  • ch_inner – element of the collection to compare with the given change

  • ch_outer – Pointer to the CacheChange_t to identify.

Returns:

true if the iterator identifies this change.

inline iterator remove_change(const_iterator removal, bool release = true)

Remove a specific change from the history.

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.

inline iterator changesBegin()

Get the beginning of the changes history iterator.

Returns:

Iterator to the beginning of the vector.

inline iterator changesEnd()

Get the end of the changes history iterator.

Returns:

Iterator to the end of the vector.

bool get_min_change(CacheChange_t **min_change)

Get the minimum CacheChange_t.

Parameters:

min_change – Pointer to pointer to the minimum change.

Returns:

True if correct.

bool get_max_change(CacheChange_t **max_change)

Get the maximum CacheChange_t.

Parameters:

max_change – Pointer to pointer to the maximum change.

Returns:

True if correct.

inline uint32_t getTypeMaxSerialized()

Get the maximum serialized payload size

Returns:

Maximum serialized payload size

inline RecursiveTimedMutex *getMutex() const

Get the mutex.

Returns:

Mutex

bool get_earliest_change(CacheChange_t **change)

A method to get the change with the earliest timestamp.

Parameters:

change – Pointer to pointer to earliest change

Returns:

True on success

Public Members

HistoryAttributes m_att

Attributes of the History.