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 2751 of file AVStreams_i.cpp.

References ACE_DEBUG, LM_DEBUG, and TAO_debug_level.

02752 {
02753   if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG,
02754               "(%P|%t) TAO_VDev::TAO_VDev: created\n"));
02755 }

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 2919 of file AVStreams_i.cpp.

02920 {
02921 }


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 2825 of file AVStreams_i.cpp.

02826 {
02827 }

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 2879 of file AVStreams_i.cpp.

References ACE_DEBUG, LM_DEBUG, and TAO_debug_level.

02881 {
02882   if (TAO_debug_level > 0)
02883   ACE_DEBUG ((LM_DEBUG,
02884              "TAO_VDev::modify_QoS\n"));
02885 
02886   if (flowspec.length () != 0)
02887     {
02888       TAO_Forward_FlowSpec_Entry entry;
02889       entry.parse (flowspec [0]);
02890       int direction = entry.direction ();
02891       if (direction == 0)
02892         {
02893           AVStreams::StreamEndPoint_A_ptr sep_a;
02894 
02895           CORBA::Any_ptr streamendpoint_a_any =
02896           this->get_property_value ("Related_StreamEndpoint");
02897 
02898           *streamendpoint_a_any >>= sep_a;
02899           if (sep_a != 0)
02900             {
02901               sep_a->modify_QoS (the_qos, flowspec);
02902             }
02903           else ACE_DEBUG ((LM_DEBUG,
02904                            "Stream EndPoint Not Found\n"));
02905         }
02906       else
02907         {
02908           AVStreams::StreamEndPoint_B_ptr sep_b;
02909 
02910           CORBA::Any_ptr streamendpoint_b_any =
02911           this->get_property_value ("Related_StreamEndpoint");
02912           *streamendpoint_b_any >>= sep_b;
02913           sep_b->modify_QoS (the_qos, flowspec);
02914         }
02915   }
02916   return 1;
02917 }

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

Used to set device parameters.

Definition at line 2855 of file AVStreams_i.cpp.

References CORBA::Exception::_tao_print_exception(), ACE_ERROR, LM_ERROR, and ACE_OS::sprintf().

02857 {
02858   try
02859     {
02860       if (flowName == 0)
02861         ACE_ERROR ((LM_ERROR, "TAO_VDev::set_dev_params:flowName is null\n"));
02862       char devParams_property[BUFSIZ];
02863       ACE_OS::sprintf (devParams_property, "%s_devParams", flowName);
02864       CORBA::Any devParams;
02865       devParams <<= new_params;
02866       this->define_property (devParams_property,
02867                              devParams);
02868     }
02869   catch (const CORBA::Exception& ex)
02870     {
02871       ex._tao_print_exception ("TAO_VDev::set_dev_params");
02872       return;
02873     }
02874   return;
02875 }

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

Used to set a format on a flowname.

Definition at line 2831 of file AVStreams_i.cpp.

References CORBA::Exception::_tao_print_exception(), ACE_ERROR, LM_ERROR, and ACE_OS::sprintf().

02833 {
02834   try
02835     {
02836       if (flowName == 0 || format_name == 0)
02837         ACE_ERROR ((LM_ERROR, "TAO_VDev::set_format: flowName or format_name is null\n"));
02838       char format_property [BUFSIZ];
02839       ACE_OS::sprintf (format_property, "%s_currFormat", flowName);
02840       CORBA::Any format;
02841       format <<= format_name;
02842       this->define_property (format_property,
02843                              format);
02844     }
02845   catch (const CORBA::Exception& ex)
02846     {
02847       ex._tao_print_exception ("TAO_VDev::set_format");
02848       return;
02849     }
02850   return;
02851 }

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 2814 of file AVStreams_i.cpp.

References mcast_peer_.

02818 {
02819   this->mcast_peer_ = AVStreams::MCastConfigIf::_duplicate (mcast_peer);
02820   return 1;
02821 }

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 2802 of file AVStreams_i.cpp.

References CORBA::release().

Referenced by set_peer().

02804 {
02805   //  since the media ctrl is not stored or used, delete it.
02806 
02807   CORBA::release( media_ctrl);
02808 
02809   return 1;
02810 }

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 2760 of file AVStreams_i.cpp.

References CORBA::Exception::_tao_print_exception(), ACE_DEBUG, LM_DEBUG, peer_, set_media_ctrl(), streamctrl_, and TAO_debug_level.

02764 {
02765   ACE_UNUSED_ARG (the_qos);
02766   ACE_UNUSED_ARG (the_spec);
02767 
02768   CORBA::Boolean result = 0;
02769   try
02770     {
02771       if (TAO_debug_level > 0)
02772         ACE_DEBUG ((LM_DEBUG, "(%P|%t) TAO_VDev::set_peer: called\n"));
02773 
02774 
02775       CORBA::Any anyval;
02776       anyval <<= the_peer_dev;
02777       this->define_property ("Related_VDev",
02778                              anyval);
02779 
02780 
02781       this->streamctrl_ = AVStreams::StreamCtrl::_duplicate (the_ctrl);
02782       this->peer_ = AVStreams::VDev::_duplicate (the_peer_dev);
02783 
02784       CORBA::Any_var anyptr;
02785       anyptr = this->peer_->get_property_value ("Related_MediaCtrl");
02786 
02787       CORBA::Object_ptr media_ctrl_obj = 0;
02788 
02789       anyptr.in () >>= CORBA::Any::to_object(media_ctrl_obj);
02790 
02791       result = this->set_media_ctrl (media_ctrl_obj);
02792     }
02793   catch (const CORBA::Exception& ex)
02794     {
02795       ex._tao_print_exception ("TAO_VDev::set_peer");
02796       return 0;
02797     }
02798   return result;
02799 }


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.

Referenced by set_peer().

AVStreams::StreamCtrl_var TAO_VDev::streamctrl_ [protected]

My stream controller.

Definition at line 685 of file AVStreams_i.h.

Referenced by set_peer().


The documentation for this class was generated from the following files:
Generated on Tue Feb 2 17:48:12 2010 for TAO_AV by  doxygen 1.4.7