TAO_FDev< T_Producer, T_Consumer > Class Template Reference

Implementation of the AV/Streams Flow Device. A FlowConnection is used to bind FDevs for flows, much like how a StreamCtrl is used to bind MMDevices for streams. More...

#include <Flows_T.h>

Collaboration diagram for TAO_FDev< T_Producer, T_Consumer >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 TAO_FDev (void)
 default constructor

 TAO_FDev (const char *flowname)
 constructor taking a flowname.

 ~TAO_FDev (void)
 Destructor..

const char * flowname (void)
void flowname (const char *flowname)

Public Attributes

AVStreams::FlowProducer_ptr
virtual create_producer(AVStreams::FlowConnection_ptr
the_requester, AVStreams::QoS
&the_qos, CORBA::Boolean_out
met_qos, char *&named_fdev
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC((CORBA AVStreams::FlowProducer_pt 
make_producer )(AVStreams::FlowConnection_ptr the_requester, AVStreams::QoS &the_qos, CORBA::Boolean_out met_qos, char *&named_fdev ACE_ENV_ARG_DECL_WITH_DEFAULTS)
virtual AVStreams::FlowConsumer_ptr
virtual create_consumer(AVStreams::FlowConnection_ptr
the_requester, AVStreams::QoS
&the_qos, CORBA::Boolean_out
met_qos, char *&named_fdev
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC((CORBA AVStreams::FlowConsumer_pt 
make_consumer )(AVStreams::FlowConnection_ptr the_requester, AVStreams::QoS &the_qos, CORBA::Boolean_out met_qos, char *&named_fdev ACE_ENV_ARG_DECL_WITH_DEFAULTS)
 create a flow consumer object.


Protected Types

typedef ACE_DLList_Iterator<
TAO_FlowProducer
PRODUCER_LIST_ITERATOR
typedef ACE_DLList_Iterator<
TAO_FlowConsumer
CONSUMER_LIST_ITERATOR

Protected Attributes

ACE_DLList< TAO_FlowProducerproducer_list_
 destroys this FDev.

ACE_DLList< TAO_FlowConsumerconsumer_list_
CORBA::String_var flowname_

Detailed Description

template<class T_Producer, class T_Consumer>
class TAO_FDev< T_Producer, T_Consumer >

Implementation of the AV/Streams Flow Device. A FlowConnection is used to bind FDevs for flows, much like how a StreamCtrl is used to bind MMDevices for streams.

Definition at line 29 of file Flows_T.h.


Member Typedef Documentation

template<class T_Producer, class T_Consumer>
typedef ACE_DLList_Iterator<TAO_FlowConsumer> TAO_FDev< T_Producer, T_Consumer >::CONSUMER_LIST_ITERATOR [protected]
 

Definition at line 115 of file Flows_T.h.

template<class T_Producer, class T_Consumer>
typedef ACE_DLList_Iterator<TAO_FlowProducer> TAO_FDev< T_Producer, T_Consumer >::PRODUCER_LIST_ITERATOR [protected]
 

Definition at line 113 of file Flows_T.h.


Constructor & Destructor Documentation

template<class T_Producer, class T_Consumer>
TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO_FDev< T_Producer, T_Consumer >::TAO_FDev void   ) 
 

default constructor

Definition at line 17 of file Flows_T.cpp.

00018 {
00019 }

template<class T_Producer, class T_Consumer>
TAO_FDev< T_Producer, T_Consumer >::TAO_FDev const char *  flowname  ) 
 

constructor taking a flowname.

Definition at line 22 of file Flows_T.cpp.

References ACE_ANY_EXCEPTION, ACE_CATCHANY, ACE_CHECK, ACE_DECLARE_NEW_CORBA_ENV, ACE_ENDTRY, ACE_ENV_ARG_PARAMETER, ACE_PRINT_EXCEPTION, ACE_TRY, and ACE_TRY_CHECK.

00023   :flowname_ (flowname)
00024 {
00025   ACE_DECLARE_NEW_CORBA_ENV;
00026   ACE_TRY
00027     {
00028       CORBA::Any flowname_any;
00029       flowname_any <<= flowname;
00030       this->define_property ("Flow",
00031                              flowname_any
00032                              ACE_ENV_ARG_PARAMETER);
00033       ACE_TRY_CHECK;
00034     }
00035   ACE_CATCHANY
00036     {
00037       ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,"TAO_FDev::TAO_FDev");
00038     }
00039   ACE_ENDTRY;
00040   ACE_CHECK;
00041 }

template<class T_Producer, class T_Consumer>
TAO_FDev< T_Producer, T_Consumer >::~TAO_FDev void   ) 
 

Destructor..

