OpenDDS  Snapshot(2023/04/07-19:43)
Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
OpenDDS::DCPS::StaticParticipant Class Reference

#include <StaticDiscovery.h>

Inheritance diagram for OpenDDS::DCPS::StaticParticipant:
Inheritance graph
[legend]
Collaboration diagram for OpenDDS::DCPS::StaticParticipant:
Collaboration graph
[legend]

Classes

struct  DiscoveredParticipant
 

Public Member Functions

 StaticParticipant (GUID_t &guid, const DDS::DomainParticipantQos &qos, const EndpointRegistry &registry)
 
void init_bit (const DDS::Subscriber_var &bit_subscriber)
 
void fini_bit ()
 
void shutdown ()
 
DDS::Subscriber_ptr init_bit (DomainParticipantImpl *participant)
 
void fini_bit (DCPS::DomainParticipantImpl *participant)
 
bool attach_participant (DDS::DomainId_t domainId, const GUID_t &participantId)
 
bool remove_domain_participant (DDS::DomainId_t domain_id, const GUID_t &participantId)
 
bool ignore_domain_participant (DDS::DomainId_t domain, const GUID_t &myParticipantId, const GUID_t &ignoreId)
 
bool update_domain_participant_qos (DDS::DomainId_t domain, const GUID_t &participant, const DDS::DomainParticipantQos &qos)
 
DCPS::TopicStatus assert_topic (GUID_t &topicId, DDS::DomainId_t domainId, const GUID_t &participantId, const char *topicName, const char *dataTypeName, const DDS::TopicQos &qos, bool hasDcpsKey, DCPS::TopicCallbacks *topic_callbacks)
 
DCPS::TopicStatus find_topic (DDS::DomainId_t domainId, const GUID_t &participantId, const char *topicName, CORBA::String_out dataTypeName, DDS::TopicQos_out qos, GUID_t &topicId)
 
DCPS::TopicStatus remove_topic (DDS::DomainId_t domainId, const GUID_t &participantId, const GUID_t &topicId)
 
bool ignore_topic (DDS::DomainId_t domainId, const GUID_t &myParticipantId, const GUID_t &ignoreId)
 
bool update_topic_qos (const GUID_t &topicId, DDS::DomainId_t domainId, const GUID_t &participantId, const DDS::TopicQos &qos)
 
GUID_t add_publication (DDS::DomainId_t domainId, const GUID_t &participantId, const GUID_t &topicId, DCPS::DataWriterCallbacks_rch publication, const DDS::DataWriterQos &qos, const DCPS::TransportLocatorSeq &transInfo, const DDS::PublisherQos &publisherQos, const XTypes::TypeInformation &type_info)
 
bool remove_publication (DDS::DomainId_t domainId, const GUID_t &participantId, const GUID_t &publicationId)
 
bool ignore_publication (DDS::DomainId_t domainId, const GUID_t &participantId, const GUID_t &ignoreId)
 
bool update_publication_qos (DDS::DomainId_t domainId, const GUID_t &partId, const GUID_t &dwId, const DDS::DataWriterQos &qos, const DDS::PublisherQos &publisherQos)
 
void update_publication_locators (DDS::DomainId_t domainId, const GUID_t &partId, const GUID_t &dwId, const DCPS::TransportLocatorSeq &transInfo)
 
GUID_t add_subscription (DDS::DomainId_t domainId, const GUID_t &participantId, const GUID_t &topicId, DCPS::DataReaderCallbacks_rch subscription, const DDS::DataReaderQos &qos, const DCPS::TransportLocatorSeq &transInfo, const DDS::SubscriberQos &subscriberQos, const char *filterClassName, const char *filterExpr, const DDS::StringSeq &params, const XTypes::TypeInformation &type_info)
 
bool remove_subscription (DDS::DomainId_t domainId, const GUID_t &participantId, const GUID_t &subscriptionId)
 
bool ignore_subscription (DDS::DomainId_t domainId, const GUID_t &participantId, const GUID_t &ignoreId)
 
bool update_subscription_qos (DDS::DomainId_t domainId, const GUID_t &partId, const GUID_t &drId, const DDS::DataReaderQos &qos, const DDS::SubscriberQos &subQos)
 
bool update_subscription_params (DDS::DomainId_t domainId, const GUID_t &partId, const GUID_t &subId, const DDS::StringSeq &params)
 
void update_subscription_locators (DDS::DomainId_t domainId, const GUID_t &partId, const GUID_t &subId, const DCPS::TransportLocatorSeq &transInfo)
 
void ignore_domain_participant (const GUID_t &ignoreId)
 
virtual bool announce_domain_participant_qos ()
 
bool update_domain_participant_qos (const DDS::DomainParticipantQos &qos)
 
