OpenDDS::DCPS::DomainParticipantImpl Class Reference

Implements the OpenDDS::DCPS::DomainParticipant interfaces. More...

#include <DomainParticipantImpl.h>

Inheritance diagram for OpenDDS::DCPS::DomainParticipantImpl:

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

Collaboration graph
[legend]
List of all members.

Public Types

typedef Objref_Servant_Pair<
SubscriberImpl,::DDS::Subscriber,
::DDS::Subscriber_ptr,::DDS::Subscriber_var > 
Subscriber_Pair
typedef Objref_Servant_Pair<
PublisherImpl,::DDS::Publisher,
::DDS::Publisher_ptr,::DDS::Publisher_var > 
Publisher_Pair
typedef Objref_Servant_Pair<
TopicImpl,::DDS::Topic,
::DDS::Topic_ptr,::DDS::Topic_var > 
Topic_Pair
typedef std::set< Subscriber_PairSubscriberSet
typedef std::set< Publisher_PairPublisherSet
typedef std::map< std::string,
RefCounted_Topic
TopicMap

Public Member Functions

 DomainParticipantImpl (const ::DDS::DomainId_t &domain_id, const RepoId &dp_id, const ::DDS::DomainParticipantQos &qos,::DDS::DomainParticipantListener_ptr a_listener, bool federated=false)
 Constructor.
virtual ~DomainParticipantImpl (void)
 Destructor.
virtual ::DDS::Publisher_ptr create_publisher (const ::DDS::PublisherQos &qos,::DDS::PublisherListener_ptr a_listener) throw ( CORBA::SystemException )
virtual ::DDS::ReturnCode_t delete_publisher (::DDS::Publisher_ptr p) throw ( CORBA::SystemException )
virtual ::DDS::Subscriber_ptr create_subscriber (const ::DDS::SubscriberQos &qos,::DDS::SubscriberListener_ptr a_listener) throw ( CORBA::SystemException )
virtual ::DDS::ReturnCode_t delete_subscriber (::DDS::Subscriber_ptr s) throw ( CORBA::SystemException )
virtual ::DDS::Subscriber_ptr get_builtin_subscriber () throw ( CORBA::SystemException )
virtual ::DDS::Topic_ptr create_topic (const char *topic_name, const char *type_name, const ::DDS::TopicQos &qos,::DDS::TopicListener_ptr a_listener) throw ( CORBA::SystemException )
virtual ::DDS::ReturnCode_t delete_topic (::DDS::Topic_ptr a_topic) throw ( CORBA::SystemException )
virtual ::DDS::Topic_ptr find_topic (const char *topic_name, const ::DDS::Duration_t &timeout) throw ( CORBA::SystemException )
virtual ::DDS::TopicDescription_ptr lookup_topicdescription (const char *name) throw ( CORBA::SystemException )
virtual ::DDS::ReturnCode_t delete_contained_entities () throw ( CORBA::SystemException )
virtual ::DDS::ReturnCode_t set_qos (const ::DDS::DomainParticipantQos &qos) throw ( CORBA::SystemException )
virtual void get_qos (::DDS::DomainParticipantQos &qos) throw ( CORBA::SystemException )
virtual ::DDS::ReturnCode_t set_listener (::DDS::DomainParticipantListener_ptr a_listener,::DDS::StatusKindMask mask) throw ( CORBA::SystemException )
virtual ::DDS::DomainParticipantListener_ptr get_listener () throw ( CORBA::SystemException )
virtual ::DDS::ReturnCode_t ignore_participant (::DDS::InstanceHandle_t handle) throw ( CORBA::SystemException )
virtual ::DDS::ReturnCode_t ignore_topic (::DDS::InstanceHandle_t handle) throw ( CORBA::SystemException )
virtual ::DDS::ReturnCode_t ignore_publication (::DDS::InstanceHandle_t handle) throw ( CORBA::SystemException )
virtual ::DDS::ReturnCode_t ignore_subscription (::DDS::InstanceHandle_t handle) throw ( CORBA::SystemException )
virtual ::DDS::DomainId_t get_domain_id () throw ( CORBA::SystemException )
virtual void assert_liveliness () throw ( CORBA::SystemException )
virtual ::DDS::ReturnCode_t set_default_publisher_qos (const ::DDS::PublisherQos &qos) throw ( CORBA::SystemException )
virtual void get_default_publisher_qos (::DDS::PublisherQos &qos) throw ( CORBA::SystemException )
virtual ::DDS::ReturnCode_t set_default_subscriber_qos (const ::DDS::SubscriberQos &qos) throw ( CORBA::SystemException )
virtual void get_default_subscriber_qos (::DDS::SubscriberQos &qos) throw ( CORBA::SystemException )
virtual ::DDS::ReturnCode_t set_default_topic_qos (const ::DDS::TopicQos &qos) throw ( CORBA::SystemException )
virtual void get_default_topic_qos (::DDS::TopicQos &qos) throw ( CORBA::SystemException )
virtual ::DDS::ReturnCode_t get_current_time (::DDS::Time_t &current_time) throw ( ::CORBA::SystemException )
virtual ::DDS::ReturnCode_t enable () throw ( CORBA::SystemException )
RepoId get_id ()
void set_object_reference (const ::DDS::DomainParticipant_ptr &dp)
int is_clean () const
::DDS::DomainParticipantListenerlistener_for (::DDS::StatusKind kind)

