#include <AVStreams_i.h>
Inheritance diagram for TAO_Basic_StreamCtrl:


Public Member Functions | |
| TAO_Basic_StreamCtrl (void) | |
| Default Constructor. | |
| virtual void | stop (const AVStreams::flowSpec &the_spec) |
| virtual void | start (const AVStreams::flowSpec &the_spec) |
| virtual void | destroy (const AVStreams::flowSpec &the_spec) |
| virtual CORBA::Boolean | modify_QoS (AVStreams::streamQoS &new_qos, const AVStreams::flowSpec &the_spec) |
| virtual void | push_event (const struct CosPropertyService::Property &the_event) |
| virtual void | set_FPStatus (const AVStreams::flowSpec &the_spec, const char *fp_name, const CORBA::Any &fp_settings) |
| Used to control the flow protocol parameters. | |
| virtual CORBA::Object_ptr | get_flow_connection (const char *flow_name) |
| virtual void | set_flow_connection (const char *flow_name, CORBA::Object_ptr flow_connection) |
Protected Types | |
| typedef ACE_Hash_Map_Manager< ACE_CString, AVStreams::FlowConnection_var, ACE_Null_Mutex > | FlowConnection_Map |
| Hash table for the flow names and its corresponding flowconnection object reference. | |
| typedef ACE_Hash_Map_Iterator< ACE_CString, AVStreams::FlowConnection_var, ACE_Null_Mutex > | FlowConnection_Map_Iterator |
| typedef ACE_Hash_Map_Entry< ACE_CString, AVStreams::FlowConnection_var > | FlowConnection_Map_Entry |
Protected Member Functions | |
| virtual | ~TAO_Basic_StreamCtrl (void) |
| Destructor. | |
Protected Attributes | |
| AVStreams::VDev_var | vdev_a_ |
| The Virtual Devices for this stream. | |
| AVStreams::VDev_var | vdev_b_ |
| AVStreams::StreamEndPoint_A_var | sep_a_ |
| The Endpoints for this stream. | |
| AVStreams::StreamEndPoint_B_var | sep_b_ |
| FlowConnection_Map | flow_connection_map_ |
| AVStreams::FlowConnection_seq | flowConnections_ |
| u_int | flow_count_ |
| sequence of flow names. | |
| AVStreams::flowSpec | flows_ |
Definition at line 75 of file AVStreams_i.h.
|
|
Hash table for the flow names and its corresponding flowconnection object reference.
Definition at line 137 of file AVStreams_i.h. |
|
|
Definition at line 139 of file AVStreams_i.h. |
|
|
Definition at line 138 of file AVStreams_i.h. |
|
|
Default Constructor.
Definition at line 70 of file AVStreams_i.cpp.
00071 :flow_count_ (0) 00072 { 00073 } |
|
|
Destructor.
Definition at line 280 of file AVStreams_i.cpp.
00281 {
00282 }
|
|
|
Tears down the stream. This will close the connection, and delete the streamendpoint and vdev associated with this stream Empty the_spec means apply operation to all flows Reimplemented in TAO_StreamCtrl. Definition at line 166 of file AVStreams_i.cpp. References ACE_CString, ACE_Hash_Map_Iterator_Ex< EXT_ID, INT_ID, ACE_Hash< EXT_ID >, ACE_Equal_To< EXT_ID >, ACE_LOCK >::advance(), ACE_Hash_Map_Manager_Ex< EXT_ID, INT_ID, ACE_Hash< EXT_ID >, ACE_Equal_To< EXT_ID >, ACE_LOCK >::current_size(), ACE_Hash_Map_Manager_Ex< EXT_ID, INT_ID, ACE_Hash< EXT_ID >, ACE_Equal_To< EXT_ID >, ACE_LOCK >::find(), flow_connection_map_, FlowConnection_Map_Entry, FlowConnection_Map_Iterator, AVStreams::flowSpec, TAO_AV_Core::get_flowname(), ACE_Hash_Map_Entry< EXT_ID, INT_ID >::int_id_, and ACE_Hash_Map_Iterator_Base_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::next(). Referenced by TAO_StreamCtrl::destroy().
00167 {
00168 try
00169 {
00170 // call stop on the flow connections.
00171 if (this->flow_connection_map_.current_size () > 0)
00172 {
00173 if (flow_spec.length () > 0)
00174 {
00175 for (u_int i=0;i<flow_spec.length ();i++)
00176 {
00177 char *flowname = TAO_AV_Core::get_flowname (flow_spec[i]);
00178 ACE_CString flow_name_key (flowname);
00179 FlowConnection_Map::ENTRY *flow_connection_entry = 0;
00180 if (this->flow_connection_map_.find (flow_name_key, flow_connection_entry) == 0)
00181 {
00182 flow_connection_entry->int_id_->destroy ();
00183 }
00184 }
00185 }
00186 else
00187 {
00188 // call destroy on all the flows.
00189 FlowConnection_Map_Iterator iterator (this->flow_connection_map_);
00190 FlowConnection_Map_Entry *entry = 0;
00191 for (;iterator.next (entry) != 0;iterator.advance ())
00192 {
00193 entry->int_id_->destroy ();
00194 }
00195 }
00196 }
00197 }
00198 catch (const CORBA::Exception& ex)
00199 {
00200 ex._tao_print_exception ("TAO_Basic_StreamCtrl::destroy");
00201 return;
00202 }
00203 }
|
|
|
Not implemented in the light profile, will raise the notsupported exception Definition at line 239 of file AVStreams_i.cpp. References ACE_CString, ACE_DEBUG, ACE_Hash_Map_Manager_Ex< EXT_ID, INT_ID, ACE_Hash< EXT_ID >, ACE_Equal_To< EXT_ID >, ACE_LOCK >::find(), flow_connection_map_, LM_DEBUG, and TAO_debug_level. Referenced by TAO_StreamCtrl::bind().
00240 {
00241 ACE_CString flow_name_key (flow_name);
00242 AVStreams::FlowConnection_var flow_connection_entry;
00243
00244 if (this->flow_connection_map_.find (flow_name_key, flow_connection_entry) == 0){
00245 return flow_connection_entry._retn();
00246 }
00247 else{
00248 if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG, "(%N,%l) Cannot find flow: %s\n", flow_name ));
00249 throw AVStreams::noSuchFlow ();
00250 }
00251 }
|
|
||||||||||||
|
Changes the QoS associated with the stream Empty the_spec means apply operation to all flows Reimplemented in TAO_StreamCtrl. Definition at line 209 of file AVStreams_i.cpp. References AVStreams::flowSpec, and AVStreams::streamQoS.
00211 {
00212 return 1;
00213 }
|
|
|
Used by StreamEndPoint and VDev to inform StreamCtrl of events. E.g., loss of flow, reestablishment of flow, etc.. Definition at line 218 of file AVStreams_i.cpp. References ACE_DEBUG, LM_DEBUG, and TAO_debug_level.
00219 {
00220 if (TAO_debug_level > 0)
00221 ACE_DEBUG ((LM_DEBUG, "\n(%P|%t) Recieved event \""));
00222 }
|
|
||||||||||||
|
Not implemented in the light profile, will raise the notsupported exception Definition at line 255 of file AVStreams_i.cpp. References ACE_CString, ACE_DEBUG, ACE_Hash_Map_Manager_Ex< EXT_ID, INT_ID, ACE_Hash< EXT_ID >, ACE_Equal_To< EXT_ID >, ACE_LOCK >::bind(), flow_connection_map_, flow_count_, flows_, LM_DEBUG, CORBA::string_dup(), and TAO_debug_level. Referenced by TAO_StreamCtrl::bind().
00257 {
00258 AVStreams::FlowConnection_var flow_connection;
00259 try
00260 {
00261 flow_connection = AVStreams::FlowConnection::_narrow (flow_connection_obj);
00262 }
00263 catch (const CORBA::Exception& ex)
00264 {
00265 ex._tao_print_exception (
00266 "TAO_Basic_StreamCtrl::set_flow_connection");
00267 return;
00268 }
00269 // add the flowname and the flowconnection to the hashtable.
00270 this->flows_.length (this->flow_count_ + 1);
00271 this->flows_ [this->flow_count_++] = CORBA::string_dup (flow_name);
00272 ACE_CString flow_name_key (flow_name);
00273 if (this->flow_connection_map_.bind (flow_name_key, flow_connection) != 0)
00274 {
00275 if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG, "(%N,%l) Cannot find flow: %s\n", flow_name ));
00276 throw AVStreams::noSuchFlow ();// is this right?
00277 }
00278 }
|
|
||||||||||||||||
|
Used to control the flow protocol parameters.
Definition at line 226 of file AVStreams_i.cpp. References AVStreams::flowSpec, CORBA::is_nil(), and sep_a_.
00230 {
00231 if (!CORBA::is_nil (this->sep_a_.in ()))
00232 {
00233 this->sep_a_->set_FPStatus (flow_spec, fp_name, fp_settings);
00234 }
00235 }
|
|
|
Start the transfer of data in the stream. Empty the_spec means apply operation to all flows Reimplemented in TAO_StreamCtrl. Definition at line 121 of file AVStreams_i.cpp. References ACE_CString, ACE_Hash_Map_Iterator_Ex< EXT_ID, INT_ID, ACE_Hash< EXT_ID >, ACE_Equal_To< EXT_ID >, ACE_LOCK >::advance(), ACE_Hash_Map_Manager_Ex< EXT_ID, INT_ID, ACE_Hash< EXT_ID >, ACE_Equal_To< EXT_ID >, ACE_LOCK >::current_size(), ACE_Hash_Map_Manager_Ex< EXT_ID, INT_ID, ACE_Hash< EXT_ID >, ACE_Equal_To< EXT_ID >, ACE_LOCK >::find(), flow_connection_map_, FlowConnection_Map_Entry, FlowConnection_Map_Iterator, AVStreams::flowSpec, TAO_AV_Core::get_flowname(), ACE_Hash_Map_Entry< EXT_ID, INT_ID >::int_id_, and ACE_Hash_Map_Iterator_Base_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::next(). Referenced by TAO_StreamCtrl::start().
00122 {
00123 try
00124 {
00125 // @@Call start on the Related MediaCtrl.
00126
00127 // call start on the flow connections.
00128 if (this->flow_connection_map_.current_size () > 0)
00129 {
00130 if (flow_spec.length () > 0)
00131 for (u_int i = 0; i < flow_spec.length (); i++)
00132 {
00133 char *flowname = TAO_AV_Core::get_flowname (flow_spec[i]);
00134 ACE_CString flow_name_key (flowname);
00135 FlowConnection_Map::ENTRY *flow_connection_entry = 0;
00136 if (this->flow_connection_map_.find (flow_name_key,
00137 flow_connection_entry) == 0)
00138 {
00139 flow_connection_entry->int_id_->start ();
00140 }
00141 }
00142 else
00143 {
00144 // call start on all the flows.
00145 FlowConnection_Map_Iterator iterator (this->flow_connection_map_);
00146 FlowConnection_Map_Entry *entry = 0;
00147 for (;iterator.next (entry) != 0;iterator.advance ())
00148 {
00149 entry->int_id_->start ();
00150 }
00151 }
00152 }
00153 }
00154 catch (const CORBA::Exception& ex)
00155 {
00156 ex._tao_print_exception ("TAO_Basic_StreamCtrl::start");
00157 return;
00158 }
00159 }
|
|
|
Stop the transfer of data of the stream Empty the_spec means apply operation to all flows Reimplemented in TAO_StreamCtrl. Definition at line 79 of file AVStreams_i.cpp. References ACE_CString, ACE_Hash_Map_Iterator_Ex< EXT_ID, INT_ID, ACE_Hash< EXT_ID >, ACE_Equal_To< EXT_ID >, ACE_LOCK >::advance(), ACE_Hash_Map_Manager_Ex< EXT_ID, INT_ID, ACE_Hash< EXT_ID >, ACE_Equal_To< EXT_ID >, ACE_LOCK >::current_size(), ACE_Hash_Map_Manager_Ex< EXT_ID, INT_ID, ACE_Hash< EXT_ID >, ACE_Equal_To< EXT_ID >, ACE_LOCK >::find(), flow_connection_map_, FlowConnection_Map_Entry, FlowConnection_Map_Iterator, AVStreams::flowSpec, TAO_AV_Core::get_flowname(), ACE_Hash_Map_Entry< EXT_ID, INT_ID >::int_id_, and ACE_Hash_Map_Iterator_Base_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::next(). Referenced by TAO_StreamCtrl::stop().
00080 {
00081 try
00082 {
00083 // @@Call stop on the Related MediaCtrl. call stop on the flow
00084 // connections.
00085 if (this->flow_connection_map_.current_size () > 0)
00086 {
00087 if (flow_spec.length () > 0)
00088 for (u_int i=0;i<flow_spec.length ();i++)
00089 {
00090 char *flowname = TAO_AV_Core::get_flowname (flow_spec[i]);
00091 ACE_CString flow_name_key (flowname);
00092 AVStreams::FlowConnection_var flow_connection_entry;
00093 if (this->flow_connection_map_.find (flow_name_key,
00094 flow_connection_entry) == 0)
00095 {
00096 flow_connection_entry->stop ();
00097 }
00098 }
00099 else
00100 {
00101 // call stop on all the flows.
00102 FlowConnection_Map_Iterator iterator (this->flow_connection_map_);
00103 FlowConnection_Map_Entry *entry;
00104 for (;iterator.next (entry) != 0;iterator.advance ())
00105 {
00106 entry->int_id_->stop ();
00107 }
00108 }
00109 }
00110 }
00111 catch (const CORBA::Exception& ex)
00112 {
00113 ex._tao_print_exception ("TAO_Basic_StreamCtrl::stop");
00114 return;
00115 }
00116 }
|
|
|
Definition at line 140 of file AVStreams_i.h. Referenced by destroy(), get_flow_connection(), set_flow_connection(), start(), and stop(). |
|
|
sequence of flow names.
Definition at line 144 of file AVStreams_i.h. Referenced by set_flow_connection(). |
|
|
Definition at line 141 of file AVStreams_i.h. |
|
|
Definition at line 145 of file AVStreams_i.h. Referenced by set_flow_connection(). |
|
|
The Endpoints for this stream.
Definition at line 133 of file AVStreams_i.h. Referenced by set_FPStatus(). |
|
|
Definition at line 134 of file AVStreams_i.h. |
|
|
The Virtual Devices for this stream.
Definition at line 129 of file AVStreams_i.h. |
|
|
Definition at line 130 of file AVStreams_i.h. |
1.3.6