15 #ifndef RMW_FASTRTPS_SHARED_CPP__CUSTOM_SUBSCRIBER_INFO_HPP_ 
   16 #define RMW_FASTRTPS_SHARED_CPP__CUSTOM_SUBSCRIBER_INFO_HPP_ 
   19 #include <condition_variable> 
   24 #include "fastrtps/subscriber/Subscriber.h" 
   25 #include "fastrtps/subscriber/SubscriberListener.h" 
   58     deadline_changes_(false),
 
   59     liveliness_changes_(false),
 
   60     conditionMutex_(nullptr),
 
   61     conditionVariable_(nullptr)
 
   70     eprosima::fastrtps::Subscriber * sub, eprosima::fastrtps::rtps::MatchingInfo & info) 
final 
   74       if (eprosima::fastrtps::rtps::MATCHED_MATCHING == info.status) {
 
   75         publishers_.insert(info.remoteEndpointGuid);
 
   76       } 
else if (eprosima::fastrtps::rtps::REMOVED_MATCHING == info.status) {
 
   77         publishers_.erase(info.remoteEndpointGuid);
 
   91   on_requested_deadline_missed(
 
   92     eprosima::fastrtps::Subscriber *,
 
   93     const eprosima::fastrtps::RequestedDeadlineMissedStatus &) 
final;
 
   97   on_liveliness_changed(
 
   98     eprosima::fastrtps::Subscriber *,
 
   99     const eprosima::fastrtps::LivelinessChangedStatus &) 
final;
 
  115     conditionMutex_ = conditionMutex;
 
  116     conditionVariable_ = conditionVariable;
 
  123     conditionMutex_ = 
nullptr;
 
  124     conditionVariable_ = 
nullptr;
 
  130     return data_.load(std::memory_order_relaxed) > 0;
 
  138 #if FASTRTPS_VERSION_MAJOR == 1 && FASTRTPS_VERSION_MINOR < 9 
  139     uint64_t unread_count = sub->getUnreadCount();
 
  141     uint64_t unread_count = sub->get_unread_count();
 
  146     data_.store(unread_count, std::memory_order_relaxed);
 
  152     return publishers_.size();
 
  158   std::atomic_size_t data_;
 
  160   std::atomic_bool deadline_changes_;
 
  161   eprosima::fastrtps::RequestedDeadlineMissedStatus requested_deadline_missed_status_
 
  164   std::atomic_bool liveliness_changes_;
 
  165   eprosima::fastrtps::LivelinessChangedStatus liveliness_changed_status_
 
  174 #endif  // RMW_FASTRTPS_SHARED_CPP__CUSTOM_SUBSCRIBER_INFO_HPP_