TAO_MCastConfigIf Class Reference

#include <AVStreams_i.h>

Collaboration diagram for TAO_MCastConfigIf:

Collaboration graph
[legend]
List of all members.

Public Types

enum  Peer_Interface { VDEV = 0, FLOWENDPOINT = 1 }

Public Member Functions

 TAO_MCastConfigIf (void)
 Default constructor.

 ~TAO_MCastConfigIf (void)
 Dtor.

virtual CORBA::Boolean set_peer (CORBA::Object_ptr peer, AVStreams::streamQoS &the_qos, const AVStreams::flowSpec &the_spec)
virtual void configure (const CosPropertyService::Property &a_configuration)
virtual void set_initial_configuration (const CosPropertyService::Properties &initial)
virtual void set_format (const char *flowName, const char *format_name)
virtual void set_dev_params (const char *flowName, const CosPropertyService::Properties &new_params)

Protected Member Functions

int in_flowSpec (const AVStreams::flowSpec &flow_spec, const char *flow_name)
 checks whether the flowname is in the flow_spec.


Protected Attributes

ACE_SOCK_Dgram_Mcast sock_mcast_
 Multicast socket.

CosPropertyService::Properties initial_configuration_
 Initial configuration to be distributed to all B parties when they join.

ACE_DLList< Peer_Infopeer_list_
ACE_DLList_Iterator< Peer_Infopeer_list_iterator_

Member Enumeration Documentation

enum TAO_MCastConfigIf::Peer_Interface
 

Enumeration values:
VDEV 
FLOWENDPOINT 

Definition at line 289 of file AVStreams_i.h.

00289 {VDEV = 0, FLOWENDPOINT=1};


Constructor & Destructor Documentation

TAO_MCastConfigIf::TAO_MCastConfigIf void   ) 
 

Default constructor.

Definition at line 1265 of file AVStreams_i.cpp.

01266   :peer_list_iterator_ (peer_list_)
01267 {
01268 }

TAO_MCastConfigIf::~TAO_MCastConfigIf void   ) 
 

Dtor.

Definition at line 1270 of file AVStreams_i.cpp.

01271 {
01272   //no-op
01273 }


Member Function Documentation

void TAO_MCastConfigIf::configure const CosPropertyService::Property &  a_configuration  )  [virtual]
 

Definition at line 1302 of file AVStreams_i.cpp.

References ACE_DLList_Iterator< Peer_Info >::advance(), ACE_Double_Linked_List_Iterator< T >::first(), ACE_DLList_Iterator< Peer_Info >::next(), TAO_MCastConfigIf::Peer_Info::peer_, and peer_list_iterator_.

01303 {
01304   Peer_Info *info;
01305   try
01306     {
01307       for (this->peer_list_iterator_.first ();
01308            (info = this->peer_list_iterator_.next ()) != 0;
01309            this->peer_list_iterator_.advance ())
01310         {
01311           info->peer_->configure (a_configuration);
01312         }
01313     }
01314   catch (const CORBA::Exception& ex)
01315     {
01316       ex._tao_print_exception (
01317         "TAO_MCastConfigIf::set_configure");
01318       return;
01319     }
01320 }

int TAO_MCastConfigIf::in_flowSpec const AVStreams::flowSpec flow_spec,
const char *  flow_name
[protected]
 

checks whether the flowname is in the flow_spec.

Definition at line 1382 of file AVStreams_i.cpp.

References AVStreams::flowSpec, ACE_OS::strlen(), and ACE_OS::strncmp().

Referenced by set_dev_params(), and set_format().

01383 {
01384   size_t len = ACE_OS::strlen (flow_name);
01385   for (CORBA::ULong i = 0; i < flow_spec.length (); i++)
01386     if (ACE_OS::strncmp (flow_spec[i], flow_name, len) == 0)
01387       {
01388         return 1;
01389       }
01390   return 0;
01391 }

void TAO_MCastConfigIf::set_dev_params const char *  flowName,
const CosPropertyService::Properties &  new_params
[virtual]
 

Definition at line 1356 of file AVStreams_i.cpp.

References ACE_DLList_Iterator< Peer_Info >::advance(), ACE_Double_Linked_List_Iterator< T >::first(), TAO_MCastConfigIf::Peer_Info::flow_spec_, in_flowSpec(), ACE_DLList_Iterator< Peer_Info >::next(), TAO_MCastConfigIf::Peer_Info::peer_, and peer_list_iterator_.