Private Member Functions

::DDS::Topic_ptr create_topic_i (const RepoId topic_id, const char *topic_name, const char *type_name, const ::DDS::TopicQos &qos,::DDS::TopicListener_ptr a_listener) throw ( CORBA::SystemException )
::DDS::ReturnCode_t delete_topic_i (::DDS::Topic_ptr a_topic, bool remove_objref)
::DDS::ReturnCode_t init_bit ()
 Initialize the built in topic.
::DDS::ReturnCode_t init_bit_topics ()
 Initialize the built in topic topics.
::DDS::ReturnCode_t init_bit_subscriber ()
 Create the built in topic subscriber.
::DDS::ReturnCode_t init_bit_datareaders ()
 Initialize the built in topic datareaders.
::DDS::ReturnCode_t attach_bit_transport ()
 Attach the subscriber with the transport.

Private Attributes

::DDS::TopicQos default_topic_qos_
 The default topic qos.
::DDS::PublisherQos default_publisher_qos_
 The default publisher qos.
::DDS::SubscriberQos default_subscriber_qos_
 The default subscriber qos.
::DDS::DomainParticipantQos qos_
 The qos of this DomainParticipant.
::DDS::DomainParticipantListener_var listener_
 Used to notify the entity for relevant events.
::DDS::DomainParticipantListenerfast_listener_
 The DomainParticipant listener servant.
::DDS::StatusKindMask listener_mask_
::DDS::DomainId_t domain_id_
 The id of the domain that creates this participant.
RepoId dp_id_
 This participant id given by DCPSInfo repository.
bool federated_
PublisherSet publishers_
 Collection of publishers.
SubscriberSet subscribers_
 Collection of subscribers.
TopicMap topics_
 Collection of topics.
ACE_Recursive_Thread_Mutex publishers_protector_
 Protect the publisher collection.
ACE_Recursive_Thread_Mutex subscribers_protector_
 Protect the subscriber collection.
ACE_Recursive_Thread_Mutex topics_protector_
 Protect the topic collection.
::DDS::DomainParticipant_var participant_objref_
 The object reference activated from this servant.
::DDS::Subscriber_var bit_subscriber_
 The built in topic subscriber.
::DDS::Topic_var bit_part_topic_
 The topic for built in topic participant.
::DDS::Topic_var bit_topic_topic_
 The topic for built in topic topic.
::DDS::Topic_var bit_pub_topic_
 The topic for built in topic publication.
::DDS::Topic_var bit_sub_topic_
 The topic for built in topic subscription.
FailoverListenerfailoverListener_
 Listener to initiate failover with.
::DDS::ParticipantBuiltinTopicDataDataReader_var bit_part_dr_
 The datareader for built in topic participant.
::DDS::TopicBuiltinTopicDataDataReader_var bit_topic_dr_
 The datareader for built in topic topic.
::DDS::PublicationBuiltinTopicDataDataReader_var bit_pub_dr_
 The datareader for built in topic publication.
::DDS::SubscriptionBuiltinTopicDataDataReader_var bit_sub_dr_
 The datareader for built in topic subscription.

Classes

struct  RefCounted_Topic

Detailed Description

Implements the OpenDDS::DCPS::DomainParticipant interfaces.

This class acts as an entrypoint of the service and a factory for publisher, subscriber and topic. It also acts as a container for the publisher, subscriber and topic objects.

See the DDS specification, OMG formal/04-12-02, for a description of the interface this class is implementing.


Member Typedef Documentation

typedef Objref_Servant_Pair<PublisherImpl, ::DDS::Publisher, ::DDS::Publisher_ptr, ::DDS::Publisher_var > OpenDDS::DCPS::DomainParticipantImpl::Publisher_Pair

