diff options
Diffstat (limited to 'TAO/orbsvcs')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/AVStreams_i.cpp | 265 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/AVStreams_i.h | 524 |
2 files changed, 653 insertions, 136 deletions
diff --git a/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.cpp b/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.cpp index 5668be63315..1eef8c830e4 100644 --- a/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.cpp +++ b/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.cpp @@ -47,6 +47,9 @@ TAO_Basic_StreamCtrl::~TAO_Basic_StreamCtrl (void) void TAO_Basic_StreamCtrl::stop (const AVStreams::flowSpec &the_spec, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow)) + { if (CORBA::is_nil (this->sep_a_.in ())) return; @@ -60,6 +63,8 @@ TAO_Basic_StreamCtrl::stop (const AVStreams::flowSpec &the_spec, void TAO_Basic_StreamCtrl::start (const AVStreams::flowSpec &flow_spec, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow)) { // call start on the flow connections. if (CORBA::is_nil (this->sep_a_.in ())) @@ -75,6 +80,8 @@ TAO_Basic_StreamCtrl::start (const AVStreams::flowSpec &flow_spec, void TAO_Basic_StreamCtrl::destroy (const AVStreams::flowSpec &the_spec, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow)) { if (CORBA::is_nil (this->sep_a_.in ())) return; @@ -89,6 +96,9 @@ CORBA::Boolean TAO_Basic_StreamCtrl::modify_QoS (AVStreams::streamQoS & new_qos, const AVStreams::flowSpec &the_spec, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed)) { ACE_TRY { @@ -112,6 +122,7 @@ TAO_Basic_StreamCtrl::modify_QoS (AVStreams::streamQoS & new_qos, void TAO_Basic_StreamCtrl::push_event (const struct CosPropertyService::Property & /* the_event */, CORBA::Environment & /* ACE_TRY_ENV */) + ACE_THROW_SPEC ((CORBA::SystemException)) { ACE_DEBUG ((LM_DEBUG,"\n(%P|%t) Recieved event \"")); } @@ -122,6 +133,10 @@ TAO_Basic_StreamCtrl::set_FPStatus (const AVStreams::flowSpec &/* the_spec */, const char * /* fp_name */, const CORBA::Any &/* fp_settings */, CORBA::Environment &/* ACE_TRY_ENV */) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::notSupported)) + { } @@ -129,6 +144,9 @@ TAO_Basic_StreamCtrl::set_FPStatus (const AVStreams::flowSpec &/* the_spec */, CORBA::Object_ptr TAO_Basic_StreamCtrl::get_flow_connection (const char *flow_name, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::notSupported)) { TAO_String_Hash_Key flow_name_key (flow_name); FlowConnection_Map::ENTRY *flow_connection_entry = 0; @@ -143,6 +161,9 @@ void TAO_Basic_StreamCtrl::set_flow_connection (const char *flow_name, CORBA::Object_ptr flow_connection, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::notSupported)) { // add the flowname and the flowconnection to the hashtable. this->flows_ [this->flow_count_++] = CORBA::string_dup (flow_name); @@ -160,6 +181,7 @@ CORBA::Boolean TAO_Negotiator::negotiate (AVStreams::Negotiator_ptr remote_negotiator, const AVStreams::streamQoS &qos_spec, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) { return 0; } @@ -188,6 +210,10 @@ TAO_StreamCtrl::bind_devs (AVStreams::MMDevice_ptr a_party, AVStreams::streamQoS &the_qos, const AVStreams::flowSpec &the_flows, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed)) { // do a Qos Translation from application level Qos to Network level Qos?? ACE_TRY @@ -330,6 +356,10 @@ TAO_StreamCtrl::bind (AVStreams::StreamEndPoint_A_ptr sep_a, AVStreams::streamQoS &the_qos, const AVStreams::flowSpec &the_flows, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed)) { this->sep_a_ = sep_a; this->sep_b_ = sep_b; @@ -460,6 +490,8 @@ TAO_StreamCtrl::bind (AVStreams::StreamEndPoint_A_ptr sep_a, void TAO_StreamCtrl::unbind (CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed)) { ACE_UNUSED_ARG (ACE_TRY_ENV); } @@ -468,6 +500,9 @@ void TAO_StreamCtrl::unbind_party (AVStreams::StreamEndPoint_ptr the_ep, const AVStreams::flowSpec &the_spec, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::noSuchFlow)) { ACE_UNUSED_ARG (the_ep); ACE_UNUSED_ARG (the_spec); @@ -478,6 +513,9 @@ void TAO_StreamCtrl::unbind_dev (AVStreams::MMDevice_ptr dev, const AVStreams::flowSpec & the_spec, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::noSuchFlow)) { } @@ -486,6 +524,8 @@ AVStreams::VDev_ptr TAO_StreamCtrl::get_related_vdev (AVStreams::MMDevice_ptr adev, AVStreams::StreamEndPoint_out sep, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed)) { return AVStreams::VDev::_nil (); } @@ -494,6 +534,9 @@ CORBA::Boolean TAO_StreamCtrl::modify_QoS (AVStreams::streamQoS &the_qos, const AVStreams::flowSpec &the_spec, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed)) { if (this->mcastconfigif_ != 0) { @@ -516,6 +559,9 @@ TAO_MCastConfigIf::set_peer (CORBA::Object_ptr peer, AVStreams::streamQoS & the_qos, const AVStreams::flowSpec & the_spec, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::QoSRequestFailed, + AVStreams::streamOpFailed)) { return 0; } @@ -523,12 +569,14 @@ TAO_MCastConfigIf::set_peer (CORBA::Object_ptr peer, void TAO_MCastConfigIf::configure (const CosPropertyService::Property & a_configuration, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) { } void TAO_MCastConfigIf::set_initial_configuration (const CosPropertyService::Properties & initial, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) { } @@ -536,6 +584,8 @@ void TAO_MCastConfigIf::set_format (const char * flowName, const char * format_name, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notSupported)) { } @@ -543,6 +593,9 @@ void TAO_MCastConfigIf::set_dev_params (const char * flowName, const CosPropertyService::Properties & new_params, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::PropertyException, + AVStreams::streamOpFailed)) { } @@ -578,6 +631,10 @@ TAO_Client_StreamEndPoint::connect (AVStreams::StreamEndPoint_ptr responder, AVStreams::streamQoS &qos_spec, const AVStreams::flowSpec &the_spec, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed, + AVStreams::streamOpFailed)) { CORBA::Boolean retv = 0; @@ -613,6 +670,10 @@ CORBA::Boolean TAO_Client_StreamEndPoint::multiconnect (AVStreams::streamQoS &the_qos, AVStreams::flowSpec &the_spec, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed, + AVStreams::streamOpFailed)) { ACE_UNUSED_ARG (the_qos); ACE_UNUSED_ARG (the_spec); @@ -626,6 +687,11 @@ TAO_Client_StreamEndPoint::connect_leaf (AVStreams::StreamEndPoint_B_ptr the_ep, AVStreams::streamQoS &the_qos, const AVStreams::flowSpec &the_flows, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed, + AVStreams::notSupported)) { ACE_UNUSED_ARG (the_ep); ACE_UNUSED_ARG (the_qos); @@ -639,6 +705,9 @@ void TAO_Client_StreamEndPoint::disconnect_leaf (AVStreams::StreamEndPoint_B_ptr the_ep, const AVStreams::flowSpec &theSpec, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::noSuchFlow)) { ACE_UNUSED_ARG (the_ep); ACE_UNUSED_ARG (theSpec); @@ -667,6 +736,10 @@ TAO_Server_StreamEndPoint::connect (AVStreams::StreamEndPoint_ptr responder, AVStreams::streamQoS &qos_spec, const AVStreams::flowSpec &the_spec, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed, + AVStreams::streamOpFailed)) { ACE_UNUSED_ARG (responder); ACE_UNUSED_ARG (qos_spec); @@ -685,7 +758,11 @@ TAO_Server_StreamEndPoint::request_connection (AVStreams::StreamEndPoint_ptr ini AVStreams::streamQoS &qos, AVStreams::flowSpec &the_spec, CORBA::Environment &ACE_TRY_ENV) - + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed, + AVStreams::FPError)) { int result = 0; ACE_TRY @@ -716,6 +793,11 @@ CORBA::Boolean TAO_Server_StreamEndPoint::multiconnect (AVStreams::streamQoS &the_qos, AVStreams::flowSpec &the_spec, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed, + AVStreams::FPError)) { ACE_UNUSED_ARG (the_qos); ACE_UNUSED_ARG (the_spec); @@ -746,6 +828,8 @@ TAO_StreamEndPoint::TAO_StreamEndPoint (void) void TAO_StreamEndPoint::stop (const AVStreams::flowSpec &the_spec, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow)) { // Make the upcall into the app this->handle_stop (the_spec, ACE_TRY_ENV); @@ -757,6 +841,8 @@ TAO_StreamEndPoint::stop (const AVStreams::flowSpec &the_spec, void TAO_StreamEndPoint::start (const AVStreams::flowSpec &flow_spec, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow)) { // Make the upcall into the app this->handle_start (flow_spec, ACE_TRY_ENV); @@ -766,7 +852,9 @@ TAO_StreamEndPoint::start (const AVStreams::flowSpec &flow_spec, void TAO_StreamEndPoint::destroy (const AVStreams::flowSpec &the_spec, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow)) { // // Make the upcall into the app // this->handle_destroy (the_spec, ACE_TRY_ENV); @@ -796,6 +884,11 @@ TAO_StreamEndPoint::request_connection (AVStreams::StreamEndPoint_ptr initiator, AVStreams::streamQoS &qos, AVStreams::flowSpec &the_spec, CORBA::Environment &) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed, + AVStreams::FPError)) { ACE_UNUSED_ARG (initiator); ACE_UNUSED_ARG (is_mcast); @@ -820,6 +913,9 @@ CORBA::Boolean TAO_StreamEndPoint::modify_QoS (AVStreams::streamQoS &new_qos, const AVStreams::flowSpec &the_flows, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed)) { ACE_UNUSED_ARG (new_qos); ACE_UNUSED_ARG (the_flows); @@ -832,6 +928,7 @@ TAO_StreamEndPoint::modify_QoS (AVStreams::streamQoS &new_qos, CORBA::Boolean TAO_StreamEndPoint::set_protocol_restriction (const AVStreams::protocolSpec &the_pspec, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) { ACE_TRY { @@ -857,6 +954,9 @@ TAO_StreamEndPoint::set_protocol_restriction (const AVStreams::protocolSpec &the void TAO_StreamEndPoint::disconnect (const AVStreams::flowSpec &the_spec, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::streamOpFailed)) { ACE_UNUSED_ARG (the_spec); ACE_UNUSED_ARG (ACE_TRY_ENV); @@ -869,6 +969,9 @@ TAO_StreamEndPoint::set_FPStatus (const AVStreams::flowSpec &the_spec, const char *fp_name, const CORBA::Any &fp_settings, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::FPError)) { ACE_UNUSED_ARG (the_spec); ACE_UNUSED_ARG (fp_name); @@ -880,6 +983,9 @@ TAO_StreamEndPoint::set_FPStatus (const AVStreams::flowSpec &the_spec, CORBA::Object_ptr TAO_StreamEndPoint::get_fep (const char *flow_name, CORBA::Environment &) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notSupported, + AVStreams::noSuchFlow)) { TAO_String_Hash_Key fep_name_key (flow_name); FlowEndPoint_Map::ENTRY *fep_entry = 0; @@ -891,7 +997,10 @@ TAO_StreamEndPoint::get_fep (const char *flow_name, char * TAO_StreamEndPoint::add_fep (CORBA::Object_ptr the_fep, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notSupported, + AVStreams::streamOpFailed)) { char *flow_name = 0; ACE_TRY_EX (flow_name); @@ -946,6 +1055,9 @@ TAO_StreamEndPoint::add_fep (CORBA::Object_ptr the_fep, void TAO_StreamEndPoint::remove_fep (const char *flow_name, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notSupported, + AVStreams::streamOpFailed)) { ACE_TRY { @@ -980,7 +1092,8 @@ TAO_StreamEndPoint::remove_fep (const char *flow_name, void TAO_StreamEndPoint::set_negotiator (AVStreams::Negotiator_ptr new_negotiator, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) { ACE_TRY { @@ -1005,6 +1118,7 @@ void TAO_StreamEndPoint::set_key (const char *flow_name, const AVStreams::key & the_key, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) { ACE_TRY { @@ -1031,6 +1145,7 @@ TAO_StreamEndPoint::set_key (const char *flow_name, void TAO_StreamEndPoint::set_source_id (CORBA::Long source_id, CORBA::Environment &) + ACE_THROW_SPEC ((CORBA::SystemException)) { this->source_id_ = source_id; } @@ -1059,6 +1174,10 @@ TAO_VDev::set_peer (AVStreams::StreamCtrl_ptr the_ctrl, AVStreams::streamQoS &the_qos, const AVStreams::flowSpec &the_spec, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed, + AVStreams::streamOpFailed)) { ACE_UNUSED_ARG (the_qos); ACE_UNUSED_ARG (the_spec); @@ -1122,6 +1241,7 @@ TAO_VDev::set_peer (AVStreams::StreamCtrl_ptr the_ctrl, CORBA::Boolean TAO_VDev::set_media_ctrl (CORBA::Object_ptr media_ctrl, CORBA::Environment &ACE_TRY_ENV) + { ACE_UNUSED_ARG (media_ctrl); ACE_UNUSED_ARG (ACE_TRY_ENV); @@ -1135,6 +1255,10 @@ TAO_VDev::set_Mcast_peer (AVStreams::StreamCtrl_ptr the_ctrl, AVStreams::streamQoS &the_qos, const AVStreams::flowSpec &the_spec, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed, + AVStreams::streamOpFailed)) { ACE_UNUSED_ARG (the_ctrl); ACE_UNUSED_ARG (a_mcastconfigif); @@ -1148,6 +1272,9 @@ TAO_VDev::set_Mcast_peer (AVStreams::StreamCtrl_ptr the_ctrl, void TAO_VDev::configure (const CosPropertyService::Property &the_config_mesg, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::PropertyException, + AVStreams::streamOpFailed)) { ACE_UNUSED_ARG (the_config_mesg); ACE_UNUSED_ARG (ACE_TRY_ENV); @@ -1158,6 +1285,8 @@ void TAO_VDev::set_format (const char *flowName, const char *format_name, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notSupported)) { ACE_TRY { @@ -1187,6 +1316,9 @@ void TAO_VDev::set_dev_params (const char *flowName, const CosPropertyService::Properties &new_params, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::PropertyException, + AVStreams::streamOpFailed)) { ACE_TRY { @@ -1217,6 +1349,9 @@ CORBA::Boolean TAO_VDev::modify_QoS (AVStreams::streamQoS &the_qos, const AVStreams::flowSpec &the_spec, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed)) { ACE_UNUSED_ARG (the_qos); ACE_UNUSED_ARG (the_spec); @@ -1246,6 +1381,10 @@ TAO_MMDevice::bind (AVStreams::MMDevice_ptr peer_device, CORBA::Boolean_out is_met, const AVStreams::flowSpec &the_spec, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed)) { AVStreams::StreamCtrl_ptr streamctrl (AVStreams::StreamCtrl::_nil ()); ACE_TRY @@ -1281,6 +1420,10 @@ TAO_MMDevice::bind_mcast (AVStreams::MMDevice_ptr first_peer, CORBA::Boolean_out is_met, const AVStreams::flowSpec &the_spec, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed)) { ACE_UNUSED_ARG (first_peer); ACE_UNUSED_ARG (the_qos); @@ -1298,6 +1441,12 @@ TAO_MMDevice::create_A (AVStreams::StreamCtrl_ptr the_requester, char *&named_vdev, const AVStreams::flowSpec &the_spec, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::streamOpDenied, + AVStreams::notSupported, + AVStreams::QoSRequestFailed, + AVStreams::noSuchFlow)) { ACE_UNUSED_ARG (the_requester); ACE_UNUSED_ARG (the_qos); @@ -1338,6 +1487,12 @@ TAO_MMDevice::create_B (AVStreams::StreamCtrl_ptr the_requester, char *&named_vdev, const AVStreams::flowSpec &the_spec, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::streamOpDenied, + AVStreams::notSupported, + AVStreams::QoSRequestFailed, + AVStreams::noSuchFlow)) { ACE_UNUSED_ARG (the_requester); ACE_UNUSED_ARG (the_qos); @@ -1374,6 +1529,8 @@ void TAO_MMDevice::destroy (AVStreams::StreamEndPoint_ptr the_ep, const char *vdev_name, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notSupported)) { // Remove self from POA. Because of reference counting, the POA // will automatically delete the servant when all pending requests @@ -1395,6 +1552,9 @@ TAO_MMDevice::destroy (AVStreams::StreamEndPoint_ptr the_ep, char * TAO_MMDevice::add_fdev (CORBA::Object_ptr the_fdev, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notSupported, + AVStreams::streamOpFailed)) { char *flow_name = 0; ACE_TRY_EX (flow_name) @@ -1448,6 +1608,9 @@ TAO_MMDevice::add_fdev (CORBA::Object_ptr the_fdev, CORBA::Object_ptr TAO_MMDevice::get_fdev (const char *flow_name, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notSupported, + AVStreams::noSuchFlow)) { ACE_UNUSED_ARG (ACE_TRY_ENV); @@ -1462,6 +1625,9 @@ TAO_MMDevice::get_fdev (const char *flow_name, void TAO_MMDevice::remove_fdev (const char *flow_name, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notSupported, + AVStreams::noSuchFlow)) { ACE_TRY { @@ -1512,6 +1678,7 @@ TAO_FlowConnection::TAO_FlowConnection (void) // stop this flow. void TAO_FlowConnection::stop (CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) { ACE_UNUSED_ARG (ACE_TRY_ENV); } @@ -1519,6 +1686,7 @@ TAO_FlowConnection::stop (CORBA::Environment &ACE_TRY_ENV) // start this flow. void TAO_FlowConnection::start (CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) { ACE_UNUSED_ARG (ACE_TRY_ENV); } @@ -1526,6 +1694,7 @@ TAO_FlowConnection::start (CORBA::Environment &ACE_TRY_ENV) // destroy this flow. void TAO_FlowConnection::destroy (CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) { // Remove self from POA. Because of reference counting, the POA // will automatically delete the servant when all pending requests @@ -1547,6 +1716,8 @@ TAO_FlowConnection::destroy (CORBA::Environment &ACE_TRY_ENV) CORBA::Boolean TAO_FlowConnection::modify_QoS (AVStreams::QoS & new_qos, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::QoSRequestFailed)) { ACE_UNUSED_ARG (new_qos); ACE_UNUSED_ARG (ACE_TRY_ENV); @@ -1558,6 +1729,9 @@ CORBA::Boolean TAO_FlowConnection::use_flow_protocol (const char * fp_name, const CORBA::Any & fp_settings, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::FPError, + AVStreams::notSupported)) { ACE_UNUSED_ARG (fp_settings); ACE_UNUSED_ARG (ACE_TRY_ENV); @@ -1568,6 +1742,7 @@ TAO_FlowConnection::use_flow_protocol (const char * fp_name, void TAO_FlowConnection::push_event (const AVStreams::streamEvent & the_event, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) { ACE_UNUSED_ARG (the_event); ACE_UNUSED_ARG (ACE_TRY_ENV); @@ -1578,6 +1753,10 @@ TAO_FlowConnection::connect_devs (AVStreams::FDev_ptr a_party, AVStreams::FDev_ptr b_party, AVStreams::QoS & the_qos, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::streamOpDenied, + AVStreams::QoSRequestFailed)) { ACE_UNUSED_ARG (a_party); ACE_UNUSED_ARG (b_party); @@ -1592,6 +1771,10 @@ TAO_FlowConnection::connect (AVStreams::FlowProducer_ptr flow_producer, AVStreams::FlowConsumer_ptr flow_consumer, AVStreams::QoS & the_qos, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::formatMismatch, + AVStreams::FEPMismatch, + AVStreams::alreadyConnected)) { ACE_TRY { @@ -1636,6 +1819,7 @@ TAO_FlowConnection::connect (AVStreams::FlowProducer_ptr flow_producer, CORBA::Boolean TAO_FlowConnection::disconnect (CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) { ACE_UNUSED_ARG (ACE_TRY_ENV); return 0; @@ -1645,6 +1829,9 @@ CORBA::Boolean TAO_FlowConnection::add_producer (AVStreams::FlowProducer_ptr flow_producer, AVStreams::QoS & the_qos, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::alreadyConnected, + AVStreams::notSupported)) { ACE_UNUSED_ARG (the_qos); ACE_UNUSED_ARG (ACE_TRY_ENV); @@ -1656,6 +1843,8 @@ CORBA::Boolean TAO_FlowConnection::add_consumer (AVStreams::FlowConsumer_ptr flow_consumer, AVStreams::QoS & the_qos, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::alreadyConnected)) { ACE_UNUSED_ARG (the_qos); ACE_UNUSED_ARG (ACE_TRY_ENV); @@ -1666,6 +1855,8 @@ TAO_FlowConnection::add_consumer (AVStreams::FlowConsumer_ptr flow_consumer, CORBA::Boolean TAO_FlowConnection::drop (AVStreams::FlowEndPoint_ptr target, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notConnected)) { ACE_UNUSED_ARG (target); ACE_UNUSED_ARG (ACE_TRY_ENV); @@ -1687,6 +1878,7 @@ TAO_FlowEndPoint::TAO_FlowEndPoint (void) // the same flowendpoint. CORBA::Boolean TAO_FlowEndPoint::lock (CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) { // lock the current flowendpoint ACE_UNUSED_ARG (ACE_TRY_ENV); @@ -1696,6 +1888,7 @@ TAO_FlowEndPoint::lock (CORBA::Environment &ACE_TRY_ENV) // unlocks the flowendpoint ,becomes free to be used in another flow. void TAO_FlowEndPoint::unlock (CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) { ACE_UNUSED_ARG (ACE_TRY_ENV); } @@ -1703,18 +1896,21 @@ TAO_FlowEndPoint::unlock (CORBA::Environment &ACE_TRY_ENV) // The start,stop and destroy are to be handled by the application. void TAO_FlowEndPoint::stop (CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) { ACE_UNUSED_ARG (ACE_TRY_ENV); } void TAO_FlowEndPoint::start (CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) { ACE_UNUSED_ARG (ACE_TRY_ENV); } void TAO_FlowEndPoint::destroy (CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) { // Remove self from POA. Because of reference counting, the POA // will automatically delete the servant when all pending requests @@ -1734,6 +1930,7 @@ TAO_FlowEndPoint::destroy (CORBA::Environment &ACE_TRY_ENV) AVStreams::StreamEndPoint_ptr TAO_FlowEndPoint::related_sep (CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) { ACE_UNUSED_ARG (ACE_TRY_ENV); return this->related_sep_; @@ -1742,6 +1939,7 @@ TAO_FlowEndPoint::related_sep (CORBA::Environment &ACE_TRY_ENV) void TAO_FlowEndPoint::related_sep (AVStreams::StreamEndPoint_ptr related_sep, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) { ACE_UNUSED_ARG (ACE_TRY_ENV); this->related_sep_ = related_sep; @@ -1749,6 +1947,7 @@ TAO_FlowEndPoint::related_sep (AVStreams::StreamEndPoint_ptr related_sep, AVStreams::FlowConnection_ptr TAO_FlowEndPoint::related_flow_connection (CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) { ACE_UNUSED_ARG (ACE_TRY_ENV); return this->related_flow_connection_; @@ -1757,6 +1956,7 @@ TAO_FlowEndPoint::related_flow_connection (CORBA::Environment &ACE_TRY_ENV) void TAO_FlowEndPoint::related_flow_connection (AVStreams::FlowConnection_ptr related_flow_connection, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) { ACE_UNUSED_ARG (ACE_TRY_ENV); this->related_flow_connection_ = related_flow_connection; @@ -1765,6 +1965,9 @@ TAO_FlowEndPoint::related_flow_connection (AVStreams::FlowConnection_ptr related // returns the connected peer for this flow AVStreams::FlowEndPoint_ptr TAO_FlowEndPoint::get_connected_fep (CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notConnected, + AVStreams::notSupported)) { ACE_UNUSED_ARG (ACE_TRY_ENV); return this->peer_fep_; @@ -1774,6 +1977,9 @@ CORBA::Boolean TAO_FlowEndPoint::use_flow_protocol (const char * fp_name, const CORBA::Any & fp_settings, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::FPError, + AVStreams::notSupported)) { ACE_UNUSED_ARG (fp_settings); ACE_TRY @@ -1799,6 +2005,8 @@ TAO_FlowEndPoint::use_flow_protocol (const char * fp_name, void TAO_FlowEndPoint::set_format (const char * format, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notSupported)) { ACE_TRY { @@ -1822,6 +2030,9 @@ TAO_FlowEndPoint::set_format (const char * format, void TAO_FlowEndPoint::set_dev_params (const CosPropertyService::Properties & new_settings, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::PropertyException, + AVStreams::streamOpFailed)) { ACE_TRY { @@ -1843,8 +2054,8 @@ TAO_FlowEndPoint::set_dev_params (const CosPropertyService::Properties & new_set void TAO_FlowEndPoint::set_protocol_restriction (const AVStreams::protocolSpec & the_spec, CORBA::Environment &ACE_TRY_ENV) - - + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notSupported)) { ACE_TRY { @@ -1866,6 +2077,9 @@ TAO_FlowEndPoint::set_protocol_restriction (const AVStreams::protocolSpec & the_ CORBA::Boolean TAO_FlowEndPoint::is_fep_compatible (AVStreams::FlowEndPoint_ptr peer_fep, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::formatMismatch, + AVStreams::deviceQosMismatch)) { ACE_TRY { @@ -1930,6 +2144,9 @@ TAO_FlowEndPoint::set_peer (AVStreams::FlowConnection_ptr the_fc, AVStreams::FlowEndPoint_ptr the_peer_fep, AVStreams::QoS & the_qos, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::QoSRequestFailed, + AVStreams::streamOpFailed)) { ACE_UNUSED_ARG (the_fc); ACE_UNUSED_ARG (the_peer_fep); @@ -1945,6 +2162,8 @@ TAO_FlowEndPoint::set_Mcast_peer (AVStreams::FlowConnection_ptr the_fc, AVStreams::MCastConfigIf_ptr a_mcastconfigif, AVStreams::QoS & the_qos, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::QoSRequestFailed)) { ACE_UNUSED_ARG (the_fc); ACE_UNUSED_ARG (a_mcastconfigif); @@ -1959,6 +2178,10 @@ TAO_FlowEndPoint::go_to_listen (AVStreams::QoS & the_qos, AVStreams::FlowProducer_ptr peer, char *& flowProtocol, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::failedToListen, + AVStreams::FPError, + AVStreams::QoSRequestFailed)) { return this->handle_go_to_listen (the_qos,is_mcast,peer,flowProtocol,ACE_TRY_ENV); } @@ -1984,6 +2207,10 @@ TAO_FlowEndPoint::connect_to_peer (AVStreams::QoS & the_qos, const char * address, const char * use_flow_protocol, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::failedToConnect, + AVStreams::FPError, + AVStreams::QoSRequestFailed)) { // Right now since the A/V framework doesnt bother about the // protocols we leave it to the application to handle the connection @@ -2024,6 +2251,11 @@ TAO_FlowProducer::connect_mcast (AVStreams::QoS & the_qos, const char * address, const char * use_flow_protocol, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::failedToConnect, + AVStreams::notSupported, + AVStreams::FPError, + AVStreams::QoSRequestFailed)) { ACE_UNUSED_ARG (the_qos); ACE_UNUSED_ARG (is_met); @@ -2037,6 +2269,7 @@ TAO_FlowProducer::connect_mcast (AVStreams::QoS & the_qos, char * TAO_FlowProducer::get_rev_channel (const char * pcol_name, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) { ACE_UNUSED_ARG (pcol_name); ACE_UNUSED_ARG (ACE_TRY_ENV); @@ -2047,6 +2280,7 @@ TAO_FlowProducer::get_rev_channel (const char * pcol_name, void TAO_FlowProducer::set_key (const AVStreams::key & the_key, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) { ACE_TRY { @@ -2069,6 +2303,7 @@ TAO_FlowProducer::set_key (const AVStreams::key & the_key, void TAO_FlowProducer::set_source_id (CORBA::Long source_id, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) { ACE_UNUSED_ARG (ACE_TRY_ENV); this->source_id_ = source_id; @@ -2101,6 +2336,11 @@ TAO_FDev::create_producer (AVStreams::FlowConnection_ptr the_requester, CORBA::Boolean_out met_qos, char *& named_fdev, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::streamOpDenied, + AVStreams::notSupported, + AVStreams::QoSRequestFailed)) { // call the bridge method. this->producer_ = this->make_producer (the_requester, @@ -2159,6 +2399,11 @@ TAO_FDev::create_consumer (AVStreams::FlowConnection_ptr the_requester, CORBA::Boolean_out met_qos, char *& named_fdev, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::streamOpDenied, + AVStreams::notSupported, + AVStreams::QoSRequestFailed)) { this->consumer_ = this->make_consumer (the_requester, the_qos, @@ -2174,6 +2419,9 @@ TAO_FDev::bind (AVStreams::FDev_ptr peer_device, AVStreams::QoS & the_qos, CORBA::Boolean_out is_met, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::QoSRequestFailed)) { ACE_UNUSED_ARG (peer_device); ACE_UNUSED_ARG (the_qos); @@ -2188,6 +2436,9 @@ TAO_FDev::bind_mcast (AVStreams::FDev_ptr first_peer, AVStreams::QoS & the_qos, CORBA::Boolean_out is_met, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::QoSRequestFailed)) { ACE_UNUSED_ARG (first_peer); ACE_UNUSED_ARG (the_qos); @@ -2200,6 +2451,8 @@ void TAO_FDev::destroy (AVStreams::FlowEndPoint_ptr /* the_ep */, const char * /* fdev_name */, CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notSupported)) { // Remove self from POA. Because of reference counting, the POA // will automatically delete the servant when all pending requests diff --git a/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.h b/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.h index abcf1e9568a..8d08e595ab9 100644 --- a/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.h +++ b/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.h @@ -56,62 +56,82 @@ class TAO_ORBSVCS_Export TAO_Basic_StreamCtrl : public virtual POA_AVStreams::Basic_StreamCtrl, public virtual TAO_PropertySet, public virtual PortableServer::RefCountServantBase -// = DESCRIPTION -// Base class for StreamCtrl, implements basic stream start -// and stop functionality { - public: + // = DESCRIPTION + // Base class for StreamCtrl, implements basic stream start + // and stop functionality + +public: TAO_Basic_StreamCtrl (void); // Default Constructor virtual void stop (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow)); // Stop the transfer of data of the stream // Empty the_spec means apply operation to all flows virtual void start (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow)); // Start the transfer of data in the stream. // Empty the_spec means apply operation to all flows virtual void destroy (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow)); // 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 virtual CORBA::Boolean modify_QoS (AVStreams::streamQoS &new_qos, const AVStreams::flowSpec &the_spec, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed)); // Changes the QoS associated with the stream // Empty the_spec means apply operation to all flows virtual void push_event (const struct CosPropertyService::Property & the_event, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); // Used by StreamEndPoint and VDev to inform StreamCtrl of events. // E.g., loss of flow, reestablishment of flow, etc.. virtual void set_FPStatus (const AVStreams::flowSpec &the_spec, const char *fp_name, const CORBA::Any &fp_settings, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::notSupported)); // Used to control the flow protocol parameters. virtual CORBA::Object_ptr get_flow_connection (const char *flow_name, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::notSupported)); // Not implemented in the light profile, will raise the notsupported // exception virtual void set_flow_connection (const char *flow_name, CORBA::Object_ptr flow_connection, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::notSupported)); // Not implemented in the light profile, will raise the notsupported // exception virtual ~TAO_Basic_StreamCtrl (void); // Destructor - protected: +protected: AVStreams::VDev_var vdev_a_; AVStreams::VDev_var vdev_b_; @@ -138,7 +158,8 @@ class TAO_ORBSVCS_Export TAO_Negotiator public: virtual CORBA::Boolean negotiate (AVStreams::Negotiator_ptr remote_negotiator, const AVStreams::streamQoS &qos_spec, - CORBA::Environment &ACE_TRY_ENV = CORBA::Environment::default_environment ()); + CORBA::Environment &ACE_TRY_ENV = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); }; class TAO_MCastConfigIf; @@ -160,7 +181,11 @@ public: AVStreams::MMDevice_ptr b_party, AVStreams::streamQoS &the_qos, const AVStreams::flowSpec &the_flows, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed)); // Establish a stream between a_party and b_party, // with qos the_qos, and for the flows in the_flows // if the_flows is empty, bind all the flows @@ -171,30 +196,47 @@ public: AVStreams::StreamEndPoint_B_ptr b_party, AVStreams::streamQoS &the_qos, const AVStreams::flowSpec &the_flows, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed)); // Establish a connection between two streamendpoints. This can // be used if the streamendpoints have been created independent of // a MMDevice + virtual void unbind_dev (AVStreams::MMDevice_ptr dev, + const AVStreams::flowSpec & the_spec, + CORBA::Environment &ACE_TRY_ENV = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::noSuchFlow)); + virtual void unbind_party (AVStreams::StreamEndPoint_ptr the_ep, const AVStreams::flowSpec &the_spec, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::noSuchFlow)); // Unbind the_ep from the stream. Empty the_spec means apply to all flows. - virtual void unbind (CORBA::Environment &env = CORBA::Environment::default_environment ()); + virtual void unbind (CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed)); // unbind the stream. Same effect as Basic_StreamCtrl::destroy () - virtual void unbind_dev (AVStreams::MMDevice_ptr dev, - const AVStreams::flowSpec & the_spec, - CORBA::Environment &ACE_TRY_ENV = CORBA::Environment::default_environment ()); - virtual AVStreams::VDev_ptr get_related_vdev (AVStreams::MMDevice_ptr adev, AVStreams::StreamEndPoint_out sep, - CORBA::Environment &ACE_TRY_ENV = CORBA::Environment::default_environment ()); + CORBA::Environment &ACE_TRY_ENV = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed)); virtual CORBA::Boolean modify_QoS (AVStreams::streamQoS &new_qos, const AVStreams::flowSpec &the_spec, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed)); // Changes the QoS associated with the stream // Empty the_spec means apply operation to all flows @@ -215,34 +257,44 @@ public: virtual CORBA::Boolean set_peer (CORBA::Object_ptr peer, AVStreams::streamQoS & the_qos, const AVStreams::flowSpec & the_spec, - CORBA::Environment &ACE_TRY_ENV = CORBA::Environment::default_environment ()) ; + CORBA::Environment &ACE_TRY_ENV = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::QoSRequestFailed, + AVStreams::streamOpFailed)); virtual void configure (const CosPropertyService::Property & a_configuration, - CORBA::Environment &ACE_TRY_ENV = CORBA::Environment::default_environment ()) ; + CORBA::Environment &ACE_TRY_ENV = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); virtual void set_initial_configuration (const CosPropertyService::Properties & initial, - CORBA::Environment &ACE_TRY_ENV = CORBA::Environment::default_environment ()) ; + CORBA::Environment &ACE_TRY_ENV = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); virtual void set_format (const char * flowName, const char * format_name, CORBA::Environment &ACE_TRY_ENV = - CORBA::Environment::default_environment ()) ; + CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notSupported)); virtual void set_dev_params (const char * flowName, const CosPropertyService::Properties & new_params, - CORBA::Environment &ACE_TRY_ENV = CORBA::Environment::default_environment ()) ; - + CORBA::Environment &ACE_TRY_ENV = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::PropertyException, + AVStreams::streamOpFailed)); + protected: ACE_SOCK_Dgram_Mcast sock_mcast_; // Multicast socket. }; class TAO_ORBSVCS_Export TAO_Base_StreamEndPoint -// = DESCRIPTION -// Base class for the A/V StreamEndPoint class. this class -// is used to control the stream. It should be subclassed -// by applications that want to provide more control features. { + // = DESCRIPTION + // Base class for the A/V StreamEndPoint class. this class + // is used to control the stream. It should be subclassed + // by applications that want to provide more control features. public: virtual ~TAO_Base_StreamEndPoint (void); @@ -300,73 +352,110 @@ public: // Constructor virtual void stop (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow)); // Stop the stream. Empty the_spec means, for all the flows virtual void start (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow)); // Start the stream, Empty the_spec means, for all the flows virtual void destroy (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow)); // Destroy the stream, Empty the_spec means, for all the flows virtual CORBA::Boolean connect (AVStreams::StreamEndPoint_ptr responder, AVStreams::streamQoS &qos_spec, const AVStreams::flowSpec &the_spec, - CORBA::Environment &env = CORBA::Environment::default_environment ()) = 0; + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed, + AVStreams::streamOpFailed)) = 0; // Called by StreamCtrl. responder is the peer to connect to virtual CORBA::Boolean request_connection (AVStreams::StreamEndPoint_ptr initiator, CORBA::Boolean is_mcast, AVStreams::streamQoS &qos, AVStreams::flowSpec &the_spec, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed, + AVStreams::FPError)); // Called by the peer StreamEndPoint. The flow_spec indicates the // flows (which contain transport addresses etc.) virtual CORBA::Boolean modify_QoS (AVStreams::streamQoS &new_qos, const AVStreams::flowSpec &the_flows, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed)); // Change the transport qos on a stream virtual CORBA::Boolean set_protocol_restriction (const AVStreams::protocolSpec &the_pspec, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); // Used to restrict the set of protocols virtual void disconnect (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::streamOpFailed)); // disconnect the flows virtual void set_FPStatus (const AVStreams::flowSpec &the_spec, const char *fp_name, const CORBA::Any &fp_settings, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::FPError)); // Used to control the flow virtual CORBA::Object_ptr get_fep (const char *flow_name, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notSupported, + AVStreams::noSuchFlow)); // Not implemented in the light profile, throws notsupported virtual char * add_fep (CORBA::Object_ptr the_fep, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notSupported, + AVStreams::streamOpFailed)); // Not implemented in the light profile, throws notsupported virtual void remove_fep (const char *fep_name, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notSupported, + AVStreams::streamOpFailed)); // Not implemented in the light profile, throws notsupported virtual void set_negotiator (AVStreams::Negotiator_ptr new_negotiator, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); // Used to "attach" a negotiator to the endpoint virtual void set_key (const char *flow_name, const AVStreams::key & the_key, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); // Used for public key encryption. virtual void set_source_id (CORBA::Long source_id, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); // Used to set a unique id for packets sent by this streamendpoint virtual ~TAO_StreamEndPoint (void); @@ -404,23 +493,39 @@ public: virtual CORBA::Boolean connect (AVStreams::StreamEndPoint_ptr responder, AVStreams::streamQoS &qos_spec, const AVStreams::flowSpec &the_spec, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed, + AVStreams::streamOpFailed)); // Called by StreamCtrl. responder is the peer to connect to virtual CORBA::Boolean multiconnect (AVStreams::streamQoS &the_qos, AVStreams::flowSpec &the_spec, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed, + AVStreams::streamOpFailed)); // Used for ATM-style multicast virtual CORBA::Boolean connect_leaf (AVStreams::StreamEndPoint_B_ptr the_ep, AVStreams::streamQoS &the_qos, const AVStreams::flowSpec &the_flows, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed, + AVStreams::notSupported)); // Used for ATM-style multicast virtual void disconnect_leaf (AVStreams::StreamEndPoint_B_ptr the_ep, const AVStreams::flowSpec &theSpec, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::noSuchFlow)); // Used to remove a multicast leaf virtual ~TAO_Client_StreamEndPoint (void); @@ -443,19 +548,33 @@ public: virtual CORBA::Boolean connect (AVStreams::StreamEndPoint_ptr responder, AVStreams::streamQoS &qos_spec, const AVStreams::flowSpec &the_spec, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed, + AVStreams::streamOpFailed)); virtual CORBA::Boolean request_connection (AVStreams::StreamEndPoint_ptr initiator, CORBA::Boolean is_mcast, AVStreams::streamQoS &qos, AVStreams::flowSpec &the_spec, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed, + AVStreams::FPError)); // Called by the peer StreamEndPoint. The flow_spec indicates the // flows (which contain transport addresses etc.) virtual CORBA::Boolean multiconnect (AVStreams::streamQoS &the_qos, AVStreams::flowSpec &the_spec, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed, + AVStreams::FPError)); // Used for internet-style multicast virtual ~TAO_Server_StreamEndPoint (void); @@ -478,33 +597,52 @@ class TAO_ORBSVCS_Export TAO_VDev AVStreams::VDev_ptr the_peer_dev, AVStreams::streamQoS &the_qos, const AVStreams::flowSpec &the_spec, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed, + AVStreams::streamOpFailed)); // 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, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed, + AVStreams::streamOpFailed)); // Used to set the streamctrl and multicast device virtual void configure (const CosPropertyService::Property &the_config_mesg, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::PropertyException, + AVStreams::streamOpFailed)); // Called by the peer VDev to configure the device (catch all) virtual void set_format (const char *flowName, const char *format_name, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notSupported)); // Used to set a format on a flowname virtual void set_dev_params (const char *flowName, const CosPropertyService::Properties &new_params, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::PropertyException, + AVStreams::streamOpFailed)); // Used to set device parameters virtual CORBA::Boolean modify_QoS (AVStreams::streamQoS &the_qos, const AVStreams::flowSpec &the_spec, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed)); // Called to change QoS of the device virtual ~TAO_VDev (void); @@ -544,7 +682,11 @@ class TAO_ORBSVCS_Export TAO_MMDevice AVStreams::streamQoS &the_qos, CORBA::Boolean_out is_met, const AVStreams::flowSpec &the_spec, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed)); // Can be used to request the MMDevice to create a new StreamCtrl, // and call bind_devs on it @@ -552,7 +694,11 @@ class TAO_ORBSVCS_Export TAO_MMDevice AVStreams::streamQoS &the_qos, CORBA::Boolean_out is_met, const AVStreams::flowSpec &the_spec, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::noSuchFlow, + AVStreams::QoSRequestFailed)); // Multicast bind virtual AVStreams::StreamEndPoint_A_ptr create_A (AVStreams::StreamCtrl_ptr the_requester, @@ -561,7 +707,13 @@ class TAO_ORBSVCS_Export TAO_MMDevice CORBA::Boolean_out met_qos, char *&named_vdev, const AVStreams::flowSpec &the_spec, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::streamOpDenied, + AVStreams::notSupported, + AVStreams::QoSRequestFailed, + AVStreams::noSuchFlow)); // Called by StreamCtrl to create a "A" type streamandpoint and vdev virtual AVStreams::StreamEndPoint_B_ptr create_B (AVStreams::StreamCtrl_ptr the_requester, @@ -570,24 +722,41 @@ class TAO_ORBSVCS_Export TAO_MMDevice CORBA::Boolean_out met_qos, char *&named_vdev, const AVStreams::flowSpec &the_spec, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::streamOpDenied, + AVStreams::notSupported, + AVStreams::QoSRequestFailed, + AVStreams::noSuchFlow)); // Called by StreamCtrl to create a "B" type streamandpoint and vdev virtual void destroy (AVStreams::StreamEndPoint_ptr the_ep, const char *vdev_name, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notSupported)); // Remove the StreamEndPoint and the related vdev virtual char * add_fdev (CORBA::Object_ptr the_fdev, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notSupported, + AVStreams::streamOpFailed)); // Not supported in the light profile, raises notsupported virtual CORBA::Object_ptr get_fdev (const char *flow_name, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notSupported, + AVStreams::noSuchFlow)); // Not supported in the light profile, raises notsupported virtual void remove_fdev (const char *flow_name, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notSupported, + AVStreams::noSuchFlow)); // Not supported in the light profile, raises notsupported virtual ~TAO_MMDevice (void); @@ -626,56 +795,81 @@ public: TAO_FlowConnection (void); // default constructor. - virtual void stop (CORBA::Environment &env = CORBA::Environment::default_environment ()); + virtual void stop (CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); // stop this flow. - virtual void start (CORBA::Environment &env = CORBA::Environment::default_environment ()); + virtual void start (CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); // start this flow. - virtual void destroy (CORBA::Environment &env = CORBA::Environment::default_environment ()); + virtual void destroy (CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); // destroy this flow. virtual CORBA::Boolean modify_QoS (AVStreams::QoS & new_qos, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::QoSRequestFailed)); // modify the QoS for this flow. virtual CORBA::Boolean use_flow_protocol (const char * fp_name, const CORBA::Any & fp_settings, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::FPError, + AVStreams::notSupported)); // use the specified flow protocol for this flow. virtual void push_event (const AVStreams::streamEvent & the_event, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); // pushes an event , to be handled by the application. virtual CORBA::Boolean connect_devs (AVStreams::FDev_ptr a_party, AVStreams::FDev_ptr b_party, AVStreams::QoS & the_qos, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::streamOpDenied, + AVStreams::QoSRequestFailed)); // connect 2 Flow Devices. virtual CORBA::Boolean connect (AVStreams::FlowProducer_ptr flow_producer, AVStreams::FlowConsumer_ptr flow_consumer, AVStreams::QoS & the_qos, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::formatMismatch, + AVStreams::FEPMismatch, + AVStreams::alreadyConnected)); // Connect a flow producer and consumer under this flow connection. - virtual CORBA::Boolean disconnect (CORBA::Environment &env = CORBA::Environment::default_environment ()); + virtual CORBA::Boolean disconnect (CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); // disconnect this flow connection. virtual CORBA::Boolean add_producer (AVStreams::FlowProducer_ptr flow_producer, AVStreams::QoS & the_qos, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::alreadyConnected, + AVStreams::notSupported)); // adds the producer to this flow connection. virtual CORBA::Boolean add_consumer (AVStreams::FlowConsumer_ptr flow_consumer, AVStreams::QoS & the_qos, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::alreadyConnected)); // adds a consumer to this flow connection. virtual CORBA::Boolean drop (AVStreams::FlowEndPoint_ptr target, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notConnected)); // drops a flow endpoint from the flow. protected: @@ -702,83 +896,111 @@ class TAO_ORBSVCS_Export TAO_FlowEndPoint : //default constructor. virtual CORBA::Boolean lock (CORBA::Environment &env = - CORBA::Environment::default_environment ()); + CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); // lock the flow endpoint for a particular flow. virtual void unlock (CORBA::Environment &env = - CORBA::Environment::default_environment ()); + CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); // unlock the flow endpoint for subsequent use. virtual void stop (CORBA::Environment &env = - CORBA::Environment::default_environment ()); + CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); // stop this flow, to be overridden by the application. virtual void start (CORBA::Environment &env = - CORBA::Environment::default_environment ()); + CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); // start this flow, to be overridden by the application. virtual void destroy (CORBA::Environment &env = - CORBA::Environment::default_environment ()); + CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); // destroy this flow. - virtual AVStreams::StreamEndPoint_ptr related_sep - (CORBA::Environment &env = - CORBA::Environment::default_environment ()); + virtual AVStreams::StreamEndPoint_ptr related_sep(CORBA::Environment &env = + CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); // get method for the related streamendpoint under which this // flowendpoint is. virtual void related_sep (AVStreams::StreamEndPoint_ptr related_sep, CORBA::Environment &env = - CORBA::Environment::default_environment ()); + CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); // set method for the related streamendpoint under which this // flowendpoint is. virtual AVStreams::FlowConnection_ptr related_flow_connection(CORBA::Environment &env = - CORBA::Environment::default_environment ()); + CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); // accessor for the related flow connection attribute. virtual void related_flow_connection (AVStreams::FlowConnection_ptr related_flow_connection, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); // set method for the related flow connection attribute. - virtual AVStreams::FlowEndPoint_ptr get_connected_fep - (CORBA::Environment &env = - CORBA::Environment::default_environment ()); + virtual AVStreams::FlowEndPoint_ptr get_connected_fep (CORBA::Environment &env = + CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notConnected, + AVStreams::notSupported)); // returns the other flowendpoint to which this is connected. virtual CORBA::Boolean use_flow_protocol (const char * fp_name, const CORBA::Any & fp_settings, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::FPError, + AVStreams::notSupported)); /// use the specified flow protocol. virtual void set_format (const char * format, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notSupported)); // sets the data format. virtual void set_dev_params (const CosPropertyService::Properties & new_settings, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::PropertyException, + AVStreams::streamOpFailed)); // sets the device parameters. virtual void set_protocol_restriction (const AVStreams::protocolSpec & the_spec, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notSupported)); // sets the list of protocols to be used. virtual CORBA::Boolean is_fep_compatible (AVStreams::FlowEndPoint_ptr fep, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::formatMismatch, + AVStreams::deviceQosMismatch)); // checks whether the passed flowendpoint is compatible with this. virtual CORBA::Boolean set_peer (AVStreams::FlowConnection_ptr the_fc, AVStreams::FlowEndPoint_ptr the_peer_fep, AVStreams::QoS & the_qos, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::QoSRequestFailed, + AVStreams::streamOpFailed)); // sets the peer flowendpoint. virtual CORBA::Boolean set_Mcast_peer (AVStreams::FlowConnection_ptr the_fc, AVStreams::MCastConfigIf_ptr a_mcastconfigif, AVStreams::QoS & the_qos, CORBA::Environment &env = - CORBA::Environment::default_environment ()); + CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::QoSRequestFailed)); // sets the multicast peer flowendpoint, not implemented. @@ -786,7 +1008,11 @@ class TAO_ORBSVCS_Export TAO_FlowEndPoint : const char * address, const char * use_flow_protocol, CORBA::Environment &env = - CORBA::Environment::default_environment ()); + CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::failedToConnect, + AVStreams::FPError, + AVStreams::QoSRequestFailed)); // connect to the peer endpoint. virtual CORBA::Boolean handle_connect_to_peer (AVStreams::QoS & the_qos, @@ -794,7 +1020,6 @@ class TAO_ORBSVCS_Export TAO_FlowEndPoint : const char * use_flow_protocol, CORBA::Environment &env = CORBA::Environment::default_environment ()); - // hook method to be overridden by the application to handle the connection request. virtual char * go_to_listen (AVStreams::QoS & the_qos, @@ -802,8 +1027,11 @@ class TAO_ORBSVCS_Export TAO_FlowEndPoint : AVStreams::FlowProducer_ptr peer, char *& flowProtocol, CORBA::Environment &env = - CORBA::Environment::default_environment - ()); + CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::failedToListen, + AVStreams::FPError, + AVStreams::QoSRequestFailed)); // listen request from the peer. @@ -811,9 +1039,7 @@ class TAO_ORBSVCS_Export TAO_FlowEndPoint : CORBA::Boolean is_mcast, AVStreams::FlowProducer_ptr peer, char *& flowProtocol, - CORBA::Environment &env = - CORBA::Environment::default_environment - ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()); // applications should override this method. protected: @@ -833,26 +1059,33 @@ class TAO_ORBSVCS_Export TAO_FlowProducer: public: TAO_FlowProducer (void); // default constructor + virtual char * connect_mcast (AVStreams::QoS & the_qos, CORBA::Boolean_out is_met, const char * address, const char * use_flow_protocol, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::failedToConnect, + AVStreams::notSupported, + AVStreams::FPError, + AVStreams::QoSRequestFailed)); // connect to the multicast address, not implemented. virtual char * get_rev_channel (const char * pcol_name, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); // get the reverse channel, to be used for feedback for protocols like UDP. virtual void set_key (const AVStreams::key & the_key, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException)); // sets the public key to be used for encryption of the data. virtual void set_source_id (CORBA::Long source_id, - CORBA::Environment &env = - CORBA::Environment::default_environment - ()); + CORBA::Environment &env =CORBA::Environment::default_environment()) + ACE_THROW_SPEC ((CORBA::SystemException)); // sets the source id of this flow producer so that it can be used // to distinguish this producer from others in the multicast case. @@ -886,7 +1119,12 @@ class TAO_ORBSVCS_Export TAO_FDev : AVStreams::QoS & the_qos, CORBA::Boolean_out met_qos, char *& named_fdev, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::streamOpDenied, + AVStreams::notSupported, + AVStreams::QoSRequestFailed)); // create a flow producer object. virtual AVStreams::FlowProducer_ptr make_producer (AVStreams::FlowConnection_ptr the_requester, @@ -901,33 +1139,46 @@ class TAO_ORBSVCS_Export TAO_FDev : AVStreams::QoS & the_qos, CORBA::Boolean_out met_qos, char *& named_fdev, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::streamOpDenied, + AVStreams::notSupported, + AVStreams::QoSRequestFailed)); // create a flow consumer object. virtual AVStreams::FlowConsumer_ptr make_consumer (AVStreams::FlowConnection_ptr the_requester, AVStreams::QoS & the_qos, CORBA::Boolean_out met_qos, char *& named_fdev, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()); // bridge method for the application to override the consumer object // creation. Default implementation creates a TAO_FlowConsumer. virtual AVStreams::FlowConnection_ptr bind (AVStreams::FDev_ptr peer_device, AVStreams::QoS & the_qos, CORBA::Boolean_out is_met, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::QoSRequestFailed)); // bind this FDev with another FDev. virtual AVStreams::FlowConnection_ptr bind_mcast (AVStreams::FDev_ptr first_peer, AVStreams::QoS & the_qos, CORBA::Boolean_out is_met, - CORBA::Environment &env = CORBA::Environment::default_environment ()); + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::streamOpFailed, + AVStreams::QoSRequestFailed)); // multicast bind is not implemented yet. virtual void destroy (AVStreams::FlowEndPoint_ptr the_ep, const char * fdev_name, CORBA::Environment &env = - CORBA::Environment::default_environment ()); + CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::notSupported)); // destroys this FDev. protected: @@ -952,22 +1203,35 @@ class TAO_ORBSVCS_Export TAO_MediaControl virtual AVStreams::Position get_media_position (AVStreams::PositionOrigin an_origin, AVStreams::PositionKey a_key, - CORBA::Environment &env = CORBA::Environment::default_environment ()) =0; + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::PostionKeyNotSupported)) =0; virtual void set_media_position (const AVStreams::Position & a_position, - CORBA::Environment &env = CORBA::Environment::default_environment ()) =0; + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::PostionKeyNotSupported, + AVStreams::InvalidPosition)) =0; virtual void start (const AVStreams::Position & a_position, - CORBA::Environment &env = CORBA::Environment::default_environment ()) =0; + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::InvalidPosition)) =0; virtual void pause (const AVStreams::Position & a_position, - CORBA::Environment &env = CORBA::Environment::default_environment ()) =0; + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::InvalidPosition)) =0; virtual void resume (const AVStreams::Position & a_position, - CORBA::Environment &env = CORBA::Environment::default_environment ()) =0; + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::InvalidPosition)) =0; virtual void stop (const AVStreams::Position & a_position, - CORBA::Environment &env = CORBA::Environment::default_environment ()) = 0; + CORBA::Environment &env = CORBA::Environment::default_environment ()) + ACE_THROW_SPEC ((CORBA::SystemException, + AVStreams::InvalidPosition)) =0; }; @@ -1086,11 +1350,11 @@ public: // class TAO_ORBSVCS_Export TAO_AV_QoS // { // public: -// TAO_AV_QoS (void); +// TAO_AV_QoS (void) ACE_THROW_SPEC ((CORBA::SystemException)); // // constructor. // int convert (const AVStreams::streamQoS &application_qos, -// AVStreams::streamQoS &network_qos); +// AVStreams::streamQoS &network_qos) ACE_THROW_SPEC ((CORBA::SystemException)); // // converts the application level QoS to Network-level QoS. // }; |