OpenDDS::DCPS::MulticastTransport Class Reference

#include <MulticastTransport.h>

Inheritance diagram for OpenDDS::DCPS::MulticastTransport:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

 MulticastTransport (const TransportInst_rch &inst)
 ~MulticastTransport ()
void passive_connection (MulticastPeer peer)

Protected Member Functions

virtual DataLinkfind_datalink_i (const RepoId &local_id, const RepoId &remote_id, const TransportBLOB &remote_data, CORBA::Long priority, bool active)
virtual DataLinkconnect_datalink_i (const RepoId &local_id, const RepoId &remote_id, const TransportBLOB &remote_data, CORBA::Long priority)
virtual DataLinkaccept_datalink (ConnectionEvent &ce)
virtual void stop_accepting (ConnectionEvent &ce)
virtual bool configure_i (TransportInst *config)
virtual void shutdown_i ()
virtual bool connection_info_i (TransportLocator &info) const
virtual void release_datalink_i (DataLink *link, bool release_pending)
virtual std::string transport_type () const
virtual PriorityKey blob_to_key (const TransportBLOB &, CORBA::Long, bool)

Private Member Functions

MulticastDataLinkmake_datalink (const RepoId &local_id, const RepoId &remote_id, CORBA::Long priority, bool active)
MulticastSessionstart_session (const MulticastDataLink_rch &link, MulticastPeer remote_peer, bool active)

Private Attributes

RcHandle< MulticastInstconfig_i_
MulticastDataLink_rch client_link_
 link for pubs.
MulticastDataLink_rch server_link_
 link for subs.
ACE_SYNCH_MUTEX connections_lock_
std::multimap< ConnectionEvent *,
MulticastPeer
pending_connections_
std::set< MulticastPeerconnections_

Constructor & Destructor Documentation

OpenDDS::DCPS::MulticastTransport::MulticastTransport ( const TransportInst_rch inst  )  [explicit]

OpenDDS::DCPS::MulticastTransport::~MulticastTransport (  ) 


Member Function Documentation

DataLink * OpenDDS::DCPS::MulticastTransport::accept_datalink ( ConnectionEvent &  ce  )  [protected, virtual]

virtual PriorityKey OpenDDS::DCPS::MulticastTransport::blob_to_key ( const TransportBLOB ,
CORBA::Long  ,
bool   
) [inline, protected, virtual]

Implements OpenDDS::DCPS::TransportImpl.

bool OpenDDS::DCPS::MulticastTransport::configure_i ( TransportInst config  )  [protected, virtual]

Concrete subclass gets a shot at the config object. The subclass will likely downcast the TransportInst object to a subclass type that it expects/requires.

Implements OpenDDS::DCPS::TransportImpl.

DataLink * OpenDDS::DCPS::MulticastTransport::connect_datalink_i ( const RepoId local_id,
const RepoId remote_id,
const TransportBLOB remote_data,
CORBA::Long  priority 
) [protected, virtual]

connect_datalink_i() is called from TransportClient::associate() (via TransportImpl::connect_datalink()) for each TransportImpl on the active side, until a valid datalink is returned. Any datalink returned should be a fully connected datalink matching this connection event. This method should block and wait for the physical connection (either in the form of a connection event or handshaking message). If the connection is unable to be completed, returning 0 causes TransportClient::associate() to try the next TransportImpl in the current configuration.

Implements OpenDDS::DCPS::TransportImpl.

bool OpenDDS::DCPS::MulticastTransport::connection_info_i ( TransportLocator info  )  const [protected, virtual]

Called by our connection_info() method to allow the concrete TransportImpl subclass to do the dirty work since it really is the one that knows how to populate the supplied TransportLocator object.

Implements OpenDDS::DCPS::TransportImpl.

DataLink * OpenDDS::DCPS::MulticastTransport::find_datalink_i ( const RepoId local_id,
const RepoId remote_id,
const TransportBLOB remote_data,
CORBA::Long  priority,
bool  active 
) [protected, virtual]

find_datalink_i() attempts to return a DataLink that was previously created via either accept_datalink() or connect_datalink_i(). If one is not available, the transport framework proceeds with creating a new datalink.

Implements OpenDDS::DCPS::TransportImpl.

MulticastDataLink * OpenDDS::DCPS::MulticastTransport::make_datalink ( const RepoId local_id,
const RepoId remote_id,
CORBA::Long  priority,
bool  active 
) [private]

void OpenDDS::DCPS::MulticastTransport::passive_connection ( MulticastPeer  peer  ) 

void OpenDDS::DCPS::MulticastTransport::release_datalink_i ( DataLink link,
bool  release_pending 
) [protected, virtual]

Called by our release_datalink() method in order to give the concrete TransportImpl subclass a chance to do something when the release_datalink "event" occurs.

Implements OpenDDS::DCPS::TransportImpl.

void OpenDDS::DCPS::MulticastTransport::shutdown_i (  )  [protected, virtual]

Called during the shutdown() method in order to give the concrete TransportImpl subclass a chance to do something when the shutdown "event" occurs.

Implements OpenDDS::DCPS::TransportImpl.

MulticastSession * OpenDDS::DCPS::MulticastTransport::start_session ( const MulticastDataLink_rch link,
MulticastPeer  remote_peer,
bool  active 
) [private]

void OpenDDS::DCPS::MulticastTransport::stop_accepting ( ConnectionEvent &  ce  )  [protected, virtual]

virtual std::string OpenDDS::DCPS::MulticastTransport::transport_type (  )  const [inline, protected, virtual]

Implements OpenDDS::DCPS::TransportImpl.


Member Data Documentation

MulticastDataLink_rch OpenDDS::DCPS::MulticastTransport::client_link_ [private]

link for pubs.

RcHandle<MulticastInst> OpenDDS::DCPS::MulticastTransport::config_i_ [private]

std::set<MulticastPeer> OpenDDS::DCPS::MulticastTransport::connections_ [private]

ACE_SYNCH_MUTEX OpenDDS::DCPS::MulticastTransport::connections_lock_ [private]

std::multimap<ConnectionEvent*, MulticastPeer> OpenDDS::DCPS::MulticastTransport::pending_connections_ [private]

MulticastDataLink_rch OpenDDS::DCPS::MulticastTransport::server_link_ [private]

link for subs.


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