summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/AV
diff options
context:
space:
mode:
authornaga <naga@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-05-01 05:09:29 +0000
committernaga <naga@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-05-01 05:09:29 +0000
commit795ff11147343572e6e8685ef8379848cf23a434 (patch)
tree891d952f2eb1038a0c8ac8634b2f7aedde62b761 /TAO/orbsvcs/orbsvcs/AV
parent0b8b1d92e9dc49abbdeb39a27d9407115ca79f07 (diff)
downloadATCD-795ff11147343572e6e8685ef8379848cf23a434.tar.gz
*** empty log message ***
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/AV')
-rw-r--r--TAO/orbsvcs/orbsvcs/AV/AVStreams_i.cpp29
-rw-r--r--TAO/orbsvcs/orbsvcs/AV/AVStreams_i.h4
-rw-r--r--TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.cpp72
-rw-r--r--TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.h7
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
};
// ----------------------------------------------------------------------