15 #ifndef RMW_FASTRTPS_SHARED_CPP__CUSTOM_PARTICIPANT_INFO_HPP_ 
   16 #define RMW_FASTRTPS_SHARED_CPP__CUSTOM_PARTICIPANT_INFO_HPP_ 
   23 #include "fastrtps/rtps/common/InstanceHandle.h" 
   24 #include "fastrtps/attributes/ParticipantAttributes.h" 
   25 #include "fastrtps/participant/Participant.h" 
   26 #include "fastrtps/participant/ParticipantListener.h" 
   35 #include "rmw_dds_common/context.hpp" 
   41 using rmw_dds_common::operator<<;
 
   62     const char * identifier,
 
   63     rmw_dds_common::Context * context)
 
   65     identifier_(identifier)
 
   69     eprosima::fastrtps::Participant *,
 
   70     eprosima::fastrtps::rtps::ParticipantDiscoveryInfo && info)
 override 
   72     switch (info.status) {
 
   73       case eprosima::fastrtps::rtps::ParticipantDiscoveryInfo::DISCOVERED_PARTICIPANT:
 
   75           auto map = rmw::impl::cpp::parse_key_value(info.info.m_userData);
 
   76           auto name_found = map.find(
"enclave");
 
   78           if (name_found == map.end()) {
 
   82             std::string(name_found->second.begin(), name_found->second.end());
 
   84           context->graph_cache.add_participant(
 
   86               identifier_, info.info.m_guid),
 
   90       case eprosima::fastrtps::rtps::ParticipantDiscoveryInfo::REMOVED_PARTICIPANT:
 
   92       case eprosima::fastrtps::rtps::ParticipantDiscoveryInfo::DROPPED_PARTICIPANT:
 
   93         context->graph_cache.remove_participant(
 
   95             identifier_, info.info.m_guid));
 
  103     eprosima::fastrtps::Participant *,
 
  104     eprosima::fastrtps::rtps::ReaderDiscoveryInfo && info)
 override 
  106     if (eprosima::fastrtps::rtps::ReaderDiscoveryInfo::CHANGED_QOS_READER != info.status) {
 
  108         eprosima::fastrtps::rtps::ReaderDiscoveryInfo::DISCOVERED_READER == info.status;
 
  109       process_discovery_info(info.info, is_alive, 
true);
 
  114     eprosima::fastrtps::Participant *,
 
  115     eprosima::fastrtps::rtps::WriterDiscoveryInfo && info)
 override 
  117     if (eprosima::fastrtps::rtps::WriterDiscoveryInfo::CHANGED_QOS_WRITER != info.status) {
 
  119         eprosima::fastrtps::rtps::WriterDiscoveryInfo::DISCOVERED_WRITER == info.status;
 
  120       process_discovery_info(info.info, is_alive, 
false);
 
  127   process_discovery_info(T & proxyData, 
bool is_alive, 
bool is_reader)
 
  134         context->graph_cache.add_entity(
 
  138           proxyData.topicName().to_string(),
 
  139           proxyData.typeName().to_string(),
 
  142             iHandle2GUID(proxyData.RTPSParticipantKey())),
 
  146         context->graph_cache.remove_entity(
 
  155   rmw_dds_common::Context * context;
 
  156   const char * 
const identifier_;
 
  159 #endif  // RMW_FASTRTPS_SHARED_CPP__CUSTOM_PARTICIPANT_INFO_HPP_