20 #ifndef PUBLISHERHISTORY_H_ 21 #define PUBLISHERHISTORY_H_ 22 #ifndef DOXYGEN_SHOULD_SKIP_THIS_PUBLIC 27 #include <fastdds/rtps/common/InstanceHandle.h> 28 #include <fastdds/rtps/common/Time_t.h> 29 #include <fastdds/rtps/history/WriterHistory.h> 30 #include <fastdds/rtps/resources/ResourceManagement.h> 31 #include <fastrtps/attributes/TopicAttributes.h> 32 #include <fastrtps/common/KeyedChanges.h> 33 #include <fastrtps/qos/QosPolicies.h> 56 rtps::MemoryManagementPolicy_t mempolicy);
73 const rtps::InstanceHandle_t& instance_handle,
74 std::unique_lock<RecursiveTimedMutex>& lock,
75 const std::chrono::time_point<std::chrono::steady_clock>& max_blocking_time);
86 rtps::CacheChange_t* change,
87 rtps::WriteParams& wparams,
88 std::unique_lock<RecursiveTimedMutex>& lock,
89 const std::chrono::time_point<std::chrono::steady_clock>& max_blocking_time);
111 rtps::CacheChange_t* change);
114 rtps::CacheChange_t* a_change);
117 const rtps::InstanceHandle_t& handle,
118 const rtps::SequenceNumber_t& seq_up_to);
127 const rtps::InstanceHandle_t& handle,
128 const std::chrono::steady_clock::time_point& next_deadline_us);
137 rtps::InstanceHandle_t& handle,
138 std::chrono::steady_clock::time_point& next_deadline_us);
146 const rtps::InstanceHandle_t& handle);
156 const rtps::InstanceHandle_t& handle,
157 std::unique_lock<RecursiveTimedMutex>& lock,
158 const std::chrono::time_point<std::chrono::steady_clock>& max_blocking_time);
162 typedef std::map<rtps::InstanceHandle_t, KeyedChanges> t_m_Inst_Caches;
165 t_m_Inst_Caches keyed_changes_;
167 std::chrono::steady_clock::time_point next_deadline_us_;
181 bool find_or_add_key(
182 const rtps::InstanceHandle_t& instance_handle,
183 t_m_Inst_Caches::iterator* map_it);
189 #endif // ifndef DOXYGEN_SHOULD_SKIP_THIS_PUBLIC 190 #endif // PUBLISHERHISTORY_H_ Class TopicAttributes, used by the user to define the attributes of the topic associated with a Publi...
Definition: TopicAttributes.h:35
bool is_key_registered(const rtps::InstanceHandle_t &handle)
Checks if the instance's key is registered.
void rebuild_instances()
Rebuild instances loaded from DB.
fastdds::dds::ResourceLimitsQosPolicy ResourceLimitsQosPolicy
Definition: QosPolicies.h:81
PublisherHistory(const TopicAttributes &topic_att, uint32_t payloadMax, rtps::MemoryManagementPolicy_t mempolicy)
Constructor of the PublisherHistory.
Class PublisherHistory, implementing a WriterHistory with support for keyed topics and HistoryQOS...
Definition: PublisherHistory.h:43
virtual ~PublisherHistory()
eProsima namespace.
Definition: LibrarySettingsAttributes.h:23
bool wait_for_acknowledgement_last_change(const rtps::InstanceHandle_t &handle, std::unique_lock< RecursiveTimedMutex > &lock, const std::chrono::time_point< std::chrono::steady_clock > &max_blocking_time)
Waits till the last change in the instance history has been acknowledged.
bool get_next_deadline(rtps::InstanceHandle_t &handle, std::chrono::steady_clock::time_point &next_deadline_us)
Returns the deadline for the instance that is next going to 'expire'.
bool set_next_deadline(const rtps::InstanceHandle_t &handle, const std::chrono::steady_clock::time_point &next_deadline_us)
Sets the next deadline for the given instance.
bool register_instance(const rtps::InstanceHandle_t &instance_handle, std::unique_lock< RecursiveTimedMutex > &lock, const std::chrono::time_point< std::chrono::steady_clock > &max_blocking_time)
Tries to reserve resources for the new instance.
bool removeAllChange(size_t *removed)
Remove all change from the associated history.
fastdds::dds::HistoryQosPolicy HistoryQosPolicy
Definition: QosPolicies.h:80
virtual bool remove_change_g(rtps::CacheChange_t *a_change)
bool removeMinChange()
Remove the change with the minimum sequence Number.
bool add_pub_change(rtps::CacheChange_t *change, rtps::WriteParams &wparams, std::unique_lock< RecursiveTimedMutex > &lock, const std::chrono::time_point< std::chrono::steady_clock > &max_blocking_time)
Add a change comming from the Publisher.
bool remove_change_pub(rtps::CacheChange_t *change)
Remove a change by the publisher History.
bool remove_instance_changes(const rtps::InstanceHandle_t &handle, const rtps::SequenceNumber_t &seq_up_to)