TopicStatus assert_topic (GUID_t &topicId, const char *topicName, const char *dataTypeName, const DDS::TopicQos &qos, bool hasDcpsKey, TopicCallbacks *topic_callbacks)
 
TopicStatus find_topic (const char *topicName, CORBA::String_out dataTypeName, DDS::TopicQos_out qos, GUID_t &topicId)
 
TopicStatus remove_topic (const GUID_t &topicId)
 
void ignore_topic (const GUID_t &ignoreId)
 
bool update_topic_qos (const GUID_t &topicId, const DDS::TopicQos &qos)
 
GUID_t add_publication (const GUID_t &topicId, DataWriterCallbacks_rch publication, const DDS::DataWriterQos &qos, const TransportLocatorSeq &transInfo, const DDS::PublisherQos &publisherQos, const XTypes::TypeInformation &type_info)
 
void remove_publication (const GUID_t &publicationId)
 
void ignore_publication (const GUID_t &ignoreId)
 
bool update_publication_qos (const GUID_t &publicationId, const DDS::DataWriterQos &qos, const DDS::PublisherQos &publisherQos)
 
void update_publication_locators (const GUID_t &publicationId, const TransportLocatorSeq &transInfo)
 
GUID_t add_subscription (const GUID_t &topicId, DataReaderCallbacks_rch subscription, const DDS::DataReaderQos &qos, const TransportLocatorSeq &transInfo, const DDS::SubscriberQos &subscriberQos, const char *filterClassName, const char *filterExpr, const DDS::StringSeq &params, const XTypes::TypeInformation &type_info)
 
void remove_subscription (const GUID_t &subscriptionId)
 
void ignore_subscription (const GUID_t &ignoreId)
 
bool update_subscription_qos (const GUID_t &subscriptionId, const DDS::DataReaderQos &qos, const DDS::SubscriberQos &subscriberQos)
 
bool update_subscription_params (const GUID_t &subId, const DDS::StringSeq &params)
 
void update_subscription_locators (const GUID_t &subId, const TransportLocatorSeq &transInfo)
 
DDS::Subscriber_var bit_subscriber () const
 
void type_lookup_service (const XTypes::TypeLookupService_rch type_lookup_service)
 
- Public Member Functions inherited from OpenDDS::DCPS::RcObject
virtual ~RcObject ()
 
virtual void _add_ref ()
 
virtual void _remove_ref ()
 
long ref_count () const
 
WeakObject_get_weak_object () const
 

Private Types

typedef DiscoveredParticipantMap::iterator DiscoveredParticipantIter
 
typedef DiscoveredParticipantMap::const_iterator DiscoveredParticipantConstIter
 

Private Member Functions

typedef OPENDDS_MAP_CMP (GUID_t, DiscoveredParticipant, GUID_tKeyLessThan) DiscoveredParticipantMap
 
void remove_discovered_participant (DiscoveredParticipantIter &iter)
 
virtual void remove_discovered_participant_i (DiscoveredParticipantIter &)
 
ParticipantBuiltinTopicDataDataReaderImplpart_bit ()
 
ParticipantLocationBuiltinTopicDataDataReaderImplpart_loc_bit ()
 
ConnectionRecordDataReaderImplconnection_record_bit ()
 
InternalThreadBuiltinTopicDataDataReaderImplinternal_thread_bit ()
 
StaticEndpointManagerendpoint_manager ()
 

Private Attributes

ACE_Thread_Mutex lock_
 
DDS::Subscriber_var bit_subscriber_
 
DDS::DomainParticipantQos qos_
 
DiscoveredParticipantMap participants_
 
RcHandle< StaticEndpointManagerendpoint_manager_
 

Additional Inherited Members

- Protected Member Functions inherited from OpenDDS::DCPS::RcObject
 RcObject ()
 

Detailed Description

Definition at line 479 of file StaticDiscovery.h.

Member Typedef Documentation

◆ DiscoveredParticipantConstIter

typedef DiscoveredParticipantMap::const_iterator OpenDDS::DCPS::StaticParticipant::DiscoveredParticipantConstIter
private

Definition at line 803 of file StaticDiscovery.h.

◆ DiscoveredParticipantIter

typedef DiscoveredParticipantMap::iterator OpenDDS::DCPS::StaticParticipant::DiscoveredParticipantIter
private

Definition at line 801 of file StaticDiscovery.h.

Constructor & Destructor Documentation

◆ StaticParticipant()

OpenDDS::DCPS::StaticParticipant::StaticParticipant ( GUID_t guid,
const DDS::DomainParticipantQos qos,
const EndpointRegistry registry 
)
inline

Definition at line 481 of file StaticDiscovery.h.