Definition at line 44 of file Flows_T.cpp.

00045 {
00046   //no-op
00047 }


Member Function Documentation

template<class T_Producer, class T_Consumer>
void TAO_FDev< T_Producer, T_Consumer >::flowname const char *  flowname  ) 
 

Definition at line 58 of file Flows_T.cpp.

References ACE_ANY_EXCEPTION, ACE_CATCHANY, ACE_CHECK, ACE_DECLARE_NEW_CORBA_ENV, ACE_ENDTRY, ACE_ENV_ARG_PARAMETER, ACE_PRINT_EXCEPTION, ACE_TRY, and ACE_TRY_CHECK.

00059 {
00060   ACE_DECLARE_NEW_CORBA_ENV;
00061   ACE_TRY
00062     {
00063       CORBA::Any flowname_any;
00064       flowname_any <<= flow_name;
00065       this->define_property ("Flow",
00066                              flowname_any
00067                              ACE_ENV_ARG_PARAMETER);
00068       ACE_TRY_CHECK;
00069     }
00070   ACE_CATCHANY
00071     {
00072       ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,"TAO_FDev::flowname");
00073     }
00074   ACE_ENDTRY;
00075   ACE_CHECK;
00076   this->flowname_ = flow_name;
00077 }

template<class T_Producer, class T_Consumer>
const char * TAO_FDev< T_Producer, T_Consumer >::flowname void   ) 
 

set/get the flowname. create a flow producer object.

Definition at line 51 of file Flows_T.cpp.

00052 {
00053   return this->flowname_.in ();
00054 }


Member Data Documentation

template<class T_Producer, class T_Consumer>
ACE_DLList<TAO_FlowConsumer> TAO_FDev< T_Producer, T_Consumer >::consumer_list_ [protected]
 

Definition at line 114 of file Flows_T.h.

template<class T_Producer, class T_Consumer>
CORBA::String_var TAO_FDev< T_Producer, T_Consumer >::flowname_ [protected]
 

Definition at line 116 of file Flows_T.h.

template<class T_Producer, class T_Consumer>
AVStreams::FlowConsumer_ptr TAO_FDev< T_Producer, T_Consumer >::make_consumer
 

create a flow consumer object.

bridge method for the application to override the consumer object creation. Default implementation creates a TAO_FlowConsumer.

Definition at line 132 of file Flows_T.cpp.

00137 {
00138   AVStreams::FlowConsumer_ptr consumer = AVStreams::FlowConsumer::_nil ();
00139   ACE_TRY
00140     {
00141       // Activate the consumer implementation under the Root POA.
00142       T_Consumer *consumer_i;
00143       ACE_NEW_RETURN (consumer_i, T_Consumer, 0 );
00144 
00145       this->consumer_list_.insert_tail (consumer_i);
00146       consumer = consumer_i->_this (ACE_ENV_SINGLE_ARG_PARAMETER);
00147       ACE_TRY_CHECK;
00148     }
00149   ACE_CATCHANY
00150     {
00151       ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,"TAO_FDev::make_consumer");
00152       return consumer;
00153     }
00154   ACE_ENDTRY;
00155   ACE_CHECK_RETURN (consumer);
00156   return consumer;
00157 }

template<class T_Producer, class T_Consumer>
AVStreams::FlowProducer_ptr TAO_FDev< T_Producer, T_Consumer >::make_producer
 

bridge method for the application to override the producer object creation. Default implementation creates a TAO_FlowProducer.

Definition at line 103 of file Flows_T.cpp.

00108 {
00109   AVStreams::FlowProducer_ptr producer = AVStreams::FlowProducer::_nil ();
00110   ACE_TRY
00111     {
00112       // Activate the producer implementation under the Root POA.
00113       T_Producer *producer_i;
00114       ACE_NEW_RETURN (producer_i, T_Producer, 0);
00115       this->producer_list_.insert_tail (producer_i);
00116       producer = producer_i->_this (ACE_ENV_SINGLE_ARG_PARAMETER);
00117       ACE_TRY_CHECK;
00118     }
00119   ACE_CATCHANY
00120     {
00121       ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,"TAO_FDev::make_producer");
00122       return producer;
00123     }
00124   ACE_ENDTRY;
00125   ACE_CHECK_RETURN (producer);
00126   return producer;
00127 }

template<class T_Producer, class T_Consumer>
ACE_DLList<TAO_FlowProducer> TAO_FDev< T_Producer, T_Consumer >::producer_list_ [protected]
 

destroys this FDev.

Definition at line 105 of file Flows_T.h.


The documentation for this class was generated from the following files:
Generated on Thu Nov 9 13:48:28 2006 for TAO_AV by doxygen 1.3.6