typedef std::set<Publisher_Pair> OpenDDS::DCPS::DomainParticipantImpl::PublisherSet

typedef Objref_Servant_Pair<SubscriberImpl, ::DDS::Subscriber, ::DDS::Subscriber_ptr, ::DDS::Subscriber_var > OpenDDS::DCPS::DomainParticipantImpl::Subscriber_Pair

typedef std::set<Subscriber_Pair> OpenDDS::DCPS::DomainParticipantImpl::SubscriberSet

typedef Objref_Servant_Pair<TopicImpl, ::DDS::Topic, ::DDS::Topic_ptr, ::DDS::Topic_var > OpenDDS::DCPS::DomainParticipantImpl::Topic_Pair

typedef std::map<std::string, RefCounted_Topic> OpenDDS::DCPS::DomainParticipantImpl::TopicMap


Constructor & Destructor Documentation

OpenDDS::DCPS::DomainParticipantImpl::DomainParticipantImpl ( const ::DDS::DomainId_t domain_id,
const RepoId dp_id,
const ::DDS::DomainParticipantQos qos,
::DDS::DomainParticipantListener_ptr  a_listener,
bool  federated = false 
)

Constructor.

OpenDDS::DCPS::DomainParticipantImpl::~DomainParticipantImpl ( void   )  [virtual]

Destructor.


Member Function Documentation

void OpenDDS::DCPS::DomainParticipantImpl::assert_liveliness (  )  throw ( CORBA::SystemException ) [virtual]

Implements DDS::DomainParticipant.

DDS::ReturnCode_t OpenDDS::DCPS::DomainParticipantImpl::attach_bit_transport (  )  [private]

Attach the subscriber with the transport.

DDS::Publisher_ptr OpenDDS::DCPS::DomainParticipantImpl::create_publisher ( const ::DDS::PublisherQos qos,
::DDS::PublisherListener_ptr  a_listener 
) throw ( CORBA::SystemException )

DDS::Subscriber_ptr OpenDDS::DCPS::DomainParticipantImpl::create_subscriber ( const ::DDS::SubscriberQos qos,
::DDS::SubscriberListener_ptr  a_listener 
) throw ( CORBA::SystemException )

DDS::Topic_ptr OpenDDS::DCPS::DomainParticipantImpl::create_topic ( const char *  topic_name,
const char *  type_name,
const ::DDS::TopicQos qos,
::DDS::TopicListener_ptr  a_listener 
) throw ( CORBA::SystemException )

DDS::Topic_ptr OpenDDS::DCPS::DomainParticipantImpl::create_topic_i ( const RepoId  topic_id,
const char *  topic_name,
const char *  type_name,
const ::DDS::TopicQos qos,
::DDS::TopicListener_ptr  a_listener 
) throw ( CORBA::SystemException ) [private]

The implementation of create_topic. The TopicMap owns the reference bumped by narrow in the servant_to_reference and the returned topic is a duplicate topic in the TopicMap.

DDS::ReturnCode_t OpenDDS::DCPS::DomainParticipantImpl::delete_contained_entities (  )  throw ( CORBA::SystemException )

Implements DDS::DomainParticipant.

DDS::ReturnCode_t OpenDDS::DCPS::DomainParticipantImpl::delete_publisher ( ::DDS::Publisher_ptr  p  )  throw ( CORBA::SystemException )

DDS::ReturnCode_t OpenDDS::DCPS::DomainParticipantImpl::delete_subscriber ( ::DDS::Subscriber_ptr  s  )  throw ( CORBA::SystemException )

DDS::ReturnCode_t OpenDDS::DCPS::DomainParticipantImpl::delete_topic ( ::DDS::Topic_ptr  a_topic  )  throw ( CORBA::SystemException )

DDS::ReturnCode_t OpenDDS::DCPS::DomainParticipantImpl::delete_topic_i ( ::DDS::Topic_ptr  a_topic,
bool  remove_objref 
) [private]

Delete the topic with option of whether the topic object reference should be removed.

DDS::ReturnCode_t OpenDDS::DCPS::DomainParticipantImpl::enable (  )  throw ( CORBA::SystemException )

Implements DDS::Entity.

DDS::Topic_ptr OpenDDS::DCPS::DomainParticipantImpl::find_topic ( const char *  topic_name,
const ::DDS::Duration_t timeout 
) throw ( CORBA::SystemException )

DDS::Subscriber_ptr OpenDDS::DCPS::DomainParticipantImpl::get_builtin_subscriber (  )  throw ( CORBA::SystemException )

