DCPS_IR_Topic Class Reference

Representative of a Topic. More...

#include <DCPS_IR_Topic.h>

Collaboration diagram for DCPS_IR_Topic:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 DCPS_IR_Topic (OpenDDS::DCPS::RepoId id,::DDS::TopicQos qos, DCPS_IR_Domain *domain, DCPS_IR_Participant *creator, DCPS_IR_Topic_Description *description)
 ~DCPS_IR_Topic ()
void release (bool removing)
int add_publication_reference (DCPS_IR_Publication *publication, bool associate=true)
int remove_publication_reference (DCPS_IR_Publication *publication)
int add_subscription_reference (DCPS_IR_Subscription *subscription, bool associate=true)
int remove_subscription_reference (DCPS_IR_Subscription *subscription)
void try_associate (DCPS_IR_Subscription *subscription)
void reevaluate_associations (DCPS_IR_Subscription *subscription)
OpenDDS::DCPS::RepoId get_id () const
OpenDDS::DCPS::RepoId get_participant_id () const
DCPS_IR_Topic_Descriptionget_topic_description ()
::DDS::TopicQosget_topic_qos ()
bool set_topic_qos (const ::DDS::TopicQos &qos)
::DDS::InstanceHandle_t get_handle ()
void set_handle (::DDS::InstanceHandle_t handle)
CORBA::Boolean is_bit ()
void set_bit_status (CORBA::Boolean isBIT)

Private Attributes

OpenDDS::DCPS::RepoId id_
::DDS::TopicQos qos_
DCPS_IR_Domaindomain_
DCPS_IR_Participantparticipant_
DCPS_IR_Topic_Descriptiondescription_
::DDS::InstanceHandle_t handle_
CORBA::Boolean isBIT_
DCPS_IR_Publication_Set publicationRefs_
DCPS_IR_Subscription_Set subscriptionRefs_
bool removed_

Detailed Description

Representative of a Topic.


Constructor & Destructor Documentation

DCPS_IR_Topic::DCPS_IR_Topic ( OpenDDS::DCPS::RepoId  id,
::DDS::TopicQos  qos,
DCPS_IR_Domain domain,
DCPS_IR_Participant creator,
DCPS_IR_Topic_Description description 
)

DCPS_IR_Topic::~DCPS_IR_Topic (  ) 


Member Function Documentation

int DCPS_IR_Topic::add_publication_reference ( DCPS_IR_Publication publication,
bool  associate = true 
)

Adds the publication to the list of publications Calls the topic description's try associate if successfully added 'associate' switch toggles association attempt. Returns 0 if added, 1 if already exists, -1 other failure

int DCPS_IR_Topic::add_subscription_reference ( DCPS_IR_Subscription subscription,
bool  associate = true 
)

Adds the subscription to the list of subscriptions and let description handle the association. Returns 0 if added, 1 if already exists, -1 other failure

DDS::InstanceHandle_t DCPS_IR_Topic::get_handle (  ) 

OpenDDS::DCPS::RepoId DCPS_IR_Topic::get_id (  )  const

OpenDDS::DCPS::RepoId DCPS_IR_Topic::get_participant_id (  )  const

DCPS_IR_Topic_Description * DCPS_IR_Topic::get_topic_description (  ) 

Return pointer to the Topic Description Domain retains ownership

DDS::TopicQos * DCPS_IR_Topic::get_topic_qos (  ) 

Return pointer to the Topic qos Topic retains ownership

CORBA::Boolean DCPS_IR_Topic::is_bit (  ) 

void DCPS_IR_Topic::reevaluate_associations ( DCPS_IR_Subscription subscription  ) 

Called by the DCPS_IR_Topic_Description to re-evaluate the association between the publications of this topic and the provided subscription.

void DCPS_IR_Topic::release ( bool  removing  ) 

Delete the topic object upon last topic associated sub/pub and topic object deletion. It's kind of reference counting. The removing true indicates it's called upon delete_topic, otherwise it's upon remove_publication/remove_subcription.

int DCPS_IR_Topic::remove_publication_reference ( DCPS_IR_Publication publication  ) 

Removes the publication from the list of publications Returns 0 if successful

int DCPS_IR_Topic::remove_subscription_reference ( DCPS_IR_Subscription subscription  ) 

Removes the subscription from the list of subscriptions Returns 0 if successful

void DCPS_IR_Topic::set_bit_status ( CORBA::Boolean  isBIT  ) 

void DCPS_IR_Topic::set_handle ( ::DDS::InstanceHandle_t  handle  ) 

bool DCPS_IR_Topic::set_topic_qos ( const ::DDS::TopicQos qos  ) 

Reset topic qos and also propogate the qos change to related BITs that has the qos copy. Return false if the provided QoS makes the DataWriter and DataReader QoS incompatible. Currently supported changeable QoS in TopicQos do not affect.

void DCPS_IR_Topic::try_associate ( DCPS_IR_Subscription subscription  ) 

Called by the DCPS_IR_Topic_Description Find any compatible publications and associate them using the DCPS_IR_Topic_Description's associate method. This method does not check the subscription's incompatible qos status.


Member Data Documentation

DCPS_IR_Topic_Description* DCPS_IR_Topic::description_ [private]

DCPS_IR_Domain* DCPS_IR_Topic::domain_ [private]

::DDS::InstanceHandle_t DCPS_IR_Topic::handle_ [private]

OpenDDS::DCPS::RepoId DCPS_IR_Topic::id_ [private]

CORBA::Boolean DCPS_IR_Topic::isBIT_ [private]

DCPS_IR_Participant* DCPS_IR_Topic::participant_ [private]

DCPS_IR_Publication_Set DCPS_IR_Topic::publicationRefs_ [private]

::DDS::TopicQos DCPS_IR_Topic::qos_ [private]

bool DCPS_IR_Topic::removed_ [private]

True means release() is called upon delete_topic, but topic object is not deleted because there are still pub/sub associated.

DCPS_IR_Subscription_Set DCPS_IR_Topic::subscriptionRefs_ [private]

Keep track the subscriptions of this topic so the TopicQos change can be published for those subscriptions.


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