484  : qos_(qos)
485  , endpoint_manager_(make_rch<StaticEndpointManager>(guid, ref(lock_), ref(registry), ref(*this)))
486  {}
reference_wrapper< T > ref(T &r)
Definition: RcHandle_T.h:237
DDS::DomainParticipantQos qos_
RcHandle< StaticEndpointManager > endpoint_manager_

Member Function Documentation

◆ add_publication() [1/2]

GUID_t OpenDDS::DCPS::StaticParticipant::add_publication ( DDS::DomainId_t  domainId,
const GUID_t participantId,
const GUID_t topicId,
DCPS::DataWriterCallbacks_rch  publication,
const DDS::DataWriterQos qos,
const DCPS::TransportLocatorSeq transInfo,
const DDS::PublisherQos publisherQos,
const XTypes::TypeInformation type_info 
)

◆ add_publication() [2/2]

GUID_t OpenDDS::DCPS::StaticParticipant::add_publication ( const GUID_t topicId,
DataWriterCallbacks_rch  publication,
const DDS::DataWriterQos qos,
const TransportLocatorSeq transInfo,
const DDS::PublisherQos publisherQos,
const XTypes::TypeInformation type_info 
)
inline

Definition at line 675 of file StaticDiscovery.h.

682  {
683  return endpoint_manager().add_publication(topicId, publication, qos,
684  transInfo, publisherQos, type_info);
685  }
StaticEndpointManager & endpoint_manager()
GUID_t add_publication(const GUID_t &topicId, DataWriterCallbacks_rch publication, const DDS::DataWriterQos &qos, const TransportLocatorSeq &transInfo, const DDS::PublisherQos &publisherQos, const XTypes::TypeInformation &type_info)

◆ add_subscription() [1/2]

GUID_t OpenDDS::DCPS::StaticParticipant::add_subscription ( DDS::DomainId_t  domainId,
const GUID_t participantId,
const GUID_t topicId,
DCPS::DataReaderCallbacks_rch  subscription,
const DDS::DataReaderQos qos,
const DCPS::TransportLocatorSeq transInfo,
const DDS::SubscriberQos subscriberQos,
const char *  filterClassName,
const char *  filterExpr,
const DDS::StringSeq params,
const XTypes::TypeInformation type_info 
)

◆ add_subscription() [2/2]

GUID_t OpenDDS::DCPS::StaticParticipant::add_subscription ( const GUID_t topicId,
DataReaderCallbacks_rch  subscription,
const DDS::DataReaderQos qos,
const TransportLocatorSeq transInfo,
const DDS::SubscriberQos subscriberQos,
const char *  filterClassName,
const char *  filterExpr,
const DDS::StringSeq params,
const XTypes::TypeInformation type_info 
)
inline

Definition at line 712 of file StaticDiscovery.h.

722  {
723  return endpoint_manager().add_subscription(topicId, subscription, qos, transInfo,
724  subscriberQos, filterClassName, filterExpr, params, type_info);
725  }
StaticEndpointManager & endpoint_manager()
GUID_t add_subscription(const GUID_t &topicId, DataReaderCallbacks_rch subscription, const DDS::DataReaderQos &qos, const TransportLocatorSeq &transInfo, const DDS::SubscriberQos &subscriberQos, const char *filterClassName, const char *filterExpr, const DDS::StringSeq &params, const XTypes::TypeInformation &type_info)

◆ announce_domain_participant_qos()

virtual bool OpenDDS::DCPS::StaticParticipant::announce_domain_participant_qos ( )
inlinevirtual

Definition at line 622 of file StaticDiscovery.h.

623  {
624  return true;
625  }

◆ assert_topic() [1/2]

DCPS::TopicStatus OpenDDS::DCPS::StaticParticipant::assert_topic ( GUID_t topicId,
DDS::DomainId_t  domainId,
const GUID_t participantId,
const char *  topicName,
const char *  dataTypeName,
const DDS::TopicQos qos,
bool  hasDcpsKey,
DCPS::TopicCallbacks topic_callbacks 
)

◆ assert_topic() [2/2]

TopicStatus OpenDDS::DCPS::StaticParticipant::assert_topic ( GUID_t topicId,
const char *  topicName,
const char *  dataTypeName,
const DDS::TopicQos qos,
bool  hasDcpsKey,
TopicCallbacks topic_callbacks 
)
inline

Definition at line 634 of file StaticDiscovery.h.

References ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::DCPS_debug_level, LM_ERROR, and OpenDDS::DCPS::PRECONDITION_NOT_MET.

