TAO_VDev Class Reference

Implements the VDev interface. One of these is created per connection, and represents device-specific parameters. More...

#include <AVStreams_i.h>

List of all members.

Public Member Functions

 TAO_VDev (void)
 Default Constructor.

virtual CORBA::Boolean set_peer (AVStreams::StreamCtrl_ptr the_ctrl, AVStreams::VDev_ptr the_peer_dev, AVStreams::streamQoS &the_qos, const AVStreams::flowSpec &the_spec)
 Called to tell the vdev who the streamctrl, peer vdev is.

virtual CORBA::Boolean set_Mcast_peer (AVStreams::StreamCtrl_ptr the_ctrl, AVStreams::MCastConfigIf_ptr a_mcastconfigif, AVStreams::streamQoS &the_qos, const AVStreams::flowSpec &the_spec)
 Used to set the streamctrl and multicast device.

virtual void configure (const CosPropertyService::Property &the_config_mesg)
 Called by the peer VDev to configure the device (catch all).

virtual void set_format (const char *flowName, const char *format_name)
 Used to set a format on a flowname.

virtual void set_dev_params (const char *flowName, const CosPropertyService::Properties &new_params)
 Used to set device parameters.

virtual CORBA::Boolean modify_QoS (AVStreams::streamQoS &the_qos, const AVStreams::flowSpec &the_spec)
 Called to change QoS of the device.


Protected Member Functions

virtual ~TAO_VDev (void)
virtual CORBA::Boolean set_media_ctrl (CORBA::Object_ptr media_ctrl)
 hook called after set_peer is done to set the media ctrl of the peer vdev.


Protected Attributes

AVStreams::StreamCtrl_var streamctrl_
 My stream controller.

AVStreams::VDev_var peer_
 My peer.

AVStreams::MCastConfigIf_var mcast_peer_
 The multicast VDev peer.


Detailed Description

Implements the VDev interface. One of these is created per connection, and represents device-specific parameters.

Definition at line 640 of file AVStreams_i.h.


Constructor & Destructor Documentation

TAO_VDev::TAO_VDev void   ) 
 

Default Constructor.

Definition at line 2719 of file AVStreams_i.cpp.

References ACE_DEBUG, LM_DEBUG, and TAO_debug_level.

02720 {
02721   if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG,
02722               "(%P|%t) TAO_VDev::TAO_VDev: created\n"));
02723 }

TAO_VDev::~TAO_VDev void   )  [protected, virtual]
 

Destructor for a servant should be protected or private. Use _remove_ref() to delete this servant.

Definition at line 2887 of file AVStreams_i.cpp.

02888 {
02889 }


Member Function Documentation

void TAO_VDev::configure const CosPropertyService::Property &  the_config_mesg  )  [virtual]
 

Called by the peer VDev to configure the device (catch all).

Definition at line 2793 of file AVStreams_i.cpp.

02794 {
02795 }

CORBA::Boolean TAO_VDev::modify_QoS AVStreams::streamQoS the_qos,
const AVStreams::flowSpec the_spec
[virtual]
 

Called to change QoS of the device.

Definition at line 2847 of file AVStreams_i.cpp.

References ACE_DEBUG, TAO_FlowSpec_Entry::direction(), AVStreams::flowSpec, LM_DEBUG, TAO_Forward_FlowSpec_Entry::parse(), AVStreams::streamQoS, and TAO_debug_level.

02849 {
02850   if (TAO_debug_level > 0)
02851   ACE_DEBUG ((LM_DEBUG,
02852              "TAO_VDev::modify_QoS\n"));
02853 
02854   if (flowspec.length () != 0)
02855     {
02856       TAO_Forward_FlowSpec_Entry entry;
02857       entry.parse (flowspec [0]);
02858       int direction = entry.direction ();
02859       if (direction == 0)
02860         {
02861           AVStreams::StreamEndPoint_A_ptr sep_a;
02862 
02863           CORBA::Any_ptr streamendpoint_a_any =
02864           this->get_property_value ("Related_StreamEndpoint");
02865 
02866           *streamendpoint_a_any >>= sep_a;
02867           if (sep_a != 0)
02868             {
02869               sep_a->modify_QoS (the_qos, flowspec);
02870             }
02871           else ACE_DEBUG ((LM_DEBUG,
02872                            "Stream EndPoint Not Found\n"));
02873         }
02874       else
02875         {
02876           AVStreams::StreamEndPoint_B_ptr sep_b;
02877 
02878           CORBA::Any_ptr streamendpoint_b_any =
02879           this->get_property_value ("Related_StreamEndpoint");
02880           *streamendpoint_b_any >>= sep_b;
02881           sep_b->modify_QoS (the_qos, flowspec);
02882         }
02883   }
02884   return 1;
02885 }

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

Used to set device parameters.

Definition at line 2823 of file AVStreams_i.cpp.

References ACE_ERROR, LM_ERROR, and ACE_OS::sprintf().