Implements DDS::DomainParticipant.

DDS::ReturnCode_t OpenDDS::DCPS::DomainParticipantImpl::get_current_time ( ::DDS::Time_t current_time  )  throw ( ::CORBA::SystemException )

void OpenDDS::DCPS::DomainParticipantImpl::get_default_publisher_qos ( ::DDS::PublisherQos qos  )  throw ( CORBA::SystemException ) [virtual]

void OpenDDS::DCPS::DomainParticipantImpl::get_default_subscriber_qos ( ::DDS::SubscriberQos qos  )  throw ( CORBA::SystemException ) [virtual]

void OpenDDS::DCPS::DomainParticipantImpl::get_default_topic_qos ( ::DDS::TopicQos qos  )  throw ( CORBA::SystemException ) [virtual]

DDS::DomainId_t OpenDDS::DCPS::DomainParticipantImpl::get_domain_id (  )  throw ( CORBA::SystemException )

Implements DDS::DomainParticipant.

RepoId OpenDDS::DCPS::DomainParticipantImpl::get_id (  ) 

Return the id given by the DCPSInfo repositoy.

DDS::DomainParticipantListener_ptr OpenDDS::DCPS::DomainParticipantImpl::get_listener (  )  throw ( CORBA::SystemException )

Implements DDS::DomainParticipant.

void OpenDDS::DCPS::DomainParticipantImpl::get_qos ( ::DDS::DomainParticipantQos qos  )  throw ( CORBA::SystemException ) [virtual]

DDS::ReturnCode_t OpenDDS::DCPS::DomainParticipantImpl::ignore_participant ( ::DDS::InstanceHandle_t  handle  )  throw ( CORBA::SystemException )

DDS::ReturnCode_t OpenDDS::DCPS::DomainParticipantImpl::ignore_publication ( ::DDS::InstanceHandle_t  handle  )  throw ( CORBA::SystemException )

DDS::ReturnCode_t OpenDDS::DCPS::DomainParticipantImpl::ignore_subscription ( ::DDS::InstanceHandle_t  handle  )  throw ( CORBA::SystemException )

DDS::ReturnCode_t OpenDDS::DCPS::DomainParticipantImpl::ignore_topic ( ::DDS::InstanceHandle_t  handle  )  throw ( CORBA::SystemException )

DDS::ReturnCode_t OpenDDS::DCPS::DomainParticipantImpl::init_bit (  )  [private]

Initialize the built in topic.

DDS::ReturnCode_t OpenDDS::DCPS::DomainParticipantImpl::init_bit_datareaders (  )  [private]

Initialize the built in topic datareaders.

DDS::ReturnCode_t OpenDDS::DCPS::DomainParticipantImpl::init_bit_subscriber (  )  [private]

Create the built in topic subscriber.

DDS::ReturnCode_t OpenDDS::DCPS::DomainParticipantImpl::init_bit_topics (  )  [private]

Initialize the built in topic topics.

int OpenDDS::DCPS::DomainParticipantImpl::is_clean (  )  const

Check if the topic is used by any datareader or datawriter.

DDS::DomainParticipantListener * OpenDDS::DCPS::DomainParticipantImpl::listener_for ( ::DDS::StatusKind  kind  ) 

This is used to retrieve the listener for a certain status change. If this DomainParticipant has a registered listener and the status kind is in the listener mask then the listener is returned. Otherwise, return nil.

DDS::TopicDescription_ptr OpenDDS::DCPS::DomainParticipantImpl::lookup_topicdescription ( const char *  name  )  throw ( CORBA::SystemException )

DDS::ReturnCode_t OpenDDS::DCPS::DomainParticipantImpl::set_default_publisher_qos ( const ::DDS::PublisherQos qos  )  throw ( CORBA::SystemException )

DDS::ReturnCode_t OpenDDS::DCPS::DomainParticipantImpl::set_default_subscriber_qos ( const ::DDS::SubscriberQos qos  )  throw ( CORBA::SystemException )

DDS::ReturnCode_t OpenDDS::DCPS::DomainParticipantImpl::set_default_topic_qos ( const ::DDS::TopicQos qos  )  throw ( CORBA::SystemException )

DDS::ReturnCode_t OpenDDS::DCPS::DomainParticipantImpl::set_listener ( ::DDS::DomainParticipantListener_ptr  a_listener,
::DDS::StatusKindMask  mask 
) throw ( CORBA::SystemException )

void OpenDDS::DCPS::DomainParticipantImpl::set_object_reference ( const ::DDS::DomainParticipant_ptr &  dp  ) 