01358 {
01359   Peer_Info *info;
01360   try
01361     {
01362 
01363       for (this->peer_list_iterator_.first ();
01364            (info = this->peer_list_iterator_.next ()) != 0;
01365            this->peer_list_iterator_.advance ())
01366         {
01367           if (this->in_flowSpec (info->flow_spec_, flowName))
01368             {
01369               info->peer_->set_dev_params (flowName, new_params);
01370             }
01371         }
01372     }
01373   catch (const CORBA::Exception& ex)
01374     {
01375       ex._tao_print_exception (
01376         "TAO_MCastConfigIf::set_dev_params");
01377       return;
01378     }
01379 }

void TAO_MCastConfigIf::set_format const char *  flowName,
const char *  format_name
[virtual]
 

Definition at line 1331 of file AVStreams_i.cpp.

References ACE_DLList_Iterator< Peer_Info >::advance(), ACE_Double_Linked_List_Iterator< T >::first(), TAO_MCastConfigIf::Peer_Info::flow_spec_, in_flowSpec(), ACE_DLList_Iterator< Peer_Info >::next(), TAO_MCastConfigIf::Peer_Info::peer_, and peer_list_iterator_.

01333 {
01334   Peer_Info *info;
01335   try
01336     {
01337       for (this->peer_list_iterator_.first ();
01338            (info = this->peer_list_iterator_.next ()) != 0;
01339            this->peer_list_iterator_.advance ())
01340         {
01341           if (this->in_flowSpec (info->flow_spec_, flowName))
01342             {
01343               info->peer_->set_format (flowName, format_name);
01344             }
01345         }
01346     }
01347   catch (const CORBA::Exception& ex)
01348     {
01349       ex._tao_print_exception ("TAO_MCastConfigIf::set_format");
01350       return;
01351     }
01352 }

void TAO_MCastConfigIf::set_initial_configuration const CosPropertyService::Properties &  initial  )  [virtual]
 

Definition at line 1324 of file AVStreams_i.cpp.

References initial_configuration_.

01325 {
01326   this->initial_configuration_ = initial;
01327 }

CORBA::Boolean TAO_MCastConfigIf::set_peer CORBA::Object_ptr  peer,
AVStreams::streamQoS the_qos,
const AVStreams::flowSpec the_spec
[virtual]
 

Definition at line 1277 of file AVStreams_i.cpp.

References ACE_NEW_RETURN, TAO_MCastConfigIf::Peer_Info::flow_spec_, AVStreams::flowSpec, ACE_DLList< Peer_Info >::insert_tail(), TAO_MCastConfigIf::Peer_Info::peer_, peer_list_, TAO_MCastConfigIf::Peer_Info::qos_, and AVStreams::streamQoS.

Referenced by TAO_StreamCtrl::bind_devs().

01280 {
01281   try
01282     {
01283       Peer_Info *info;
01284       ACE_NEW_RETURN (info,
01285                       Peer_Info,
01286                       0);
01287       info->peer_ = AVStreams::VDev::_narrow (peer);
01288       info->qos_ = qos;
01289       info->flow_spec_ = flow_spec;
01290       this->peer_list_.insert_tail (info);
01291     }
01292   catch (const CORBA::Exception& ex)
01293     {
01294       ex._tao_print_exception ("TAO_MCastConfigIf::set_peer");
01295       return 0;
01296     }
01297   return 1;
01298 }


Member Data Documentation

CosPropertyService::Properties TAO_MCastConfigIf::initial_configuration_ [protected]
 

Initial configuration to be distributed to all B parties when they join.

Definition at line 328 of file AVStreams_i.h.

Referenced by set_initial_configuration().

ACE_DLList<Peer_Info> TAO_MCastConfigIf::peer_list_ [protected]
 

Definition at line 330 of file AVStreams_i.h.

Referenced by set_peer().

ACE_DLList_Iterator<Peer_Info> TAO_MCastConfigIf::peer_list_iterator_ [protected]
 

Definition at line 331 of file AVStreams_i.h.

Referenced by configure(), set_dev_params(), and set_format().

ACE_SOCK_Dgram_Mcast TAO_MCastConfigIf::sock_mcast_ [protected]
 

Multicast socket.

Definition at line 325 of file AVStreams_i.h.


The documentation for this class was generated from the following files:
Generated on Sun Jan 27 16:07:56 2008 for TAO_AV by doxygen 1.3.6