diff options
author | naga <naga@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-05-01 05:09:29 +0000 |
---|---|---|
committer | naga <naga@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-05-01 05:09:29 +0000 |
commit | 795ff11147343572e6e8685ef8379848cf23a434 (patch) | |
tree | 891d952f2eb1038a0c8ac8634b2f7aedde62b761 /TAO/orbsvcs/orbsvcs/AV | |
parent | 0b8b1d92e9dc49abbdeb39a27d9407115ca79f07 (diff) | |
download | ATCD-795ff11147343572e6e8685ef8379848cf23a434.tar.gz |
*** empty log message ***
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/AV')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/AVStreams_i.cpp | 29 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/AVStreams_i.h | 4 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.cpp | 72 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.h | 7 |
4 files changed, 80 insertions, 32 deletions
diff --git a/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.cpp b/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.cpp index 97d4a630958..8c4637dbb32 100644 --- a/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.cpp +++ b/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.cpp @@ -578,7 +578,34 @@ TAO_VDev::set_peer (AVStreams::StreamCtrl_ptr the_ctrl, this->streamctrl_ = the_ctrl; this->peer_ = the_peer_dev; - return CORBA::B_TRUE; + + CORBA::Any_ptr anyptr; + CORBA::String media_ctrl_ior; + anyptr = this->peer_->get_property_value ("Related_MediaCtrl", + env); + TAO_CHECK_ENV_RETURN (env,CORBA::B_TRUE); + + if (anyptr != 0) + { + *anyptr >>= media_ctrl_ior; + ACE_DEBUG ((LM_DEBUG,"The Media Control IOR is %s\n", + media_ctrl_ior)); + } + CORBA::Object_ptr media_ctrl_obj = + this->orb_manager_.orb ()->string_to_object + (media_ctrl_ior,env); + TAO_CHECK_ENV_RETURN (env, CORBA::B_FALSE); + + CORBA::Boolean result = + this->set_media_ctrl (media_ctrl_obj,env); + TAO_CHECK_ENV_RETURN (env,CORBA::B_FALSE); + + return result; +} + +void +TAO_VDev::set_media_ctrl (CORBA::Object_ptr media_ctrl) +{ } // @@ Need to throw not-supported exception here diff --git a/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.h b/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.h index e4929965b94..7f81cf0da48 100644 --- a/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.h +++ b/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.h @@ -389,6 +389,10 @@ class TAO_ORBSVCS_Export TAO_VDev virtual ~TAO_VDev (void); // Destructor + protected: + virtual CORBA::Boolean set_media_ctrl (CORBA::Object_ptr media_ctrl, + CORBA::Environment &env); + // hook called after set_peer is done to set the media ctrl of the peer vdev. private: AVStreams::StreamCtrl_var streamctrl_; // My stream controller diff --git a/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.cpp b/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.cpp index b4f2a7031f9..1063cc63903 100644 --- a/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.cpp +++ b/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.cpp @@ -298,29 +298,31 @@ TAO_AV_Endpoint_Reactive_Strategy_A <T_StreamEndpoint, T_VDev, T_MediaCtrl>::cre ACE_NEW_RETURN (vdev, T_VDev, -1); - + T_MediaCtrl *media_ctrl; ACE_NEW_RETURN (media_ctrl, T_MediaCtrl, -1); - this->orb_manager_.activate ("Stream_Endpoint_A", - stream_endpoint, - env); + this->orb_manager_->activate_under_child_poa ("Stream_Endpoint_A", + stream_endpoint, + env); TAO_CHECK_ENV_RETURN (env, -1); - this->orb_manager_.activate ("VDev", - vdev, - env); + this->orb_manager_->activate_under_child_poa ("VDev", + vdev, + env); TAO_CHECK_ENV_RETURN (env, -1); - - this->orb_manager_.activate ("MediaCtrl", - media_ctrl, - env); + + this->orb_manager_->activate_under_child_poa ("MediaCtrl", + media_ctrl, + env); TAO_CHECK_ENV_RETURN (env, -1); - + CORBA::Any anyval; - anyval <<= media_ctrl->_this (); + anyval <<= this->orb_manager_->orb ()->object_to_string (media_ctrl->_this (env)); + TAO_CHECK_ENV_RETURN (env, -1); + vdev->define_property ("Related_MediaCtrl", anyval, env); @@ -391,6 +393,7 @@ TAO_AV_Endpoint_Reactive_Strategy_B <T_StreamEndpoint, T_VDev, T_MediaCtrl>::cre template <class T_StreamEndpoint_B, class T_VDev , class T_MediaCtrl> TAO_AV_Child_Process <T_StreamEndpoint_B, T_VDev, T_MediaCtrl>::TAO_AV_Child_Process () + :stream_endpoint_name_ (0) { } @@ -437,20 +440,25 @@ TAO_AV_Child_Process <T_StreamEndpoint, T_VDev, T_MediaCtrl>::activate_objects { this->orb_manager_.init_child_poa (argc, argv, + "child_poa", env); TAO_CHECK_ENV_RETURN (env, -1); this->orb_manager_.activate_under_child_poa ("Stream_Endpoint", - this->stream_endpoint_, + &this->stream_endpoint_, env); TAO_CHECK_ENV_RETURN (env, -1); this->orb_manager_.activate_under_child_poa ("VDev", - this->vdev_, + &this->vdev_, env); TAO_CHECK_ENV_RETURN (env, -1); + this->orb_manager_.activate_under_child_poa ("MediaCtrl", + &this->media_control_, + env); + TAO_CHECK_ENV_RETURN (env, -1); return 0; } @@ -481,22 +489,28 @@ TAO_AV_Child_Process <T_StreamEndpoint, T_VDev, T_MediaCtrl>::register_vdev (CO CosNaming::Name vdev_name (1); vdev_name.length (1); vdev_name [0].id = CORBA::string_dup ("VDev"); + + CORBA::Any media_ctrl_property; + media_ctrl_property <<= this->orb_manager_.orb ()->object_to_string (this->media_ctrl_->_this (env)); + this->vdev_->define_property ("Related_MediaCtrl", + media_ctrl_property, + env); + TAO_CHECK_ENV_RETURN (env,-1); // Register the vdev with the naming server. - naming_context->bind (vdev_name, - this->vdev_._this (env), - env); - + this->naming_context_->bind (vdev_name, + this->vdev_._this (env), + env); + if (env.exception () != 0) { env.clear (); - naming_context->rebind (vdev_name, - this->vdev_._this (env), - env); + this->naming_context_->rebind (vdev_name, + this->vdev_._this (env), + env); TAO_CHECK_ENV_RETURN (env, -1); } - return 0; } @@ -573,19 +587,19 @@ TAO_AV_Child_Process <T_StreamEndpoint, T_VDev, T_MediaCtrl>::register_stream_e CosNaming::Name Stream_Endpoint_Name (1); Stream_Endpoint_Name.length (1); - Stream_Endpoint_Name [0].id = CORBA::string_dup - this->stream_endpoint_name_; + Stream_Endpoint_Name [0].id = CORBA::string_dup (this->stream_endpoint_name_); + // Register the stream endpoint object with the naming server. this->naming_context_->bind (Stream_Endpoint_Name, - this->stream_endpoint__._this (env), + this->stream_endpoint_._this (env), env); if (env.exception () != 0) { env.clear (); - this->naming_context_->rebind (Stream_Endpoint_B_Name, - this->stream_endpoint_b_._this (env), + this->naming_context_->rebind (Stream_Endpoint_Name, + this->stream_endpoint_._this (env), env); TAO_CHECK_ENV_RETURN (env, -1); } @@ -608,6 +622,6 @@ TAO_AV_Child_Process_A <T_StreamEndpoint, T_VDev, T_MediaCtrl>::TAO_AV_Child_Pr 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 () - : stream_endpoint_name_ ("Stream_Endpoint_B") { + this->stream_endpoint_name_ = "Stream_Endpoint_B"; } diff --git a/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.h b/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.h index bb2938deb68..52378b2be53 100644 --- a/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.h +++ b/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.h @@ -184,7 +184,7 @@ public: int run (ACE_Time_Value *tv = 0); protected: - char *stream_endpoint_name_; + const char *stream_endpoint_name_; int activate_objects (int argc, char **argv, @@ -202,11 +202,14 @@ public: CosNaming::NamingContext_var naming_context_; // The root Naming Context of the TAO naming service - T_StreamEndPoint stream_endpoint_; + T_StreamEndpoint stream_endpoint_; // The stream endpoint member T_VDev vdev_; // The virtual device + + T_MediaCtrl media_control_; + // Media controller }; // ---------------------------------------------------------------------- |