15 #ifndef RMW_FASTRTPS_SHARED_CPP__CUSTOM_PUBLISHER_INFO_HPP_
16 #define RMW_FASTRTPS_SHARED_CPP__CUSTOM_PUBLISHER_INFO_HPP_
19 #include <condition_variable>
23 #include "fastdds/dds/core/status/BaseStatus.hpp"
24 #include "fastdds/dds/core/status/DeadlineMissedStatus.hpp"
25 #include "fastdds/dds/core/status/PublicationMatchedStatus.hpp"
26 #include "fastdds/dds/publisher/DataWriter.hpp"
27 #include "fastdds/dds/publisher/DataWriterListener.hpp"
28 #include "fastdds/dds/topic/Topic.hpp"
29 #include "fastdds/dds/topic/TypeSupport.hpp"
31 #include "fastdds/rtps/common/Guid.h"
32 #include "fastdds/rtps/common/InstanceHandle.h"
62 : deadline_changes_(false),
63 liveliness_changes_(false),
64 conditionMutex_(nullptr),
65 conditionVariable_(nullptr)
74 eprosima::fastdds::dds::DataWriter * ,
75 const eprosima::fastdds::dds::PublicationMatchedStatus & info)
final
78 if (info.current_count_change == 1) {
79 subscriptions_.insert(eprosima::fastrtps::rtps::iHandle2GUID(info.last_subscription_handle));
80 }
else if (info.current_count_change == -1) {
81 subscriptions_.erase(eprosima::fastrtps::rtps::iHandle2GUID(info.last_subscription_handle));
87 on_offered_deadline_missed(
88 eprosima::fastdds::dds::DataWriter * writer,
89 const eprosima::fastdds::dds::OfferedDeadlineMissedStatus & status)
final;
94 eprosima::fastdds::dds::DataWriter * writer,
95 const eprosima::fastdds::dds::LivelinessLostStatus & status)
final;
111 return subscriptions_.size();
118 conditionMutex_ = conditionMutex;
119 conditionVariable_ = conditionVariable;
126 conditionMutex_ =
nullptr;
127 conditionVariable_ =
nullptr;
136 std::atomic_bool deadline_changes_;
137 eprosima::fastdds::dds::OfferedDeadlineMissedStatus offered_deadline_missed_status_
140 std::atomic_bool liveliness_changes_;
141 eprosima::fastdds::dds::LivelinessLostStatus liveliness_lost_status_
148 #endif // RMW_FASTRTPS_SHARED_CPP__CUSTOM_PUBLISHER_INFO_HPP_