638  {
639  if (std::strlen(topicName) > 256 || std::strlen(dataTypeName) > 256) {
640  if (DCPS_debug_level) {
641  ACE_ERROR((LM_ERROR, ACE_TEXT("(%P|%t) ERROR LocalParticipant::assert_topic() - ")
642  ACE_TEXT("topic or type name length limit (256) exceeded\n")));
643  }
644  return PRECONDITION_NOT_MET;
645  }
646 
647  return endpoint_manager().assert_topic(topicId, topicName, dataTypeName, qos, hasDcpsKey, topic_callbacks);
648  }
#define ACE_ERROR(X)
StaticEndpointManager & endpoint_manager()
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
Definition: debug.cpp:30
ACE_TEXT("TCP_Factory")
TopicStatus assert_topic(GUID_t &topicId, const char *topicName, const char *dataTypeName, const DDS::TopicQos &qos, bool hasDcpsKey, TopicCallbacks *topic_callbacks)

◆ attach_participant()

bool OpenDDS::DCPS::StaticParticipant::attach_participant ( DDS::DomainId_t  domainId,
const GUID_t participantId 
)

◆ bit_subscriber()

DDS::Subscriber_var OpenDDS::DCPS::StaticParticipant::bit_subscriber ( ) const
inline

◆ connection_record_bit()

ConnectionRecordDataReaderImpl* OpenDDS::DCPS::StaticParticipant::connection_record_bit ( )
inlineprivate

Definition at line 832 of file StaticDiscovery.h.

References OpenDDS::DCPS::BUILT_IN_CONNECTION_RECORD_TOPIC.

833  {
834  DDS::Subscriber_var bit_sub(bit_subscriber());
835  if (!bit_sub.in())
836  return 0;
837 
838  DDS::DataReader_var d =
839  bit_sub->lookup_datareader(BUILT_IN_CONNECTION_RECORD_TOPIC);
840  return dynamic_cast<ConnectionRecordDataReaderImpl*>(d.in());
841  }
const char *const BUILT_IN_CONNECTION_RECORD_TOPIC
DDS::Subscriber_var bit_subscriber() const
DataReaderImpl_T< ConnectionRecord > ConnectionRecordDataReaderImpl

◆ endpoint_manager()

StaticEndpointManager& OpenDDS::DCPS::StaticParticipant::endpoint_manager ( )
inlineprivate

Definition at line 855 of file StaticDiscovery.h.

855 { return *endpoint_manager_; }
RcHandle< StaticEndpointManager > endpoint_manager_

◆ find_topic() [1/2]

DCPS::TopicStatus OpenDDS::DCPS::StaticParticipant::find_topic ( DDS::DomainId_t  domainId,
const GUID_t participantId,
const char *  topicName,
CORBA::String_out  dataTypeName,
DDS::TopicQos_out  qos,
GUID_t topicId 
)

◆ find_topic() [2/2]

TopicStatus OpenDDS::DCPS::StaticParticipant::find_topic ( const char *  topicName,
CORBA::String_out  dataTypeName,
DDS::TopicQos_out  qos,
GUID_t topicId 
)
inline

Definition at line 650 of file StaticDiscovery.h.

655  {
656  return endpoint_manager().find_topic(topicName, dataTypeName, qos, topicId);
657  }
StaticEndpointManager & endpoint_manager()
TopicStatus find_topic(const char *topicName, CORBA::String_out dataTypeName, DDS::TopicQos_out qos, GUID_t &topicId)

◆ fini_bit() [1/2]

void OpenDDS::DCPS::StaticParticipant::fini_bit ( )
inline

Definition at line 494 of file StaticDiscovery.h.

495  {
496  bit_subscriber_ = 0;
497  }
DDS::Subscriber_var bit_subscriber_

◆ fini_bit() [2/2]

void OpenDDS::DCPS::StaticParticipant::fini_bit ( DCPS::DomainParticipantImpl participant)

◆ ignore_domain_participant() [1/2]

bool OpenDDS::DCPS::StaticParticipant::ignore_domain_participant ( DDS::DomainId_t  domain,
const GUID_t myParticipantId,
const GUID_t ignoreId 
)

◆ ignore_domain_participant() [2/2]

void OpenDDS::DCPS::StaticParticipant::ignore_domain_participant ( const GUID_t ignoreId)
inline

Definition at line 611 of file StaticDiscovery.h.

References ACE_GUARD, and lock_.

612  {
614  endpoint_manager().ignore(ignoreId);
615 
616  DiscoveredParticipantIter iter = participants_.find(ignoreId);
617  if (iter != participants_.end()) {
619  }
620  }
#define ACE_GUARD(MUTEX, OBJ, LOCK)
StaticEndpointManager & endpoint_manager()
DiscoveredParticipantMap participants_
void ignore(const GUID_t &to_ignore)
void remove_discovered_participant(DiscoveredParticipantIter &iter)
DiscoveredParticipantMap::iterator DiscoveredParticipantIter

◆ ignore_publication() [1/2]

