DCPS_IR_Subscription Class Reference

Representative of a Subscription. More...

#include <DCPS_IR_Subscription.h>

Collaboration diagram for DCPS_IR_Subscription:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 DCPS_IR_Subscription (OpenDDS::DCPS::RepoId id, DCPS_IR_Participant *participant, DCPS_IR_Topic *topic, OpenDDS::DCPS::DataReaderRemote_ptr reader, DDS::DataReaderQos qos, const OpenDDS::DCPS::TransportLocatorSeq &info, DDS::SubscriberQos subscriberQos, const char *filterExpression, const DDS::StringSeq &exprParams)
 ~DCPS_IR_Subscription ()
int add_associated_publication (DCPS_IR_Publication *pub, bool active)
void association_complete (const OpenDDS::DCPS::RepoId &remote)
void call_association_complete (const OpenDDS::DCPS::RepoId &remote)
int remove_associated_publication (DCPS_IR_Publication *pub, CORBA::Boolean sendNotify, CORBA::Boolean notify_lost, bool notify_both_side=false)
int remove_associations (CORBA::Boolean notify_lost)
void disassociate_participant (OpenDDS::DCPS::RepoId id, bool reassociate=false)
 Remove any publications whose participant has the id.
void disassociate_topic (OpenDDS::DCPS::RepoId id)
 Remove any publications whose topic has the id.
void disassociate_publication (OpenDDS::DCPS::RepoId id, bool reassociate=false)
 Remove any publications with id.
void update_incompatible_qos ()
CORBA::Boolean is_publication_ignored (OpenDDS::DCPS::RepoId partId, OpenDDS::DCPS::RepoId topicId, OpenDDS::DCPS::RepoId pubId)
const DDS::DataReaderQosget_datareader_qos ()
const DDS::SubscriberQosget_subscriber_qos ()
bool set_qos (const DDS::DataReaderQos &qos, const DDS::SubscriberQos &subscriberQos, Update::SpecificQos &specificQos)
void set_qos (const DDS::DataReaderQos &qos)
 Update DataReaderQos only.
void set_qos (const DDS::SubscriberQos &qos)
 Update SubscriberQos only.
void reevaluate_defunct_associations ()
void reevaluate_existing_associations ()
bool reevaluate_association (DCPS_IR_Publication *publication)
OpenDDS::DCPS::TransportLocatorSeq get_transportLocatorSeq () const
OpenDDS::DCPS::IncompatibleQosStatusget_incompatibleQosStatus ()
OpenDDS::DCPS::RepoId get_id ()
OpenDDS::DCPS::RepoId get_topic_id ()
OpenDDS::DCPS::RepoId get_participant_id ()
DCPS_IR_Topic_Descriptionget_topic_description ()
DCPS_IR_Topicget_topic ()
DDS::InstanceHandle_t get_handle ()
void set_handle (DDS::InstanceHandle_t handle)
CORBA::Boolean is_bit ()
void set_bit_status (CORBA::Boolean isBIT)
OpenDDS::DCPS::DataReaderRemote_ptr reader ()
std::string get_filter_expression () const
DDS::StringSeq get_expr_params () const
void update_expr_params (const DDS::StringSeq &params)
 Calls associated Publications.

Private Member Functions

bool compatibleQosChange (const DDS::DataReaderQos &qos)
bool compatibleQosChange (const DDS::SubscriberQos &qos)

Private Attributes

OpenDDS::DCPS::RepoId id_
DCPS_IR_Participantparticipant_
DCPS_IR_Topictopic_
DDS::InstanceHandle_t handle_
CORBA::Boolean isBIT_
OpenDDS::DCPS::DataReaderRemote_var reader_
 the corresponding DataReaderRemote object
DDS::DataReaderQos qos_
OpenDDS::DCPS::TransportLocatorSeq info_
DDS::SubscriberQos subscriberQos_
std::string filterExpression_
DDS::StringSeq exprParams_
DCPS_IR_Publication_Set associations_
DCPS_IR_Publication_Set defunct_
OpenDDS::DCPS::IncompatibleQosStatus incompatibleQosStatus_

Detailed Description

Representative of a Subscription.


Constructor & Destructor Documentation

DCPS_IR_Subscription::DCPS_IR_Subscription ( OpenDDS::DCPS::RepoId  id,
DCPS_IR_Participant participant,
DCPS_IR_Topic topic,
OpenDDS::DCPS::DataReaderRemote_ptr  reader,
DDS::DataReaderQos  qos,
const OpenDDS::DCPS::TransportLocatorSeq info,
DDS::SubscriberQos  subscriberQos,
const char *  filterExpression,
const DDS::StringSeq exprParams 
)

DCPS_IR_Subscription::~DCPS_IR_Subscription (  ) 


Member Function Documentation

int DCPS_IR_Subscription::add_associated_publication ( DCPS_IR_Publication pub,
bool  active 
)

Associate with the publication Adds the publication to the list of associated publications and notifies datareader if successfully added This method can mark the participant dead Returns 0 if added, 1 if already exists, -1 other failure

void DCPS_IR_Subscription::association_complete ( const OpenDDS::DCPS::RepoId remote  ) 

The service participant that contains this Subscription has indicated that the assocation to peer "remote" is complete. This method will locate the Publication object for "remote" in order to inform it of the completed association.

void DCPS_IR_Subscription::call_association_complete ( const OpenDDS::DCPS::RepoId remote  ) 

Invoke the DataWriterRemote::association_complete() callback, passing the "remote" parameter (Subscription) to the service participant.

bool DCPS_IR_Subscription::compatibleQosChange ( const DDS::SubscriberQos qos  )  [private]

Check compatibility between provided Subscriber QoS and the QoS of this subscription associated DataWriters's Publishers.

bool DCPS_IR_Subscription::compatibleQosChange ( const DDS::DataReaderQos qos  )  [private]

Check compatibility between provided DataReader QoS and the QoS of this subscription associated DataWriters.

void DCPS_IR_Subscription::disassociate_participant ( OpenDDS::DCPS::RepoId  id,
bool  reassociate = false 
)

Remove any publications whose participant has the id.

void DCPS_IR_Subscription::disassociate_publication ( OpenDDS::DCPS::RepoId  id,
bool  reassociate = false 
)

Remove any publications with id.

void DCPS_IR_Subscription::disassociate_topic ( OpenDDS::DCPS::RepoId  id  ) 

Remove any publications whose topic has the id.

const DDS::DataReaderQos * DCPS_IR_Subscription::get_datareader_qos (  ) 

Return pointer to the DataReader qos Subscription retains ownership

DDS::StringSeq DCPS_IR_Subscription::get_expr_params (  )  const

std::string DCPS_IR_Subscription::get_filter_expression (  )  const

DDS::InstanceHandle_t DCPS_IR_Subscription::get_handle (  ) 

OpenDDS::DCPS::RepoId DCPS_IR_Subscription::get_id (  ) 

OpenDDS::DCPS::IncompatibleQosStatus * DCPS_IR_Subscription::get_incompatibleQosStatus (  ) 

Return pointer to the incompatible qos status Subscription retains ownership

OpenDDS::DCPS::RepoId DCPS_IR_Subscription::get_participant_id (  ) 

const DDS::SubscriberQos * DCPS_IR_Subscription::get_subscriber_qos (  ) 

Return pointer to the Subscriber qos Subscription retains ownership

DCPS_IR_Topic * DCPS_IR_Subscription::get_topic (  ) 

DCPS_IR_Topic_Description * DCPS_IR_Subscription::get_topic_description (  ) 

OpenDDS::DCPS::RepoId DCPS_IR_Subscription::get_topic_id (  ) 

OpenDDS::DCPS::TransportLocatorSeq DCPS_IR_Subscription::get_transportLocatorSeq (  )  const

CORBA::Boolean DCPS_IR_Subscription::is_bit (  ) 

CORBA::Boolean DCPS_IR_Subscription::is_publication_ignored ( OpenDDS::DCPS::RepoId  partId,
OpenDDS::DCPS::RepoId  topicId,
OpenDDS::DCPS::RepoId  pubId 
)

Check that none of the ids given are ones that this subscription should ignore. returns 1 if one of these ids is an ignored id

OpenDDS::DCPS::DataReaderRemote_ptr DCPS_IR_Subscription::reader (  ) 

bool DCPS_IR_Subscription::reevaluate_association ( DCPS_IR_Publication publication  ) 

void DCPS_IR_Subscription::reevaluate_defunct_associations (  ) 

void DCPS_IR_Subscription::reevaluate_existing_associations (  ) 

int DCPS_IR_Subscription::remove_associated_publication ( DCPS_IR_Publication pub,
CORBA::Boolean  sendNotify,
CORBA::Boolean  notify_lost,
bool  notify_both_side = false 
)

Remove the associated publication Removes the publication from the list of associated publications if return successful sendNotify indicates whether to tell the datareader about removing the publication The notify_lost flag true indicates this remove_associations is called when the InfoRepo detects this subscription is lost because of the failure of invocation on this subscription. The notify_both_side parameter indicates if it needs call pub to remove association as well. This method can mark the participant dead Returns 0 if successful

int DCPS_IR_Subscription::remove_associations ( CORBA::Boolean  notify_lost  ) 

Removes all the associated publications This method can mark the participant dead The notify_lost flag true indicates this remove_associations is called when the InfoRepo detects this subscription is lost because of the failure of invocation on this subscription. Returns 0 if successful

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

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

void DCPS_IR_Subscription::set_qos ( const DDS::SubscriberQos qos  ) 

Update SubscriberQos only.

void DCPS_IR_Subscription::set_qos ( const DDS::DataReaderQos qos  ) 

Update DataReaderQos only.

bool DCPS_IR_Subscription::set_qos ( const DDS::DataReaderQos qos,
const DDS::SubscriberQos subscriberQos,
Update::SpecificQos specificQos 
)

Update the DataReader or Subscriber qos and also publish the qos changes to datereader BIT.

void DCPS_IR_Subscription::update_expr_params ( const DDS::StringSeq params  ) 

Calls associated Publications.

void DCPS_IR_Subscription::update_incompatible_qos (  ) 

Notify the reader of incompatible qos status and reset the status' count_since_last_send to 0


Member Data Documentation

DCPS_IR_Publication_Set DCPS_IR_Subscription::associations_ [private]

DCPS_IR_Publication_Set DCPS_IR_Subscription::defunct_ [private]

DDS::StringSeq DCPS_IR_Subscription::exprParams_ [private]

std::string DCPS_IR_Subscription::filterExpression_ [private]

DDS::InstanceHandle_t DCPS_IR_Subscription::handle_ [private]

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

OpenDDS::DCPS::IncompatibleQosStatus DCPS_IR_Subscription::incompatibleQosStatus_ [private]

OpenDDS::DCPS::TransportLocatorSeq DCPS_IR_Subscription::info_ [private]

CORBA::Boolean DCPS_IR_Subscription::isBIT_ [private]

DCPS_IR_Participant* DCPS_IR_Subscription::participant_ [private]

DDS::DataReaderQos DCPS_IR_Subscription::qos_ [private]

OpenDDS::DCPS::DataReaderRemote_var DCPS_IR_Subscription::reader_ [private]

the corresponding DataReaderRemote object

DDS::SubscriberQos DCPS_IR_Subscription::subscriberQos_ [private]

DCPS_IR_Topic* DCPS_IR_Subscription::topic_ [private]


The documentation for this class was generated from the following files:
Generated on Wed Nov 16 15:28:10 2011 for OpenDDS by  doxygen 1.4.7