Associate the servant with the object reference. This is required to pass to the topic servant.

DDS::ReturnCode_t OpenDDS::DCPS::DomainParticipantImpl::set_qos ( const ::DDS::DomainParticipantQos qos  )  throw ( CORBA::SystemException )


Member Data Documentation

::DDS::ParticipantBuiltinTopicDataDataReader_var OpenDDS::DCPS::DomainParticipantImpl::bit_part_dr_ [private]

The datareader for built in topic participant.

::DDS::Topic_var OpenDDS::DCPS::DomainParticipantImpl::bit_part_topic_ [private]

The topic for built in topic participant.

::DDS::PublicationBuiltinTopicDataDataReader_var OpenDDS::DCPS::DomainParticipantImpl::bit_pub_dr_ [private]

The datareader for built in topic publication.

::DDS::Topic_var OpenDDS::DCPS::DomainParticipantImpl::bit_pub_topic_ [private]

The topic for built in topic publication.

::DDS::SubscriptionBuiltinTopicDataDataReader_var OpenDDS::DCPS::DomainParticipantImpl::bit_sub_dr_ [private]

The datareader for built in topic subscription.

::DDS::Topic_var OpenDDS::DCPS::DomainParticipantImpl::bit_sub_topic_ [private]

The topic for built in topic subscription.

::DDS::Subscriber_var OpenDDS::DCPS::DomainParticipantImpl::bit_subscriber_ [private]

The built in topic subscriber.

::DDS::TopicBuiltinTopicDataDataReader_var OpenDDS::DCPS::DomainParticipantImpl::bit_topic_dr_ [private]

The datareader for built in topic topic.

::DDS::Topic_var OpenDDS::DCPS::DomainParticipantImpl::bit_topic_topic_ [private]

The topic for built in topic topic.

::DDS::PublisherQos OpenDDS::DCPS::DomainParticipantImpl::default_publisher_qos_ [private]

The default publisher qos.

::DDS::SubscriberQos OpenDDS::DCPS::DomainParticipantImpl::default_subscriber_qos_ [private]

The default subscriber qos.

::DDS::TopicQos OpenDDS::DCPS::DomainParticipantImpl::default_topic_qos_ [private]

The default topic qos.

::DDS::DomainId_t OpenDDS::DCPS::DomainParticipantImpl::domain_id_ [private]

The id of the domain that creates this participant.

RepoId OpenDDS::DCPS::DomainParticipantImpl::dp_id_ [private]

This participant id given by DCPSInfo repository.

FailoverListener* OpenDDS::DCPS::DomainParticipantImpl::failoverListener_ [private]

Listener to initiate failover with.

::DDS::DomainParticipantListener* OpenDDS::DCPS::DomainParticipantImpl::fast_listener_ [private]

The DomainParticipant listener servant.

bool OpenDDS::DCPS::DomainParticipantImpl::federated_ [private]

Whether this DomainParticipant is attached to a federated repository.

::DDS::DomainParticipantListener_var OpenDDS::DCPS::DomainParticipantImpl::listener_ [private]

Used to notify the entity for relevant events.

::DDS::StatusKindMask OpenDDS::DCPS::DomainParticipantImpl::listener_mask_ [private]

The StatusKind bit mask indicates which status condition change can be notified by the listener of this entity.

::DDS::DomainParticipant_var OpenDDS::DCPS::DomainParticipantImpl::participant_objref_ [private]

The object reference activated from this servant.

PublisherSet OpenDDS::DCPS::DomainParticipantImpl::publishers_ [private]

Collection of publishers.

ACE_Recursive_Thread_Mutex OpenDDS::DCPS::DomainParticipantImpl::publishers_protector_ [private]

Protect the publisher collection.

::DDS::DomainParticipantQos OpenDDS::DCPS::DomainParticipantImpl::qos_ [private]

The qos of this DomainParticipant.

SubscriberSet OpenDDS::DCPS::DomainParticipantImpl::subscribers_ [private]

Collection of subscribers.

ACE_Recursive_Thread_Mutex OpenDDS::DCPS::DomainParticipantImpl::subscribers_protector_ [private]

Protect the subscriber collection.

TopicMap OpenDDS::DCPS::DomainParticipantImpl::topics_ [private]

Collection of topics.

ACE_Recursive_Thread_Mutex OpenDDS::DCPS::DomainParticipantImpl::topics_protector_ [private]

Protect the topic collection.


The documentation for this class was generated from the following files:
Generated on Fri Nov 7 09:37:35 2008 for OpenDDS by  doxygen 1.4.7