bool OpenDDS::DCPS::StaticParticipant::ignore_publication ( DDS::DomainId_t  domainId,
const GUID_t participantId,
const GUID_t ignoreId 
)

◆ ignore_publication() [2/2]

void OpenDDS::DCPS::StaticParticipant::ignore_publication ( const GUID_t ignoreId)
inline

Definition at line 692 of file StaticDiscovery.h.

References ACE_GUARD, and lock_.

693  {
695  return endpoint_manager().ignore(ignoreId);
696  }
#define ACE_GUARD(MUTEX, OBJ, LOCK)
StaticEndpointManager & endpoint_manager()
void ignore(const GUID_t &to_ignore)

◆ ignore_subscription() [1/2]

bool OpenDDS::DCPS::StaticParticipant::ignore_subscription ( DDS::DomainId_t  domainId,
const GUID_t participantId,
const GUID_t ignoreId 
)

◆ ignore_subscription() [2/2]

void OpenDDS::DCPS::StaticParticipant::ignore_subscription ( const GUID_t ignoreId)
inline

Definition at line 732 of file StaticDiscovery.h.

References ACE_GUARD, and lock_.

733  {
735  return endpoint_manager().ignore(ignoreId);
736  }
#define ACE_GUARD(MUTEX, OBJ, LOCK)
StaticEndpointManager & endpoint_manager()
void ignore(const GUID_t &to_ignore)

◆ ignore_topic() [1/2]

bool OpenDDS::DCPS::StaticParticipant::ignore_topic ( DDS::DomainId_t  domainId,
const GUID_t myParticipantId,
const GUID_t ignoreId 
)

◆ ignore_topic() [2/2]

void OpenDDS::DCPS::StaticParticipant::ignore_topic ( const GUID_t ignoreId)
inline

Definition at line 664 of file StaticDiscovery.h.

References ACE_GUARD, and lock_.

665  {
667  endpoint_manager().ignore(ignoreId);
668  }
#define ACE_GUARD(MUTEX, OBJ, LOCK)
StaticEndpointManager & endpoint_manager()
void ignore(const GUID_t &to_ignore)

◆ init_bit() [1/2]

void OpenDDS::DCPS::StaticParticipant::init_bit ( const DDS::Subscriber_var &  bit_subscriber)
inline

Definition at line 488 of file StaticDiscovery.h.

489  {
491  endpoint_manager_->init_bit();
492  }
DDS::Subscriber_var bit_subscriber() const
DDS::Subscriber_var bit_subscriber_
RcHandle< StaticEndpointManager > endpoint_manager_

◆ init_bit() [2/2]

DDS::Subscriber_ptr OpenDDS::DCPS::StaticParticipant::init_bit ( DomainParticipantImpl participant)

◆ internal_thread_bit()

InternalThreadBuiltinTopicDataDataReaderImpl* OpenDDS::DCPS::StaticParticipant::internal_thread_bit ( )
inlineprivate

Definition at line 843 of file StaticDiscovery.h.

References OpenDDS::DCPS::BUILT_IN_INTERNAL_THREAD_TOPIC.

844  {
845  DDS::Subscriber_var bit_sub(bit_subscriber());
846  if (!bit_sub.in())
847  return 0;
848 
849  DDS::DataReader_var d =
850  bit_sub->lookup_datareader(BUILT_IN_INTERNAL_THREAD_TOPIC);
851  return dynamic_cast<InternalThreadBuiltinTopicDataDataReaderImpl*>(d.in());
852  }
DataReaderImpl_T< InternalThreadBuiltinTopicData > InternalThreadBuiltinTopicDataDataReaderImpl
const char *const BUILT_IN_INTERNAL_THREAD_TOPIC
DDS::Subscriber_var bit_subscriber() const

◆ OPENDDS_MAP_CMP()

typedef OpenDDS::DCPS::StaticParticipant::OPENDDS_MAP_CMP ( GUID_t  ,
DiscoveredParticipant  ,
GUID_tKeyLessThan   
)
private

◆ part_bit()

ParticipantBuiltinTopicDataDataReaderImpl* OpenDDS::DCPS::StaticParticipant::part_bit ( )
inlineprivate

Definition at line 810 of file StaticDiscovery.h.

References OpenDDS::DCPS::BUILT_IN_PARTICIPANT_TOPIC.

811  {
812  DDS::Subscriber_var bit_sub(bit_subscriber());
813  if (!bit_sub.in())
814  return 0;
815 
816  DDS::DataReader_var d =
817  bit_sub->lookup_datareader(BUILT_IN_PARTICIPANT_TOPIC);
818  return dynamic_cast<ParticipantBuiltinTopicDataDataReaderImpl*>(d.in());
819  }
DataReaderImpl_T< DDS::ParticipantBuiltinTopicData > ParticipantBuiltinTopicDataDataReaderImpl
const char *const BUILT_IN_PARTICIPANT_TOPIC
DDS::Subscriber_var bit_subscriber() const

