summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryamuna <yamuna@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-12-08 01:07:26 +0000
committeryamuna <yamuna@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-12-08 01:07:26 +0000
commitdeec8aca8d6544420c127bc84de2d93075ec7370 (patch)
tree88a399861de1096e166fb9478bd70a1c8bb2e5b1
parent56efe5a8a7b4dc3e43749e06632603bd9cc8f929 (diff)
downloadATCD-deec8aca8d6544420c127bc84de2d93075ec7370.tar.gz
*** empty log message ***
-rw-r--r--TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.cpp143
-rw-r--r--TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.h35
2 files changed, 127 insertions, 51 deletions
diff --git a/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.cpp b/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.cpp
index c4d0a3c265a..83fec32b09c 100644
--- a/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.cpp
+++ b/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.cpp
@@ -10,10 +10,11 @@
// TAO_AV_Endpoint_Reactive_Strategy
// ----------------------------------------------------------------------
-// Constructor
+
template <class T_StreamEndpoint, class T_VDev , class T_MediaCtrl>
-TAO_AV_Endpoint_Reactive_Strategy <T_StreamEndpoint, T_VDev, T_MediaCtrl>::TAO_AV_Endpoint_Reactive_Strategy (TAO_ORB_Manager *orb_manager)
- : orb_manager_ (orb_manager)
+TAO_AV_Endpoint_Reactive_Strategy <T_StreamEndpoint, T_VDev, T_MediaCtrl>::TAO_AV_Endpoint_Reactive_Strategy (CORBA::ORB_ptr orb, PortableServer::POA_ptr poa)
+ : orb_ (orb),
+ poa_ (poa)
{
}
@@ -52,6 +53,30 @@ TAO_AV_Endpoint_Reactive_Strategy <T_StreamEndpoint, T_VDev, T_MediaCtrl>::activ
return 0;
}
+template <class T_StreamEndpoint, class T_VDev , class T_MediaCtrl>
+char *
+TAO_AV_Endpoint_Reactive_Strategy <T_StreamEndpoint, T_VDev, T_MediaCtrl>::activate_with_poa (PortableServer::Servant servant, CORBA::Environment &ACE_TRY_ENV)
+{
+
+ PortableServer::ObjectId_var id =
+ this->poa_->activate_object (servant,
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ CORBA::Object_var obj =
+ this->poa_->id_to_reference (id.in (),
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ CORBA::String_var str =
+ this->orb_->object_to_string (obj.in (),
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ return str._retn ();
+}
+
+
// Activate VDev into the POA
template <class T_StreamEndpoint, class T_VDev , class T_MediaCtrl>
int
@@ -65,8 +90,8 @@ TAO_AV_Endpoint_Reactive_Strategy <T_StreamEndpoint, T_VDev, T_MediaCtrl>::activ
return -1;
// Activate the object under the root poa.
- CORBA::String_var vdev_ior = this->orb_manager_->activate (vdev,
- ACE_TRY_ENV);
+ CORBA::String_var vdev_ior = this->activate_with_poa (vdev,
+ ACE_TRY_ENV);
ACE_TRY_CHECK;
if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG,"(%P|%t)TAO_AV_Endpoint_Reactive_Strategy::activate_vdev, vdev ior is:%s\n",
vdev_ior. in ()));
@@ -87,6 +112,7 @@ TAO_AV_Endpoint_Reactive_Strategy <T_StreamEndpoint, T_VDev, T_MediaCtrl>::activ
return 0;
}
+
// Activate the media_controller
template <class T_StreamEndpoint, class T_VDev , class T_MediaCtrl>
int
@@ -100,8 +126,9 @@ TAO_AV_Endpoint_Reactive_Strategy <T_StreamEndpoint, T_VDev, T_MediaCtrl>::activ
return -1;
// Activate the mediactrl object under the root poa.
- CORBA::String_var mediactrl_ior = this->orb_manager_->activate (media_ctrl,
- ACE_TRY_ENV);
+ CORBA::String_var mediactrl_ior = this->activate_with_poa (media_ctrl,
+ ACE_TRY_ENV);
+
ACE_TRY_CHECK;
if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG,"(%P|%t)TAO_AV_Endpoint_Reactive_Strategy::activate_mediactrl , media_ctrl ior is :%s\n",
mediactrl_ior.in ()));
@@ -109,10 +136,10 @@ 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),
- ACE_TRY_ENV);
+ anyval <<= this->orb_->object_to_string (media_ctrl->_this (ACE_TRY_ENV),
+ ACE_TRY_ENV);
ACE_TRY_CHECK;
-
+
this->vdev_->define_property ("Related_MediaCtrl",
anyval,
ACE_TRY_ENV);
@@ -167,13 +194,15 @@ TAO_AV_Endpoint_Reactive_Strategy<T_StreamEndpoint, T_VDev, T_MediaCtrl>::make_m
// ----------------------------------------------------------------------
// TAO_AV_Endpoint_Reactive_Strategy_A
// ----------------------------------------------------------------------
-// Constructor
+
+//Constructor
template <class T_StreamEndpoint, class T_VDev , class T_MediaCtrl>
-TAO_AV_Endpoint_Reactive_Strategy_A <T_StreamEndpoint, T_VDev, T_MediaCtrl>::TAO_AV_Endpoint_Reactive_Strategy_A (TAO_ORB_Manager *orb_manager)
- : TAO_AV_Endpoint_Reactive_Strategy <T_StreamEndpoint, T_VDev, T_MediaCtrl> (orb_manager)
+TAO_AV_Endpoint_Reactive_Strategy_A <T_StreamEndpoint, T_VDev, T_MediaCtrl>::TAO_AV_Endpoint_Reactive_Strategy_A (CORBA::ORB_ptr orb, PortableServer::POA_ptr poa)
+ : TAO_AV_Endpoint_Reactive_Strategy <T_StreamEndpoint, T_VDev, T_MediaCtrl> (orb, poa)
{
}
+
// Destructor
template <class T_StreamEndpoint, class T_VDev , class T_MediaCtrl>
TAO_AV_Endpoint_Reactive_Strategy_A <T_StreamEndpoint, T_VDev, T_MediaCtrl>::~TAO_AV_Endpoint_Reactive_Strategy_A (void)
@@ -212,7 +241,7 @@ TAO_AV_Endpoint_Reactive_Strategy_A <T_StreamEndpoint, T_VDev, T_MediaCtrl>::act
if (this->make_stream_endpoint (stream_endpoint_a) == -1)
return -1;
- CORBA::String_var stream_endpoint_ior = this->orb_manager_->activate (stream_endpoint_a,
+ CORBA::String_var stream_endpoint_ior = this->activate_with_poa (stream_endpoint_a,
ACE_TRY_ENV);
ACE_TRY_CHECK;
if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG,"TAO_AV_Endpoint_Reactive_Strategy_A::activate_stream_endpoint,Stream Endpoint ior is : %s\n",stream_endpoint_ior.in ()));
@@ -237,10 +266,11 @@ TAO_AV_Endpoint_Reactive_Strategy_A <T_StreamEndpoint, T_VDev, T_MediaCtrl>::act
// TAO_AV_Endpoint_Reactive_Strategy_B
// ----------------------------------------------------------------------
+
// Constructor
template <class T_StreamEndpoint, class T_VDev , class T_MediaCtrl>
-TAO_AV_Endpoint_Reactive_Strategy_B <T_StreamEndpoint, T_VDev, T_MediaCtrl>::TAO_AV_Endpoint_Reactive_Strategy_B (TAO_ORB_Manager *orb_manager)
- : TAO_AV_Endpoint_Reactive_Strategy <T_StreamEndpoint, T_VDev, T_MediaCtrl> (orb_manager)
+TAO_AV_Endpoint_Reactive_Strategy_B <T_StreamEndpoint, T_VDev, T_MediaCtrl>::TAO_AV_Endpoint_Reactive_Strategy_B (CORBA::ORB_ptr orb, PortableServer::POA_ptr poa)
+ : TAO_AV_Endpoint_Reactive_Strategy <T_StreamEndpoint, T_VDev, T_MediaCtrl> (orb, poa)
{
}
@@ -261,11 +291,11 @@ TAO_AV_Endpoint_Reactive_Strategy_B <T_StreamEndpoint, T_VDev, T_MediaCtrl>::act
if (this->make_stream_endpoint (stream_endpoint_b) == -1)
return -1;
- CORBA::String_var stream_endpoint_ior = this->orb_manager_->activate (stream_endpoint_b,
- ACE_TRY_ENV);
+ CORBA::String_var stream_endpoint_ior = this->activate_with_poa (stream_endpoint_b,
+ ACE_TRY_ENV);
ACE_TRY_CHECK;
if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG,"TAO_AV_Endpoint_Reactive_Strategy_B::activate_stream_endpoint,Stream Endpoint ior is : %s\n",stream_endpoint_ior.in ()));
-
+
this->stream_endpoint_b_ = stream_endpoint_b->_this (ACE_TRY_ENV);
ACE_TRY_CHECK;
stream_endpoint_b->_remove_ref (ACE_TRY_ENV);
@@ -319,14 +349,23 @@ TAO_AV_Child_Process <T_StreamEndpoint_B, T_VDev, T_MediaCtrl>::TAO_AV_Child_Pro
// Initializes the ORB, activates the objects, and release the semaphore
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)
+TAO_AV_Child_Process <T_StreamEndpoint_B, T_VDev, T_MediaCtrl>::init (int argc,
+ char **argv,
+ CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa)
{
ACE_DECLARE_NEW_CORBA_ENV;
ACE_TRY
{
+ this->orb_ = orb;
+
+ this->poa_ = poa;
+
// create the objects and activate them in the poa
this->activate_objects (argc,
argv,
+ orb,
+ poa,
ACE_TRY_ENV);
ACE_TRY_CHECK;
@@ -358,21 +397,39 @@ TAO_AV_Child_Process <T_StreamEndpoint_B, T_VDev, T_MediaCtrl>::init (int argc,
return 0;
}
+template <class T_StreamEndpoint, class T_VDev , class T_MediaCtrl>
+char *
+TAO_AV_Child_Process <T_StreamEndpoint, T_VDev, T_MediaCtrl>::activate_with_poa (PortableServer::Servant servant,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+
+ PortableServer::ObjectId_var id =
+ this->poa_->activate_object (servant,
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ CORBA::Object_var obj =
+ this->poa_->id_to_reference (id.in (),
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ CORBA::String_var str =
+ this->orb_->object_to_string (obj.in (),
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (0);
+
+ return str._retn ();
+}
+
// initializes the orb, and activates the objects
template <class T_StreamEndpoint, class T_VDev , class T_MediaCtrl>
int
TAO_AV_Child_Process <T_StreamEndpoint, T_VDev, T_MediaCtrl>::activate_objects (int argc,
- char **argv,
- CORBA::Environment &ACE_TRY_ENV)
+ char **argv,
+ CORBA::Environment &ACE_TRY_ENV)
{
ACE_TRY
{
- // initialize the orb
- this->orb_manager_.init (argc,
- argv,
- ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
// bridge method to make a new stream endpoint
if (this->make_stream_endpoint (this->stream_endpoint_) == -1)
return -1;
@@ -386,20 +443,24 @@ TAO_AV_Child_Process <T_StreamEndpoint, T_VDev, T_MediaCtrl>::activate_objects
return -1;
// activate the stream_endpoint
- CORBA::String_var stream_endpoint_ior = this->orb_manager_.activate (this->stream_endpoint_,
- ACE_TRY_ENV);
+ CORBA::String_var stream_endpoint_ior = this->orb_->activate_with_poa (this->stream_endpoint_,
+ ACE_TRY_ENV);
ACE_TRY_CHECK;
- if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG,"(%P|%t)TAO_AV_Child_Process::activate_objects,stream_endpoint_ior :%s\n",stream_endpoint_ior.in ()));
+ if (TAO_debug_level > 0) 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);
+ CORBA::String_var vdev_ior = this->orb_->activate_with_poa (this->vdev_,
+ ACE_TRY_ENV);
ACE_TRY_CHECK;
- if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG,"(%P|%t)TAO_AV_Child_Process::activate_objects, vdev ior is :%s\n",vdev_ior.in ()));
+ if (TAO_debug_level > 0) 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);
+ CORBA::String_var media_ctrl_ior = this->orb_->activate_with_poa (this->media_ctrl_,
+ ACE_TRY_ENV);
ACE_TRY_CHECK;
if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG,"(%P|%t)TAO_AV_Child_Process::activate_objects,media_ctrl_ior is: %s\n",media_ctrl_ior.in ()));
@@ -422,7 +483,7 @@ TAO_AV_Child_Process <T_StreamEndpoint, T_VDev, T_MediaCtrl>::bind_to_naming_se
ACE_TRY
{
CORBA::Object_var naming_obj =
- this->orb_manager_.orb ()->resolve_initial_references ("NameService");
+ this->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"),
@@ -468,8 +529,8 @@ TAO_AV_Child_Process <T_StreamEndpoint, T_VDev, T_MediaCtrl>::register_vdev (CO
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);
+ media_ctrl_property <<= this->orb_->object_to_string (media_ctrl_obj.in (),
+ ACE_TRY_ENV);
ACE_TRY_CHECK;
this->vdev_->define_property ("Related_MediaCtrl",
media_ctrl_property,
@@ -524,12 +585,12 @@ TAO_AV_Child_Process <T_StreamEndpoint_B, T_VDev, T_MediaCtrl>::run (ACE_Time_V
ACE_DECLARE_NEW_CORBA_ENV;
ACE_TRY
{
- result = this->orb_manager_.run (ACE_TRY_ENV,tv);
+ result = this->orb_->run (ACE_TRY_ENV,tv);
ACE_TRY_CHECK;
}
ACE_CATCHANY
{
- ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,"orb_manager_.run ()");
+ ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,"orb.run ()");
return -1;
}
ACE_ENDTRY;
diff --git a/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.h b/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.h
index 94a29d6ea98..72310f7e91e 100644
--- a/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.h
+++ b/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.h
@@ -32,7 +32,9 @@ class TAO_AV_Export TAO_AV_Endpoint_Reactive_Strategy
// Reactive strategy base class
protected:
- TAO_AV_Endpoint_Reactive_Strategy (TAO_ORB_Manager *orb_manager);
+ // Constructor
+
+ TAO_AV_Endpoint_Reactive_Strategy (CORBA::ORB_ptr orb, PortableServer::POA_ptr poa);
// Constructor
virtual ~TAO_AV_Endpoint_Reactive_Strategy (void);
@@ -47,6 +49,8 @@ protected:
virtual int activate_vdev (CORBA::Environment &env);
// activates the vdev with the POA
+
+
virtual int activate_mediactrl (CORBA::Environment &env);
// activates the media controller with the POA
@@ -62,8 +66,12 @@ protected:
// Bridge method to create a media_ctrl, a la Acceptor. Applications
// can override this
- TAO_ORB_Manager *orb_manager_;
- // ORB manager, used to activate the objects
+
+ char* activate_with_poa (PortableServer::Servant servant, CORBA::Environment &env);
+
+ CORBA::ORB_ptr orb_;
+
+ PortableServer::POA_var poa_;
};
// ----------------------------------------------------------------------
@@ -76,7 +84,8 @@ class TAO_AV_Export TAO_AV_Endpoint_Reactive_Strategy_A
// Reactive strategy
public:
- TAO_AV_Endpoint_Reactive_Strategy_A (TAO_ORB_Manager *orb_manager);
+
+ TAO_AV_Endpoint_Reactive_Strategy_A (CORBA::ORB_ptr orb, PortableServer::POA_ptr poa);
// Constructor
virtual ~TAO_AV_Endpoint_Reactive_Strategy_A (void);
@@ -101,8 +110,9 @@ class TAO_AV_Export TAO_AV_Endpoint_Reactive_Strategy_B
// = DESCRIPTION
// Reactive strategy
public:
- TAO_AV_Endpoint_Reactive_Strategy_B (TAO_ORB_Manager *);
- // Constructor.
+
+ TAO_AV_Endpoint_Reactive_Strategy_B (CORBA::ORB_ptr orb, PortableServer::POA_ptr poa);
+ // Constructor
virtual ~TAO_AV_Endpoint_Reactive_Strategy_B (void);
// Destructor.
@@ -132,7 +142,7 @@ public:
virtual ~TAO_AV_Child_Process ();
// Destructor
- int init (int argc, char **argv);
+ int init (int argc, char **argv, CORBA::ORB_ptr orb, PortableServer::POA_ptr poa);
// Initializes the ORB, creates and activates the
// T_StreamEndpoint, T_VDev, T_MediaCtrl in the POA
@@ -147,6 +157,9 @@ protected:
// Service, so the parent can pick the IOR's and
// return them to the client
+ char* activate_with_poa (PortableServer::Servant servant, CORBA::Environment &env);
+ //activate the servant with the poa
+
int unbind_names (void);
// Removes the vdev and streamendpoint names from the naming service.
@@ -174,9 +187,6 @@ protected:
// Bridge method to create a media_ctrl, a la Acceptor. Applications
// can override this
- TAO_ORB_Manager orb_manager_;
- // The ORB Manager
-
CosNaming::NamingContext_var naming_context_;
// The root Naming Context of the TAO naming service
@@ -200,6 +210,11 @@ protected:
char host_[MAXHOSTNAMELEN];
// Name of the host.
+
+ CORBA::ORB_ptr orb_;
+
+ PortableServer::POA_ptr poa_;
+
};
// ----------------------------------------------------------------------