summaryrefslogtreecommitdiff
path: root/TAO/tao
diff options
context:
space:
mode:
authorPhil Mesnier <mesnier_p@ociweb.com>2007-08-06 19:58:44 +0000
committerPhil Mesnier <mesnier_p@ociweb.com>2007-08-06 19:58:44 +0000
commit1534e90c06bdbe89212291c940cd986e2f2a6096 (patch)
treea34165b82f1352cc1040e10ddabea49d6df792ab /TAO/tao
parent4cb24b0cbd05a7bb1be9bbaf04452da70c73d045 (diff)
downloadATCD-1534e90c06bdbe89212291c940cd986e2f2a6096.tar.gz
Mon Aug 6 19:53:24 UTC 2007 Phil Mesnier <mesnier_p@ociweb.com>
Diffstat (limited to 'TAO/tao')
-rw-r--r--TAO/tao/EndpointPolicy/EndpointPolicy.cpp21
-rw-r--r--TAO/tao/EndpointPolicy/EndpointPolicy.h12
-rw-r--r--TAO/tao/TAO_Internal.cpp10
3 files changed, 38 insertions, 5 deletions
diff --git a/TAO/tao/EndpointPolicy/EndpointPolicy.cpp b/TAO/tao/EndpointPolicy/EndpointPolicy.cpp
index 38657d7097f..15527db9895 100644
--- a/TAO/tao/EndpointPolicy/EndpointPolicy.cpp
+++ b/TAO/tao/EndpointPolicy/EndpointPolicy.cpp
@@ -14,10 +14,16 @@ ACE_RCSID (EndpointPolicy, EndpointPolicy, "$Id$")
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
int
-TAO_EndpointPolicy_Initializer::init (void)
+TAO_EndpointPolicy_Initializer::static_init (void)
{
- ACE_Service_Config::process_directive (ace_svc_desc_TAO_Endpoint_Acceptor_Filter_Factory);
+ ACE_Service_Config::process_directive (ace_svc_desc_TAO_EndpointPolicy_Initializer);
+ return 0;
+
+}
+int
+TAO_EndpointPolicy_Initializer::init (int, ACE_TCHAR* [])
+{
PortableInterceptor::ORBInitializer_ptr temp_orb_initializer =
PortableInterceptor::ORBInitializer::_nil ();
PortableInterceptor::ORBInitializer_var orb_initializer;
@@ -53,3 +59,14 @@ TAO_EndpointPolicy_Initializer::init (void)
}
TAO_END_VERSIONED_NAMESPACE_DECL
+
+/////////////////////////////////////////////////////////////////////
+
+ACE_FACTORY_DEFINE (TAO_EndpointPolicy, TAO_EndpointPolicy_Initializer)
+ACE_STATIC_SVC_DEFINE (TAO_EndpointPolicy_Initializer,
+ ACE_TEXT ("EndpointPolicy_Initializer"),
+ ACE_SVC_OBJ_T,
+ &ACE_SVC_NAME (TAO_EndpointPolicy_Initializer),
+ ACE_Service_Type::DELETE_THIS
+ | ACE_Service_Type::DELETE_OBJ,
+ 0)
diff --git a/TAO/tao/EndpointPolicy/EndpointPolicy.h b/TAO/tao/EndpointPolicy/EndpointPolicy.h
index 007294e420d..b1412c77f78 100644
--- a/TAO/tao/EndpointPolicy/EndpointPolicy.h
+++ b/TAO/tao/EndpointPolicy/EndpointPolicy.h
@@ -27,18 +27,24 @@
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
-class TAO_EndpointPolicy_Export TAO_EndpointPolicy_Initializer
+class TAO_EndpointPolicy_Export TAO_EndpointPolicy_Initializer : public ACE_Service_Object
{
public:
/// Used to force the initialization of the ORB code.
- static int init (void);
+ static int static_init (void);
+
+ /// Initialize the PI_Server loader hooks.
+ virtual int init (int argc, ACE_TCHAR* []);
};
static int
-TAO_Requires_EndpointPolicy_Initializer = TAO_EndpointPolicy_Initializer::init ();
+TAO_Requires_EndpointPolicy_Initializer = TAO_EndpointPolicy_Initializer::static_init ();
TAO_END_VERSIONED_NAMESPACE_DECL
+ACE_STATIC_SVC_DECLARE_EXPORT (TAO_EndpointPolicy, TAO_EndpointPolicy_Initializer)
+ACE_FACTORY_DECLARE (TAO_EndpointPolicy, TAO_EndpointPolicy_Initializer)
+
#include /**/ "ace/post.h"
#define TAO_ENDPOINTPOLICY_SAFE_INCLUDE
diff --git a/TAO/tao/TAO_Internal.cpp b/TAO/tao/TAO_Internal.cpp
index 376ccb847c2..e63f6889957 100644
--- a/TAO/tao/TAO_Internal.cpp
+++ b/TAO/tao/TAO_Internal.cpp
@@ -636,6 +636,16 @@ namespace
csd_framework_loader->init (0, 0);
}
+ ACE_Service_Object * const endpoint_policy_loader =
+ ACE_Dynamic_Service<ACE_Service_Object>::instance (
+ pcfg,
+ "EndpointPolicy_Initializer");
+
+ if (endpoint_policy_loader != 0)
+ {
+ endpoint_policy_loader->init (0, 0);
+ }
+
} /* register_additional_services_i */
int