◆ part_loc_bit()

ParticipantLocationBuiltinTopicDataDataReaderImpl* OpenDDS::DCPS::StaticParticipant::part_loc_bit ( )
inlineprivate

Definition at line 821 of file StaticDiscovery.h.

References OpenDDS::DCPS::BUILT_IN_PARTICIPANT_LOCATION_TOPIC.

822  {
823  DDS::Subscriber_var bit_sub(bit_subscriber());
824  if (!bit_sub.in())
825  return 0;
826 
827  DDS::DataReader_var d =
828  bit_sub->lookup_datareader(BUILT_IN_PARTICIPANT_LOCATION_TOPIC);
829  return dynamic_cast<ParticipantLocationBuiltinTopicDataDataReaderImpl*>(d.in());
830  }
DataReaderImpl_T< ParticipantLocationBuiltinTopicData > ParticipantLocationBuiltinTopicDataDataReaderImpl
DDS::Subscriber_var bit_subscriber() const
const char *const BUILT_IN_PARTICIPANT_LOCATION_TOPIC

◆ remove_discovered_participant()

void OpenDDS::DCPS::StaticParticipant::remove_discovered_participant ( DiscoveredParticipantIter iter)
private

Definition at line 3112 of file StaticDiscovery.cpp.

References ACE_DEBUG, ACE_GUARD, ACE_TEXT(), OpenDDS::DCPS::LogGuid::c_str(), OpenDDS::DCPS::DCPS_debug_level, DDS::HANDLE_NIL, LM_INFO, OpenDDS::DCPS::StaticDiscovery::lock_, DDS::NOT_ALIVE_DISPOSED_INSTANCE_STATE, OPENDDS_END_VERSIONED_NAMESPACE_DECL, OpenDDS::DCPS::StaticDiscovery::participants_, and OpenDDS::DCPS::DataReaderImpl::set_instance_state().