02825 {
02826   try
02827     {
02828       if (flowName == 0)
02829         ACE_ERROR ((LM_ERROR, "TAO_VDev::set_dev_params:flowName is null\n"));
02830       char devParams_property[BUFSIZ];
02831       ACE_OS::sprintf (devParams_property, "%s_devParams", flowName);
02832       CORBA::Any devParams;
02833       devParams <<= new_params;
02834       this->define_property (devParams_property,
02835                              devParams);
02836     }
02837   catch (const CORBA::Exception& ex)
02838     {
02839       ex._tao_print_exception ("TAO_VDev::set_dev_params");
02840       return;
02841     }
02842   return;
02843 }

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

Used to set a format on a flowname.

Definition at line 2799 of file AVStreams_i.cpp.

References ACE_ERROR, LM_ERROR, and ACE_OS::sprintf().

02801 {
02802   try
02803     {
02804       if (flowName == 0 || format_name == 0)
02805         ACE_ERROR ((LM_ERROR, "TAO_VDev::set_format: flowName or format_name is null\n"));
02806       char format_property [BUFSIZ];
02807       ACE_OS::sprintf (format_property, "%s_currFormat", flowName);
02808       CORBA::Any format;
02809       format <<= format_name;
02810       this->define_property (format_property,
02811                              format);
02812     }
02813   catch (const CORBA::Exception& ex)
02814     {
02815       ex._tao_print_exception ("TAO_VDev::set_format");
02816       return;
02817     }
02818   return;
02819 }

CORBA::Boolean TAO_VDev::set_Mcast_peer AVStreams::StreamCtrl_ptr  the_ctrl,
AVStreams::MCastConfigIf_ptr  a_mcastconfigif,
AVStreams::streamQoS the_qos,
const AVStreams::flowSpec the_spec
[virtual]
 

Used to set the streamctrl and multicast device.

Definition at line 2782 of file AVStreams_i.cpp.

References AVStreams::flowSpec, mcast_peer_, and AVStreams::streamQoS.

02786 {
02787   this->mcast_peer_ = AVStreams::MCastConfigIf::_duplicate (mcast_peer);
02788   return 1;
02789 }

CORBA::Boolean TAO_VDev::set_media_ctrl CORBA::Object_ptr  media_ctrl  )  [protected, virtual]
 

hook called after set_peer is done to set the media ctrl of the peer vdev.

Definition at line 2770 of file AVStreams_i.cpp.

References CORBA::release().

Referenced by set_peer().

02772 {
02773   //  since the media ctrl is not stored or used, delete it.
02774 
02775   CORBA::release( media_ctrl);
02776 
02777   return 1;
02778 }

CORBA::Boolean TAO_VDev::set_peer AVStreams::StreamCtrl_ptr  the_ctrl,
AVStreams::VDev_ptr  the_peer_dev,
AVStreams::streamQoS the_qos,
const AVStreams::flowSpec the_spec
[virtual]
 

Called to tell the vdev who the streamctrl, peer vdev is.

Definition at line 2728 of file AVStreams_i.cpp.

References ACE_DEBUG, AVStreams::flowSpec, LM_DEBUG, set_media_ctrl(), AVStreams::streamQoS, and TAO_debug_level.

02732 {
02733   ACE_UNUSED_ARG (the_qos);
02734   ACE_UNUSED_ARG (the_spec);
02735 
02736   CORBA::Boolean result = 0;
02737   try
02738     {
02739       if (TAO_debug_level > 0)
02740         ACE_DEBUG ((LM_DEBUG, "(%P|%t) TAO_VDev::set_peer: called\n"));
02741 
02742 
02743       CORBA::Any anyval;
02744       anyval <<= the_peer_dev;
02745       this->define_property ("Related_VDev",
02746                              anyval);
02747 
02748 
02749       this->streamctrl_ = AVStreams::StreamCtrl::_duplicate (the_ctrl);
02750       this->peer_ = AVStreams::VDev::_duplicate (the_peer_dev);
02751 
02752       CORBA::Any_var anyptr;
02753       anyptr = this->peer_->get_property_value ("Related_MediaCtrl");
02754 
02755       CORBA::Object_ptr media_ctrl_obj = 0;
02756 
02757       anyptr.in () >>= CORBA::Any::to_object(media_ctrl_obj);
02758 
02759       result = this->set_media_ctrl (media_ctrl_obj);
02760     }
02761   catch (const CORBA::Exception& ex)
02762     {
02763       ex._tao_print_exception ("TAO_VDev::set_peer");
02764       return 0;
02765     }
02766   return result;
02767 }


Member Data Documentation

AVStreams::MCastConfigIf_var TAO_VDev::mcast_peer_ [protected]
 

The multicast VDev peer.

Definition at line 691 of file AVStreams_i.h.

Referenced by set_Mcast_peer().

AVStreams::VDev_var TAO_VDev::peer_ [protected]
 

My peer.

Definition at line 688 of file AVStreams_i.h.

AVStreams::StreamCtrl_var TAO_VDev::streamctrl_ [protected]
 

My stream controller.

Definition at line 685 of file AVStreams_i.h.


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