DCPS_IR_Publication Class Reference

Representative of a Publication. More...

#include <DCPS_IR_Publication.h>

Collaboration diagram for DCPS_IR_Publication:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 DCPS_IR_Publication (OpenDDS::DCPS::RepoId id, DCPS_IR_Participant *participant, DCPS_IR_Topic *topic, OpenDDS::DCPS::DataWriterRemote_ptr writer, DDS::DataWriterQos qos, const OpenDDS::DCPS::TransportLocatorSeq &info, DDS::PublisherQos publisherQos)
 ~DCPS_IR_Publication ()
int add_associated_subscription (DCPS_IR_Subscription *sub, bool active)
void association_complete (const OpenDDS::DCPS::RepoId &remote)
void call_association_complete (const OpenDDS::DCPS::RepoId &remote)
int remove_associated_subscription (DCPS_IR_Subscription *sub, 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 subscriptions whose participant has the id.
void disassociate_topic (OpenDDS::DCPS::RepoId id)
 Remove any subscriptions whose topic has the id.
void disassociate_subscription (OpenDDS::DCPS::RepoId id, bool reassociate=false)
 Remove any subscriptions with the id.
void update_incompatible_qos ()
CORBA::Boolean is_subscription_ignored (OpenDDS::DCPS::RepoId partId, OpenDDS::DCPS::RepoId topicId, OpenDDS::DCPS::RepoId subId)
DDS::DataWriterQosget_datawriter_qos ()
DDS::PublisherQosget_publisher_qos ()
bool set_qos (const DDS::DataWriterQos &qos, const DDS::PublisherQos &publisherQos, Update::SpecificQos &specificQos)
void set_qos (const DDS::DataWriterQos &qos)
 Update DataWriterQos only.
void set_qos (const DDS::PublisherQos &qos)
 Update PublisherQos only.
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_Topicget_topic ()
DCPS_IR_Topic_Descriptionget_topic_description ()
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::DataWriterRemote_ptr writer ()
void reevaluate_defunct_associations ()
void reevaluate_existing_associations ()
bool reevaluate_association (DCPS_IR_Subscription *subscription)
void update_expr_params (OpenDDS::DCPS::RepoId readerId, const DDS::StringSeq &params)

Private Member Functions

bool compatibleQosChange (const DDS::PublisherQos &qos)
bool compatibleQosChange (const DDS::DataWriterQos &qos)

Private Attributes

OpenDDS::DCPS::RepoId id_
DCPS_IR_Participantparticipant_
DCPS_IR_Topictopic_
DDS::InstanceHandle_t handle_
CORBA::Boolean isBIT_
OpenDDS::DCPS::DataWriterRemote_var writer_
 the corresponding DataWriterRemote object
DDS::DataWriterQos qos_
OpenDDS::DCPS::TransportLocatorSeq info_
DDS::PublisherQos publisherQos_
DCPS_IR_Subscription_Set associations_
DCPS_IR_Subscription_Set defunct_
OpenDDS::DCPS::IncompatibleQosStatus incompatibleQosStatus_

Detailed Description

Representative of a Publication.


Constructor & Destructor Documentation

DCPS_IR_Publication::DCPS_IR_Publication ( OpenDDS::DCPS::RepoId  id,
DCPS_IR_Participant participant,
DCPS_IR_Topic topic,
OpenDDS::DCPS::DataWriterRemote_ptr  writer,
DDS::DataWriterQos  qos,
const OpenDDS::DCPS::TransportLocatorSeq info,
DDS::PublisherQos  publisherQos 
)

DCPS_IR_Publication::~DCPS_IR_Publication (  ) 


Member Function Documentation

int DCPS_IR_Publication::add_associated_subscription ( DCPS_IR_Subscription sub,
bool  active 
)

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

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

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

void DCPS_IR_Publication::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_Publication::compatibleQosChange ( const DDS::DataWriterQos qos  )  [private]

Check compatibility between provided DataWriter QoS and the QoS of this publication associated DataReaders.

bool DCPS_IR_Publication::compatibleQosChange ( const DDS::PublisherQos qos  )  [private]

Check compatibility between provided Publisher QoS and the QoS of this publication associated DataReaders's subscribers.

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

Remove any subscriptions whose participant has the id.

void DCPS_IR_Publication::disassociate_subscription ( OpenDDS::DCPS::RepoId  id,
bool  reassociate = false 
)

Remove any subscriptions with the id.

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

Remove any subscriptions whose topic has the id.

DDS::DataWriterQos * DCPS_IR_Publication::get_datawriter_qos (  ) 

Return pointer to the DataWriter qos Publication retains ownership

DDS::InstanceHandle_t DCPS_IR_Publication::get_handle (  ) 

OpenDDS::DCPS::RepoId DCPS_IR_Publication::get_id (  ) 

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

Return pointer to the incompatible qos status Publication retains ownership

OpenDDS::DCPS::RepoId DCPS_IR_Publication::get_participant_id (  ) 

DDS::PublisherQos * DCPS_IR_Publication::get_publisher_qos (  ) 

Return pointer to the Publisher qos Publication retains ownership

DCPS_IR_Topic * DCPS_IR_Publication::get_topic (  ) 

DCPS_IR_Topic_Description * DCPS_IR_Publication::get_topic_description (  ) 

OpenDDS::DCPS::RepoId DCPS_IR_Publication::get_topic_id (  ) 

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

CORBA::Boolean DCPS_IR_Publication::is_bit (  ) 

CORBA::Boolean DCPS_IR_Publication::is_subscription_ignored ( OpenDDS::DCPS::RepoId  partId,
OpenDDS::DCPS::RepoId  topicId,
OpenDDS::DCPS::RepoId  subId 
)

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

bool DCPS_IR_Publication::reevaluate_association ( DCPS_IR_Subscription subscription  ) 

void DCPS_IR_Publication::reevaluate_defunct_associations (  ) 

void DCPS_IR_Publication::reevaluate_existing_associations (  ) 

int DCPS_IR_Publication::remove_associated_subscription ( DCPS_IR_Subscription sub,
CORBA::Boolean  sendNotify,
CORBA::Boolean  notify_lost,
bool  notify_both_side = false 
)

Remove the associated subscription Removes the subscription from the list of associated subscriptions if return successful sendNotify indicates whether to tell the datawriter about removing the subscription The notify_lost parameter is passed to the remove_associations() The notify_both_side parameter indicates if it needs call sub to remove association as well. See the comments of remove_associations() in DdsDcpsDataWriterRemote.idl or DdsDcpsDataReaderRemote.idl. This method can mark the participant dead Returns 0 if successful

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

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

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

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

void DCPS_IR_Publication::set_qos ( const DDS::PublisherQos qos  ) 

Update PublisherQos only.

void DCPS_IR_Publication::set_qos ( const DDS::DataWriterQos qos  ) 

Update DataWriterQos only.

bool DCPS_IR_Publication::set_qos ( const DDS::DataWriterQos qos,
const DDS::PublisherQos publisherQos,
Update::SpecificQos specificQos 
)

Update the DataWriter or Publisher qos and also publish the qos changes to datawriter BIT.

void DCPS_IR_Publication::update_expr_params ( OpenDDS::DCPS::RepoId  readerId,
const DDS::StringSeq params 
)

void DCPS_IR_Publication::update_incompatible_qos (  ) 

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

OpenDDS::DCPS::DataWriterRemote_ptr DCPS_IR_Publication::writer (  ) 


Member Data Documentation

DCPS_IR_Subscription_Set DCPS_IR_Publication::associations_ [private]

DCPS_IR_Subscription_Set DCPS_IR_Publication::defunct_ [private]

DDS::InstanceHandle_t DCPS_IR_Publication::handle_ [private]

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

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

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

CORBA::Boolean DCPS_IR_Publication::isBIT_ [private]

DCPS_IR_Participant* DCPS_IR_Publication::participant_ [private]

DDS::PublisherQos DCPS_IR_Publication::publisherQos_ [private]

DDS::DataWriterQos DCPS_IR_Publication::qos_ [private]

DCPS_IR_Topic* DCPS_IR_Publication::topic_ [private]

OpenDDS::DCPS::DataWriterRemote_var DCPS_IR_Publication::writer_ [private]

the corresponding DataWriterRemote object


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