3113 {
3114  if (iter == participants_.end()) {
3115  return;
3116  }
3117  GUID_t part_id = iter->first;
3118  bool removed = endpoint_manager().disassociate();
3119  iter = participants_.find(part_id); // refresh iter after disassociate, which can unlock
3120  if (iter == participants_.end()) {
3121  return;
3122  }
3123  if (removed) {
3124 #ifndef DDS_HAS_MINIMUM_BIT
3127  // bit may be null if the DomainParticipant is shutting down
3128  if ((bit && iter->second.bit_ih_ != DDS::HANDLE_NIL) ||
3129  (loc_bit && iter->second.location_ih_ != DDS::HANDLE_NIL)) {
3130  {
3131  const DDS::InstanceHandle_t bit_ih = iter->second.bit_ih_;
3132  const DDS::InstanceHandle_t location_ih = iter->second.location_ih_;
3133 
3136  if (bit && bit_ih != DDS::HANDLE_NIL) {
3137  bit->set_instance_state(bit_ih,
3139  }
3140  if (loc_bit && location_ih != DDS::HANDLE_NIL) {
3141  loc_bit->set_instance_state(location_ih,
3143  }
3144  }
3145  iter = participants_.find(part_id);
3146  if (iter == participants_.end()) {
3147  return;
3148  }
3149  }
3150 #endif /* DDS_HAS_MINIMUM_BIT */
3151  if (DCPS_debug_level > 3) {
3152  ACE_DEBUG((LM_INFO, ACE_TEXT("(%P|%t) LocalParticipant::remove_discovered_participant")
3153  ACE_TEXT(" - erasing %C (%B)\n"), LogGuid(iter->first).c_str(), participants_.size()));
3154  }
3155 
3157 
3158  participants_.erase(iter);
3159  }
3160 }
#define ACE_DEBUG(X)
#define ACE_GUARD(MUTEX, OBJ, LOCK)
StaticEndpointManager & endpoint_manager()
DiscoveredParticipantMap participants_
DataReaderImpl_T< ParticipantLocationBuiltinTopicData > ParticipantLocationBuiltinTopicDataDataReaderImpl
DataReaderImpl_T< DDS::ParticipantBuiltinTopicData > ParticipantBuiltinTopicDataDataReaderImpl
const InstanceHandle_t HANDLE_NIL
virtual void remove_discovered_participant_i(DiscoveredParticipantIter &)
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
Definition: debug.cpp:30
ACE_TEXT("TCP_Factory")
ParticipantBuiltinTopicDataDataReaderImpl * part_bit()
HANDLE_TYPE_NATIVE InstanceHandle_t
Definition: DdsDcpsCore.idl:51
ParticipantLocationBuiltinTopicDataDataReaderImpl * part_loc_bit()
const InstanceStateKind NOT_ALIVE_DISPOSED_INSTANCE_STATE

◆ remove_discovered_participant_i()

virtual void OpenDDS::DCPS::StaticParticipant::remove_discovered_participant_i ( DiscoveredParticipantIter )
inlineprivatevirtual

Definition at line 807 of file StaticDiscovery.h.

807 {}

◆ remove_domain_participant()

bool OpenDDS::DCPS::StaticParticipant::remove_domain_participant ( DDS::DomainId_t  domain_id,
const GUID_t participantId 
)

◆ remove_publication() [1/2]

bool OpenDDS::DCPS::StaticParticipant::remove_publication ( DDS::DomainId_t  domainId,
const GUID_t participantId,
const GUID_t publicationId 
)

◆ remove_publication() [2/2]

void OpenDDS::DCPS::StaticParticipant::remove_publication ( const GUID_t publicationId)
inline

Definition at line 687 of file StaticDiscovery.h.

688  {
689  endpoint_manager().remove_publication(publicationId);
690  }
StaticEndpointManager & endpoint_manager()
void remove_publication(const GUID_t &publicationId)

◆ remove_subscription() [1/2]

bool OpenDDS::DCPS::StaticParticipant::remove_subscription ( DDS::DomainId_t  domainId,
const GUID_t participantId,
const GUID_t subscriptionId 
)

◆ remove_subscription() [2/2]

void OpenDDS::DCPS::StaticParticipant::remove_subscription ( const GUID_t subscriptionId)
inline

Definition at line 727 of file StaticDiscovery.h.

728  {
729  endpoint_manager().remove_subscription(subscriptionId);
730  }
StaticEndpointManager & endpoint_manager()
void remove_subscription(const GUID_t &subscriptionId)

◆ remove_topic() [1/2]

DCPS::TopicStatus OpenDDS::DCPS::StaticParticipant::remove_topic ( DDS::DomainId_t  domainId,
const GUID_t participantId,
const GUID_t topicId 
)

◆ remove_topic() [2/2]

TopicStatus OpenDDS::DCPS::StaticParticipant::remove_topic ( const GUID_t topicId)
inline

Definition at line 659 of file StaticDiscovery.h.

660  {
661  return endpoint_manager().remove_topic(topicId);
662  }
StaticEndpointManager & endpoint_manager()
TopicStatus remove_topic(const GUID_t &topicId)

◆ shutdown()

void OpenDDS::DCPS::StaticParticipant::shutdown ( void  )
inline

Definition at line 499 of file StaticDiscovery.h.

499 {}

◆ type_lookup_service()

void OpenDDS::DCPS::StaticParticipant::type_lookup_service ( const XTypes::TypeLookupService_rch  type_lookup_service)
inline

Definition at line 761 of file StaticDiscovery.h.

762  {
764  }
StaticEndpointManager & endpoint_manager()
void type_lookup_service(const XTypes::TypeLookupService_rch type_lookup_service)
void type_lookup_service(const XTypes::TypeLookupService_rch type_lookup_service)

◆ update_domain_participant_qos() [1/2]

bool OpenDDS::DCPS::StaticParticipant::update_domain_participant_qos ( DDS::DomainId_t  domain,
const GUID_t participant,
const DDS::DomainParticipantQos qos 
)

◆ update_domain_participant_qos() [2/2]

bool OpenDDS::DCPS::StaticParticipant::update_domain_participant_qos ( const DDS::DomainParticipantQos qos)
inline

Definition at line 627 of file StaticDiscovery.h.

References ACE_GUARD_RETURN, and lock_.

628  {
630  qos_ = qos;
632  }
DDS::DomainParticipantQos qos_
#define ACE_GUARD_RETURN(MUTEX, OBJ, LOCK, RETURN)
virtual bool announce_domain_participant_qos()

◆ update_publication_locators() [1/2]

void OpenDDS::DCPS::StaticParticipant::update_publication_locators ( DDS::DomainId_t  domainId,
const GUID_t partId,
const GUID_t dwId,
const DCPS::TransportLocatorSeq transInfo 
)

◆ update_publication_locators() [2/2]

void OpenDDS::DCPS::StaticParticipant::update_publication_locators ( const GUID_t publicationId,
const TransportLocatorSeq transInfo 
)
inline

Definition at line 706 of file StaticDiscovery.h.

708  {
709  endpoint_manager().update_publication_locators(publicationId, transInfo);
710  }
StaticEndpointManager & endpoint_manager()
void update_publication_locators(const GUID_t &publicationId, const TransportLocatorSeq &transInfo)

◆ update_publication_qos() [1/2]

bool OpenDDS::DCPS::StaticParticipant::update_publication_qos ( DDS::DomainId_t  domainId,
const GUID_t partId,
const GUID_t dwId,
const DDS::DataWriterQos qos,
const DDS::PublisherQos publisherQos 
)

◆ update_publication_qos() [2/2]

bool OpenDDS::DCPS::StaticParticipant::update_publication_qos ( const GUID_t publicationId,
const DDS::DataWriterQos qos,
const DDS::PublisherQos publisherQos 
)
inline

Definition at line 698 of file StaticDiscovery.h.

702  {
703  return endpoint_manager().update_publication_qos(publicationId, qos, publisherQos);
704  }
virtual bool update_publication_qos(const GUID_t &, const DDS::DataWriterQos &, const DDS::PublisherQos &)
StaticEndpointManager & endpoint_manager()

◆ update_subscription_locators() [1/2]

void OpenDDS::DCPS::StaticParticipant::update_subscription_locators ( DDS::DomainId_t  domainId,
const GUID_t partId,
const GUID_t subId,
const DCPS::TransportLocatorSeq transInfo 
)

◆ update_subscription_locators() [2/2]

void OpenDDS::DCPS::StaticParticipant::update_subscription_locators ( const GUID_t subId,
const TransportLocatorSeq transInfo 
)
inline

Definition at line 751 of file StaticDiscovery.h.

752  {
754  }
StaticEndpointManager & endpoint_manager()
void update_subscription_locators(const GUID_t &subscriptionId, const TransportLocatorSeq &transInfo)

◆ update_subscription_params() [1/2]

bool OpenDDS::DCPS::StaticParticipant::update_subscription_params ( DDS::DomainId_t  domainId,
const GUID_t partId,
const GUID_t subId,
const DDS::StringSeq params 
)

◆ update_subscription_params() [2/2]

bool OpenDDS::DCPS::StaticParticipant::update_subscription_params ( const GUID_t subId,
const DDS::StringSeq params 
)
inline

Definition at line 746 of file StaticDiscovery.h.

747  {
748  return endpoint_manager().update_subscription_params(subId, params);
749  }
virtual bool update_subscription_params(const GUID_t &, const DDS::StringSeq &)
StaticEndpointManager & endpoint_manager()

◆ update_subscription_qos() [1/2]

bool OpenDDS::DCPS::StaticParticipant::update_subscription_qos ( DDS::DomainId_t  domainId,
const GUID_t partId,
const GUID_t drId,
const DDS::DataReaderQos qos,
const DDS::SubscriberQos subQos 
)

◆ update_subscription_qos() [2/2]

bool OpenDDS::DCPS::StaticParticipant::update_subscription_qos ( const GUID_t subscriptionId,
const DDS::DataReaderQos qos,
const DDS::SubscriberQos subscriberQos 
)
inline

Definition at line 738 of file StaticDiscovery.h.

742  {
743  return endpoint_manager().update_subscription_qos(subscriptionId, qos, subscriberQos);
744  }
StaticEndpointManager & endpoint_manager()
virtual bool update_subscription_qos(const GUID_t &, const DDS::DataReaderQos &, const DDS::SubscriberQos &)

◆ update_topic_qos() [1/2]

bool OpenDDS::DCPS::StaticParticipant::update_topic_qos ( const GUID_t topicId,
DDS::DomainId_t  domainId,
const GUID_t participantId,
const DDS::TopicQos qos 
)

◆ update_topic_qos() [2/2]

bool OpenDDS::DCPS::StaticParticipant::update_topic_qos ( const GUID_t topicId,
const DDS::TopicQos qos 
)
inline

Definition at line 670 of file StaticDiscovery.h.

671  {
672  return endpoint_manager().update_topic_qos(topicId, qos);
673  }
StaticEndpointManager & endpoint_manager()
virtual bool update_topic_qos(const GUID_t &, const DDS::TopicQos &)

Member Data Documentation

◆ bit_subscriber_

DDS::Subscriber_var OpenDDS::DCPS::StaticParticipant::bit_subscriber_
private

Definition at line 858 of file StaticDiscovery.h.

◆ endpoint_manager_

RcHandle<StaticEndpointManager> OpenDDS::DCPS::StaticParticipant::endpoint_manager_
private

Definition at line 862 of file StaticDiscovery.h.

◆ lock_

ACE_Thread_Mutex OpenDDS::DCPS::StaticParticipant::lock_
mutableprivate

Definition at line 857 of file StaticDiscovery.h.

◆ participants_

DiscoveredParticipantMap OpenDDS::DCPS::StaticParticipant::participants_
private

Definition at line 860 of file StaticDiscovery.h.

◆ qos_

DDS::DomainParticipantQos OpenDDS::DCPS::StaticParticipant::qos_
private

Definition at line 859 of file StaticDiscovery.h.


The documentation for this class was generated from the following files: