diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.cpp')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.cpp | 265 |
1 files changed, 99 insertions, 166 deletions
diff --git a/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.cpp b/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.cpp index 56f02d1fad8..d0888b681a7 100644 --- a/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.cpp +++ b/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.cpp @@ -26,7 +26,6 @@ template <class T_StreamEndpoint, class T_VDev , class T_MediaCtrl> int TAO_AV_Endpoint_Reactive_Strategy <T_StreamEndpoint, T_VDev, T_MediaCtrl>::activate (void) { - ACE_DECLARE_NEW_CORBA_ENV; ACE_TRY { this->activate_stream_endpoint (ACE_TRY_ENV); @@ -47,7 +46,6 @@ TAO_AV_Endpoint_Reactive_Strategy <T_StreamEndpoint, T_VDev, T_MediaCtrl>::activ return -1; } ACE_ENDTRY; - ACE_CHECK_RETURN (-1); return 0; } @@ -63,9 +61,9 @@ TAO_AV_Endpoint_Reactive_Strategy <T_StreamEndpoint, T_VDev, T_MediaCtrl>::activ if (this->make_vdev (vdev) == -1) return -1; - // Activate the object under the root poa. + // Put the object in the POA CORBA::String_var vdev_ior = this->orb_manager_->activate (vdev, - ACE_TRY_ENV); + env); ACE_TRY_CHECK; ACE_DEBUG ((LM_DEBUG,"(%P|%t)TAO_AV_Endpoint_Reactive_Strategy::activate_vdev, vdev ior is:%s\n", vdev_ior. in ())); @@ -73,8 +71,6 @@ TAO_AV_Endpoint_Reactive_Strategy <T_StreamEndpoint, T_VDev, T_MediaCtrl>::activ // Save the object reference, so that create_A can return it this->vdev_ = vdev->_this (ACE_TRY_ENV); ACE_TRY_CHECK; - vdev->_remove_ref (ACE_TRY_ENV); - ACE_TRY_CHECK; } ACE_CATCHANY { @@ -98,7 +94,7 @@ TAO_AV_Endpoint_Reactive_Strategy <T_StreamEndpoint, T_VDev, T_MediaCtrl>::activ if (this->make_mediactrl (media_ctrl) == -1) return -1; - // Activate the mediactrl object under the root poa. + // Put the object in the POA CORBA::String_var mediactrl_ior = this->orb_manager_->activate (media_ctrl, ACE_TRY_ENV); ACE_TRY_CHECK; @@ -108,7 +104,7 @@ TAO_AV_Endpoint_Reactive_Strategy <T_StreamEndpoint, T_VDev, T_MediaCtrl>::activ // Associate the media controller object reference with the vdev, as per the OMG spec CORBA::Any anyval; - anyval <<= this->orb_manager_->orb ()->object_to_string (media_ctrl->_this (ACE_TRY_ENV), + anyval <<= this->orb_manager_->orb ()->object_to_string (media_ctrl->_this (env), ACE_TRY_ENV); ACE_TRY_CHECK; @@ -219,8 +215,6 @@ TAO_AV_Endpoint_Reactive_Strategy_A <T_StreamEndpoint, T_VDev, T_MediaCtrl>::act // Save the object references, so that create_a can return them this->stream_endpoint_a_ = stream_endpoint_a->_this (ACE_TRY_ENV); ACE_TRY_CHECK; - stream_endpoint_a->_remove_ref (ACE_TRY_ENV); - ACE_TRY_CHECK; } ACE_CATCHANY { @@ -267,8 +261,6 @@ TAO_AV_Endpoint_Reactive_Strategy_B <T_StreamEndpoint, T_VDev, T_MediaCtrl>::act this->stream_endpoint_b_ = stream_endpoint_b->_this (ACE_TRY_ENV); ACE_TRY_CHECK; - stream_endpoint_b->_remove_ref (ACE_TRY_ENV); - ACE_TRY_CHECK; } ACE_CATCHANY { @@ -320,7 +312,6 @@ template <class T_StreamEndpoint_B, class T_VDev , class T_MediaCtrl> int TAO_AV_Child_Process <T_StreamEndpoint_B, T_VDev, T_MediaCtrl>::init (int argc, char **argv) { - ACE_DECLARE_NEW_CORBA_ENV; ACE_TRY { // create the objects and activate them in the poa @@ -364,53 +355,45 @@ TAO_AV_Child_Process <T_StreamEndpoint, T_VDev, T_MediaCtrl>::activate_objects char **argv, CORBA::Environment &ACE_TRY_ENV) { - ACE_TRY - { - // initialize the orb - this->orb_manager_.init (argc, - argv, - ACE_TRY_ENV); - ACE_TRY_CHECK; + // initialize the orb + this->orb_manager_.init (argc, + argv, + ACE_TRY_ENV); + TAO_CHECK_ENV_RETURN (env, -1); - // bridge method to make a new stream endpoint - if (this->make_stream_endpoint (this->stream_endpoint_) == -1) - return -1; + // bridge method to make a new stream endpoint + if (this->make_stream_endpoint (this->stream_endpoint_) == -1) + return -1; - // bridge method to make a new vdev - if (this->make_vdev (this->vdev_) == -1) - return -1; + // bridge method to make a new vdev + if (this->make_vdev (this->vdev_) == -1) + return -1; - // bridge method to make a new media controller - if (this->make_mediactrl (this->media_ctrl_) == -1) - return -1; + // bridge method to make a new media controller + if (this->make_mediactrl (this->media_ctrl_) == -1) + return -1; - // activate the stream_endpoint - CORBA::String_var stream_endpoint_ior = this->orb_manager_.activate (this->stream_endpoint_, - ACE_TRY_ENV); - ACE_TRY_CHECK; - ACE_DEBUG ((LM_DEBUG,"(%P|%t)TAO_AV_Child_Process::activate_objects,stream_endpoint_ior :%s\n",stream_endpoint_ior.in ())); + // activate the stream_endpoint + CORBA::String_var stream_endpoint_ior = this->orb_manager_.activate (this->stream_endpoint_, + ACE_TRY_ENV); + TAO_CHECK_ENV_RETURN (env, -1); + ACE_DEBUG ((LM_DEBUG,"(%P|%t)TAO_AV_Child_Process::activate_objects,stream_endpoint_ior :%s\n",stream_endpoint_ior.in ())); - // activate the vdev - CORBA::String_var vdev_ior = this->orb_manager_.activate (this->vdev_, - ACE_TRY_ENV); - ACE_TRY_CHECK; - ACE_DEBUG ((LM_DEBUG,"(%P|%t)TAO_AV_Child_Process::activate_objects, vdev ior is :%s\n",vdev_ior.in ())); + // activate the vdev + CORBA::String_var vdev_ior = this->orb_manager_.activate (this->vdev_, + ACE_TRY_ENV); + TAO_CHECK_ENV_RETURN (env, -1); + ACE_DEBUG ((LM_DEBUG,"(%P|%t)TAO_AV_Child_Process::activate_objects, vdev ior is :%s\n",vdev_ior.in ())); - // activate the media controller - CORBA::String_var media_ctrl_ior = this->orb_manager_.activate (this->media_ctrl_, - ACE_TRY_ENV); + // activate the media controller + CORBA::String_var media_ctrl_ior = this->orb_manager_.activate (this->media_ctrl_, + ACE_TRY_ENV); + + TAO_CHECK_ENV_RETURN (env, -1); + ACE_DEBUG ((LM_DEBUG,"(%P|%t)TAO_AV_Child_Process::activate_objects,media_ctrl_ior is: %s\n",media_ctrl_ior.in ())); - ACE_TRY_CHECK; - ACE_DEBUG ((LM_DEBUG,"(%P|%t)TAO_AV_Child_Process::activate_objects,media_ctrl_ior is: %s\n",media_ctrl_ior.in ())); - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,"TAO_AV_Child_Process::init "); - return -1; - } - ACE_ENDTRY; - ACE_CHECK_RETURN (-1); return 0; + } // Bind to the namingservice @@ -418,27 +401,19 @@ template <class T_StreamEndpoint, class T_VDev , class T_MediaCtrl> int TAO_AV_Child_Process <T_StreamEndpoint, T_VDev, T_MediaCtrl>::bind_to_naming_service (CORBA::Environment &ACE_TRY_ENV) { - ACE_TRY - { - CORBA::Object_var naming_obj = - this->orb_manager_.orb ()->resolve_initial_references ("NameService"); - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to resolve the Name Service.\n"), - -1); - // ACE_DEBUG ((LM_DEBUG, "(%P|%t) %s:%d\n", __FILE__, __LINE__)); - this->naming_context_ = - CosNaming::NamingContext::_narrow (naming_obj.in (), - ACE_TRY_ENV); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,"TAO_AV_Child_Process::bind_to_naming_service"); - return -1; - } - ACE_ENDTRY; - ACE_CHECK_RETURN (-1); + CORBA::Object_var naming_obj = + this->orb_manager_.orb ()->resolve_initial_references ("NameService"); + if (CORBA::is_nil (naming_obj.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + " (%P|%t) Unable to resolve the Name Service.\n"), + -1); + // ACE_DEBUG ((LM_DEBUG, "(%P|%t) %s:%d\n", __FILE__, __LINE__)); + this->naming_context_ = + CosNaming::NamingContext::_narrow (naming_obj.in (), + ACE_TRY_ENV); + TAO_CHECK_ENV_RETURN (env, + -1); + return 0; } @@ -447,70 +422,43 @@ template <class T_StreamEndpoint, class T_VDev , class T_MediaCtrl> int TAO_AV_Child_Process <T_StreamEndpoint, T_VDev, T_MediaCtrl>::register_vdev (CORBA::Environment &ACE_TRY_ENV) { - CORBA::Object_ptr vdev_obj; - ACE_TRY - { - char vdev_name [BUFSIZ]; - ACE_OS::sprintf (vdev_name, - "%s:%s:%d", - "VDev", - this->host_, - this->pid_); - - ACE_DEBUG ((LM_DEBUG,"(%P|%t)%s\n",vdev_name)); - // create the name - this->vdev_name_.length (1); - this->vdev_name_ [0].id = CORBA::string_dup (vdev_name); - - // make the media controller a property of the vdev - CORBA::Any media_ctrl_property; - CORBA::Object_var media_ctrl_obj = - this->media_ctrl_->_this (ACE_TRY_ENV); - ACE_TRY_CHECK; - media_ctrl_property <<= this->orb_manager_.orb ()->object_to_string (media_ctrl_obj.in (), - ACE_TRY_ENV); - ACE_TRY_CHECK; - this->vdev_->define_property ("Related_MediaCtrl", - media_ctrl_property, - ACE_TRY_ENV); - ACE_TRY_CHECK; + char vdev_name [BUFSIZ]; + ACE_OS::sprintf (vdev_name, + "%s:%s:%d", + "VDev", + this->host_, + this->pid_); - vdev_obj = this->vdev_->_this (ACE_TRY_ENV); - ACE_TRY_CHECK; - this->vdev_->_remove_ref (ACE_TRY_ENV); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,"TAO_AV_Child_Process::register_vdev"); - return -1; - } - ACE_ENDTRY; - ACE_CHECK_RETURN (-1); - ACE_TRY_EX (bind) - { - // Register the vdev with the naming server. - this->naming_context_->bind (this->vdev_name_, - vdev_obj, - ACE_TRY_ENV); - ACE_TRY_CHECK_EX (bind); - } - ACE_CATCH (CosNaming::NamingContext::AlreadyBound,ex) + ACE_DEBUG ((LM_DEBUG,"(%P|%t)%s\n",vdev_name)); + // create the name + this->vdev_name_.length (1); + this->vdev_name_ [0].id = CORBA::string_dup (vdev_name); + + // make the media controller a property of the vdev + CORBA::Any media_ctrl_property; + media_ctrl_property <<= this->orb_manager_.orb ()->object_to_string (this->media_ctrl_->_this (env), + ACE_TRY_ENV); + this->vdev_->define_property ("Related_MediaCtrl", + media_ctrl_property, + ACE_TRY_ENV); + TAO_CHECK_ENV_RETURN (env,-1); + + // Register the vdev with the naming server. + this->naming_context_->bind (this->vdev_name_, + this->vdev_->_this (env), + ACE_TRY_ENV); + + // If the object was already there, replace the older reference + // with this one + if (env.exception () != 0) { - // If the object was already there, replace the older reference - // with this one + env.clear (); this->naming_context_->rebind (this->vdev_name_, - vdev_obj, + this->vdev_->_this (env), ACE_TRY_ENV); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,"TAO_AV_Child_Process::register_vdev"); - return -1; + TAO_CHECK_ENV_RETURN (env, -1); } - ACE_ENDTRY; - ACE_CHECK_RETURN (-1); + return 0; } @@ -520,7 +468,6 @@ int TAO_AV_Child_Process <T_StreamEndpoint_B, T_VDev, T_MediaCtrl>::run (ACE_Time_Value *tv) { int result; - ACE_DECLARE_NEW_CORBA_ENV; ACE_TRY { result = this->orb_manager_.run (ACE_TRY_ENV,tv); @@ -543,7 +490,7 @@ TAO_AV_Child_Process <T_StreamEndpoint_B, T_VDev, T_MediaCtrl>::release_semapho char sem_str [BUFSIZ]; sprintf (sem_str, - "%s:%s:%ld", + "%s:%s:%d", "TAO_AV_Process_Semaphore", this->host_, this->pid_); @@ -572,37 +519,24 @@ template <class T_StreamEndpoint, class T_VDev , class T_MediaCtrl> int TAO_AV_Child_Process <T_StreamEndpoint, T_VDev, T_MediaCtrl>::register_stream_endpoint (CORBA::Environment &ACE_TRY_ENV) { - CORBA::Object_ptr stream_endpoint_obj = CORBA::Object::_nil (); - ACE_TRY - { - stream_endpoint_obj = this->stream_endpoint_->_this (ACE_TRY_ENV); - ACE_TRY_CHECK; - this->stream_endpoint_->_remove_ref (ACE_TRY_ENV); - ACE_TRY_CHECK; - // ACE_DEBUG ((LM_DEBUG, "(%P|%t) %s:%d\n", __FILE__, __LINE__)); - // Create a name for the video control object - // subclasses can define their own name for the streamendpoint - // Register the stream endpoint object with the naming server. - this->naming_context_->bind (this->stream_endpoint_name_, - stream_endpoint_obj, - ACE_TRY_ENV); - ACE_TRY_CHECK; - } - ACE_CATCH (CosNaming::NamingContext::AlreadyBound,ex) + // ACE_DEBUG ((LM_DEBUG, "(%P|%t) %s:%d\n", __FILE__, __LINE__)); + // Create a name for the video control object + // subclasses can define their own name for the streamendpoint + // Register the stream endpoint object with the naming server. + this->naming_context_->bind (this->stream_endpoint_name_, + this->stream_endpoint_->_this (env), + ACE_TRY_ENV); + + // if the name was already there, replace the reference with the new one + if (env.exception () != 0) { - // if the name was already there, replace the reference with the new one + env.clear (); this->naming_context_->rebind (this->stream_endpoint_name_, - stream_endpoint_obj, + this->stream_endpoint_->_this (env), ACE_TRY_ENV); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - ACE_TRY_ENV.print_exception ("TAO_Endpoint_Reactive_Strategy::activate"); - return -1; + TAO_CHECK_ENV_RETURN (env, -1); } - ACE_ENDTRY; - ACE_CHECK_RETURN (-1); + return 0; } @@ -646,12 +580,11 @@ TAO_AV_Child_Process<T_StreamEndpoint, T_VDev, T_MediaCtrl>::make_mediactrl (T_M // For now, we dont delete the objects, since they exist for the // lifetime of the process anyway template <class T_StreamEndpoint, class T_VDev , class T_MediaCtrl> -TAO_AV_Child_Process<T_StreamEndpoint, T_VDev, T_MediaCtrl>::~TAO_AV_Child_Process () +TAO_AV_Child_Process <T_StreamEndpoint, T_VDev, T_MediaCtrl>::~TAO_AV_Child_Process () { // Remove the names from the naming service if (CORBA::is_nil (this->naming_context_.in ()) == 0) return; - ACE_DECLARE_NEW_CORBA_ENV; ACE_TRY { this->naming_context_->unbind (this->stream_endpoint_name_, @@ -683,7 +616,7 @@ TAO_AV_Child_Process<T_StreamEndpoint, T_VDev, T_MediaCtrl>::~TAO_AV_Child_Proce // Define the name of the stream_endpoint, as used to register with // the naming service template <class T_StreamEndpoint, class T_VDev , class T_MediaCtrl> -TAO_AV_Child_Process_A<T_StreamEndpoint, T_VDev, T_MediaCtrl>::TAO_AV_Child_Process_A () +TAO_AV_Child_Process_A <T_StreamEndpoint, T_VDev, T_MediaCtrl>::TAO_AV_Child_Process_A () { char stream_endpoint_name[BUFSIZ]; ACE_OS::sprintf (stream_endpoint_name, @@ -709,7 +642,7 @@ TAO_AV_Child_Process_A <T_StreamEndpoint, T_VDev, T_MediaCtrl>::~TAO_AV_Child_P // Define the name of the stream_endpoint, as used to register with // the naming service template <class T_StreamEndpoint, class T_VDev , class T_MediaCtrl> -TAO_AV_Child_Process_B<T_StreamEndpoint, T_VDev, T_MediaCtrl>::TAO_AV_Child_Process_B () +TAO_AV_Child_Process_B <T_StreamEndpoint, T_VDev, T_MediaCtrl>::TAO_AV_Child_Process_B () { char stream_endpoint_name[BUFSIZ]; ACE_OS::sprintf (stream_endpoint_name, @@ -724,7 +657,7 @@ TAO_AV_Child_Process_B<T_StreamEndpoint, T_VDev, T_MediaCtrl>::TAO_AV_Child_Proc } template <class T_StreamEndpoint, class T_VDev , class T_MediaCtrl> -TAO_AV_Child_Process_B<T_StreamEndpoint, T_VDev, T_MediaCtrl>::~TAO_AV_Child_Process_B () +TAO_AV_Child_Process_B <T_StreamEndpoint, T_VDev, T_MediaCtrl>::~TAO_AV_Child_Process_B () { } |