summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2005-06-17 08:53:21 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2005-06-17 08:53:21 +0000
commitdc6dc8c4409bdab9b4296a8c25e127244b66e08e (patch)
tree165b091ff40c7bbd824ce3917b07b4e3c3c22b88
parent49bf5ca6a771e1af5dbfb1feecdcc369a83cab23 (diff)
downloadATCD-dc6dc8c4409bdab9b4296a8c25e127244b66e08e.tar.gz
ChangeLogTag: Fri Jun 17 08:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
-rw-r--r--ChangeLog23
-rw-r--r--TAO/tao/Messaging/Messaging.cpp4
-rw-r--r--TAO/tao/Messaging/Messaging_ORBInitializer.cpp29
-rw-r--r--TAO/tao/Messaging/Messaging_ORBInitializer.h10
-rw-r--r--TAO/tao/ORB.cpp80
-rw-r--r--TAO/tao/ORB.h8
-rw-r--r--TAO/tao/ORBInitializer_Registry.cpp6
-rw-r--r--TAO/tao/ORB_Core.cpp121
-rw-r--r--TAO/tao/PI/ORBInitInfo.cpp7
-rw-r--r--TAO/tao/PortableServer/LifespanStrategyPersistent.cpp16
-rw-r--r--TAO/tao/PortableServer/Servant_Upcall.h8
-rw-r--r--TAO/tao/RTCORBA/RT_ORBInitializer.cpp7
12 files changed, 183 insertions, 136 deletions
diff --git a/ChangeLog b/ChangeLog
index 21315e133de..5a4ada7f3ad 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+Fri Jun 17 08:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Object_Manager.cpp:
+ Removed comment about very old gcc version
+
+ * ace/Service_Config.h:
+ Added new ACE_DYNAMIC_SERVICE_DIRECTIVE macro that makes it possible
+ to load a service using a process_directive call that works with the
+ normal service configurator and the xml based one. Thanks to
+ Lothar Werzinger <lothar at xcerla dot com> for providing this
+ new macro. We will use it then in TAO to load the services on
+ demand.
+
Thu Jun 16 07:38:57 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu>
* ace/SOCK_Stream.cpp (close): Removed the call to this->close_writer()
@@ -14,13 +27,13 @@ Thu Jun 16 07:38:57 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu>
Varnell <Dave.Varvell@ni.com> for prompting this.
* ace/INET_Addr.cpp (set): Changed the test of
-
+
if (port_number < 0)
-
- to
-
+
+ to
+
if (port_number == -1)
-
+
to fix problems reported by Vemund Handeland
<vemund.handeland@fantoft.no>
diff --git a/TAO/tao/Messaging/Messaging.cpp b/TAO/tao/Messaging/Messaging.cpp
index 6fa1ce3aaef..f500acc331b 100644
--- a/TAO/tao/Messaging/Messaging.cpp
+++ b/TAO/tao/Messaging/Messaging.cpp
@@ -20,9 +20,7 @@ ACE_RCSID (Messaging,
int
TAO_Messaging_Initializer::init (void)
{
- ACE_Service_Config::process_directive (ace_svc_desc_TAO_Messaging_Loader);
-
- return 0;
+ return ACE_Service_Config::process_directive (ace_svc_desc_TAO_Messaging_Loader);
}
void TAO_Messaging_Helper::
diff --git a/TAO/tao/Messaging/Messaging_ORBInitializer.cpp b/TAO/tao/Messaging/Messaging_ORBInitializer.cpp
index 035887d4f7a..d373535fff1 100644
--- a/TAO/tao/Messaging/Messaging_ORBInitializer.cpp
+++ b/TAO/tao/Messaging/Messaging_ORBInitializer.cpp
@@ -51,22 +51,19 @@ TAO_Messaging_ORBInitializer::register_policy_factories (
{
// Register the Messaging policy factories.
- // The Messaging policy factory is stateless and reentrant, so share a
- // single instance between all ORBs.
- if (CORBA::is_nil (this->policy_factory_.in ()))
- {
- PortableInterceptor::PolicyFactory_ptr policy_factory;
- ACE_NEW_THROW_EX (policy_factory,
- TAO_Messaging_PolicyFactory,
- CORBA::NO_MEMORY (
- CORBA::SystemException::_tao_minor_code (
- TAO::VMCID,
- ENOMEM),
- CORBA::COMPLETED_NO));
- ACE_CHECK;
+ PortableInterceptor::PolicyFactory_ptr policy_factory_ptr;
+ ACE_NEW_THROW_EX (policy_factory_ptr,
+ TAO_Messaging_PolicyFactory,
+ CORBA::NO_MEMORY (
+ CORBA::SystemException::_tao_minor_code (
+ TAO::VMCID,
+ ENOMEM),
+ CORBA::COMPLETED_NO));
+ ACE_CHECK;
- this->policy_factory_ = policy_factory;
- }
+
+ PortableInterceptor::PolicyFactory_var policy_factory =
+ policy_factory_ptr;
// Bind the same policy factory to all Messaging related policy
// types since a single policy factory is used to create each of
@@ -122,7 +119,7 @@ TAO_Messaging_ORBInitializer::register_policy_factories (
ACE_TRY
{
info->register_policy_factory (*i,
- this->policy_factory_.in ()
+ policy_factory.in ()
ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
}
diff --git a/TAO/tao/Messaging/Messaging_ORBInitializer.h b/TAO/tao/Messaging/Messaging_ORBInitializer.h
index 4cd92a8d8e6..f9d7398a5f1 100644
--- a/TAO/tao/Messaging/Messaging_ORBInitializer.h
+++ b/TAO/tao/Messaging/Messaging_ORBInitializer.h
@@ -64,16 +64,6 @@ private:
void register_policy_factories (
PortableInterceptor::ORBInitInfo_ptr info
ACE_ENV_ARG_DECL);
-
-private:
-
- /// Instance of the Messaging policy factory.
- /**
- * The Messaging policy factory is stateless and reentrant, so share
- * a single instance between all ORBs.
- */
- PortableInterceptor::PolicyFactory_var policy_factory_;
-
};
#if defined(_MSC_VER)
diff --git a/TAO/tao/ORB.cpp b/TAO/tao/ORB.cpp
index 72c902daa5d..b090a3be18f 100644
--- a/TAO/tao/ORB.cpp
+++ b/TAO/tao/ORB.cpp
@@ -967,13 +967,13 @@ CORBA::ORB::resolve_root_poa (ACE_ENV_SINGLE_ARG_DECL)
}
CORBA::Object_ptr
-CORBA::ORB::resolve_poa_current (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+CORBA::ORB::resolve_poa_current (ACE_ENV_SINGLE_ARG_DECL)
{
- return this->orb_core_->poa_current ();
+ return this->orb_core_->poa_current (ACE_ENV_SINGLE_ARG_PARAMETER);
}
CORBA::Object_ptr
-CORBA::ORB::resolve_policy_manager (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+CORBA::ORB::resolve_policy_manager (void)
{
#if (TAO_HAS_CORBA_MESSAGING == 1)
@@ -995,7 +995,7 @@ CORBA::ORB::resolve_policy_manager (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
}
CORBA::Object_ptr
-CORBA::ORB::resolve_policy_current (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+CORBA::ORB::resolve_policy_current (void)
{
#if (TAO_HAS_CORBA_MESSAGING == 1)
@@ -1110,47 +1110,65 @@ CORBA::ORB::resolve_initial_references (const char *name,
this->check_shutdown (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (CORBA::Object::_nil ());
- if (ACE_OS::strcmp (name, TAO_OBJID_ROOTPOA) == 0)
- return this->resolve_root_poa (ACE_ENV_SINGLE_ARG_PARAMETER);
+ CORBA::Object_var result = CORBA::Object::_nil ();
+ if (ACE_OS::strcmp (name, TAO_OBJID_ROOTPOA) == 0)
+ {
+ result = this->resolve_root_poa (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (CORBA::Object::_nil ());
+ }
else if (ACE_OS::strcmp (name, TAO_OBJID_POACURRENT) == 0)
- return this->resolve_poa_current (ACE_ENV_SINGLE_ARG_PARAMETER);
-
+ {
+ result = this->resolve_poa_current ();
+ }
else if (ACE_OS::strcmp (name, TAO_OBJID_POLICYMANAGER) == 0)
- return this->resolve_policy_manager (ACE_ENV_SINGLE_ARG_PARAMETER);
-
+ {
+ result = this->resolve_policy_manager ();
+ }
else if (ACE_OS::strcmp (name, TAO_OBJID_POLICYCURRENT) == 0)
- return this->resolve_policy_current (ACE_ENV_SINGLE_ARG_PARAMETER);
-
+ {
+ result = this->resolve_policy_current ();
+ }
else if (ACE_OS::strcmp (name, TAO_OBJID_IORMANIPULATION) == 0)
- return this->orb_core ()->resolve_ior_manipulation (ACE_ENV_SINGLE_ARG_PARAMETER);
-
+ {
+ result = this->orb_core ()->resolve_ior_manipulation (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (CORBA::Object::_nil ());
+ }
else if (ACE_OS::strcmp (name, TAO_OBJID_IORTABLE) == 0)
- return this->orb_core ()->resolve_ior_table (ACE_ENV_SINGLE_ARG_PARAMETER);
-
+ {
+ result = this->orb_core ()->resolve_ior_table (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (CORBA::Object::_nil ());
+ }
else if (ACE_OS::strcmp (name, TAO_OBJID_DYNANYFACTORY) == 0)
- return this->orb_core ()->resolve_dynanyfactory (ACE_ENV_SINGLE_ARG_PARAMETER);
-
+ {
+ result = this->orb_core ()->resolve_dynanyfactory (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (CORBA::Object::_nil ());
+ }
else if (ACE_OS::strcmp (name, TAO_OBJID_TYPECODEFACTORY) == 0)
- return this->orb_core ()->resolve_typecodefactory (ACE_ENV_SINGLE_ARG_PARAMETER);
-
- else if (ACE_OS::strcmp (name, TAO_OBJID_CODECFACTORY) == 0)
- return this->orb_core ()->resolve_codecfactory (ACE_ENV_SINGLE_ARG_PARAMETER);
-
+ {
+ result = this->orb_core ()->resolve_codecfactory (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (CORBA::Object::_nil ());
+ }
#if TAO_HAS_INTERCEPTORS == 1
else if (ACE_OS::strcmp (name, TAO_OBJID_PICurrent) == 0)
- return this->orb_core ()->resolve_picurrent (ACE_ENV_SINGLE_ARG_PARAMETER);
+ {
+ result = this->orb_core ()->resolve_picurrent (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (CORBA::Object::_nil ());
+ }
#endif
// -----------------------------------------------------------------
- // Search the object reference table. This search must occur before
- // the InitRef table search, since it may contain local objects.
- CORBA::Object_var result =
- this->orb_core ()->object_ref_table ().resolve_initial_references (
- name
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CORBA::Object::_nil ());
+ if (!CORBA::is_nil (result.in ()))
+ {
+ // Search the object reference table. This search must occur before
+ // the InitRef table search, since it may contain local objects.
+ result =
+ this->orb_core ()->object_ref_table ().resolve_initial_references (
+ name
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (CORBA::Object::_nil ());
+ }
if (!CORBA::is_nil (result.in ()))
return result._retn ();
diff --git a/TAO/tao/ORB.h b/TAO/tao/ORB.h
index 4fa0fa78a7d..b989bf8fb0a 100644
--- a/TAO/tao/ORB.h
+++ b/TAO/tao/ORB.h
@@ -597,14 +597,10 @@ namespace CORBA
CORBA::Object_ptr resolve_poa_current (ACE_ENV_SINGLE_ARG_DECL);
/// Resolve the Policy Manager for this ORB.
- CORBA::Object_ptr resolve_policy_manager (
- ACE_ENV_SINGLE_ARG_DECL
- );
+ CORBA::Object_ptr resolve_policy_manager (void);
/// Resolve the Policy Current for this thread.
- CORBA::Object_ptr resolve_policy_current (
- ACE_ENV_SINGLE_ARG_DECL
- );
+ CORBA::Object_ptr resolve_policy_current (void);
private:
diff --git a/TAO/tao/ORBInitializer_Registry.cpp b/TAO/tao/ORBInitializer_Registry.cpp
index ab8de877d7e..213ae7a6ad6 100644
--- a/TAO/tao/ORBInitializer_Registry.cpp
+++ b/TAO/tao/ORBInitializer_Registry.cpp
@@ -53,8 +53,10 @@ PortableInterceptor::register_orb_initializer (
if (orbinitializer_registry_ == 0)
{
ACE_Service_Config::process_directive (
- ACE_TEXT_CHAR_TO_TCHAR (
- "dynamic ORBInitializer_Registry Service_Object * TAO_PI:_make_ORBInitializer_Registry()"));
+ ACE_DYNAMIC_SERVICE_DIRECTIVE("ORBInitializer_Registry",
+ "TAO_PI",
+ "_make_ORBInitializer_Registry",
+ ""));
orbinitializer_registry_ =
ACE_Dynamic_Service<TAO::ORBInitializer_Registry_Adapter>::instance
("ORBInitializer_Registry");
diff --git a/TAO/tao/ORB_Core.cpp b/TAO/tao/ORB_Core.cpp
index a26d7018540..59933fb6d27 100644
--- a/TAO/tao/ORB_Core.cpp
+++ b/TAO/tao/ORB_Core.cpp
@@ -123,7 +123,7 @@ TAO_ORB_Core_Static_Resources::TAO_ORB_Core_Static_Resources (void)
iorinterceptor_adapter_factory_name_ ("IORInterceptor_Adapter_Factory"),
valuetype_adapter_name_ ("Valuetype_Adapter"),
poa_factory_name_ ("TAO_Object_Adapter_Factory"),
- poa_factory_directive_ ("dynamic TAO_Object_Adapter_Factory Service_Object * TAO_PortableServer:_make_TAO_Object_Adapter_Factory()")
+ poa_factory_directive_ (ACE_DYNAMIC_SERVICE_DIRECTIVE("TAO_Object_Adapter_Factory", "TAO_PortableServer", "_make_TAO_Object_Adapter_Factory", ""))
{
}
@@ -1420,8 +1420,10 @@ TAO_ORB_Core::policy_factory_registry_i (void)
if (loader == 0)
{
ACE_Service_Config::process_directive (
- ACE_TEXT("dynamic TAO_PolicyFactory_Registry_Factory Service_Object *")
- ACE_TEXT("TAO_PI:_make_PolicyFactory_Loader()"));
+ ACE_DYNAMIC_SERVICE_DIRECTIVE("TAO_PolicyFactory_Registry_Factory",
+ "TAO_PI",
+ "_make_PolicyFactory_Loader",
+ ""));
loader =
ACE_Dynamic_Service<TAO_PolicyFactory_Registry_Factory>::instance (
"PolicyFactory_Loader");
@@ -1451,8 +1453,10 @@ TAO_ORB_Core::orbinitializer_registry_i (void)
if (orbinitializer_registry_ == 0)
{
ACE_Service_Config::process_directive (
- ACE_TEXT_CHAR_TO_TCHAR (
- "dynamic ORBInitializer_Registry Service_Object * TAO_PI:_make_ORBInitializer_Registry()"));
+ ACE_DYNAMIC_SERVICE_DIRECTIVE("ORBInitializer_Registry",
+ "TAO_PI",
+ "_make_ORBInitializer_Registry",
+ ""));
orbinitializer_registry_ =
ACE_Dynamic_Service<TAO::ORBInitializer_Registry_Adapter>::instance
("ORBInitializer_Registry");
@@ -1664,9 +1668,7 @@ TAO_ORB_Core::root_poa (ACE_ENV_SINGLE_ARG_DECL)
if (factory == 0)
{
- // It really failed, raise an exception!
- ACE_THROW_RETURN (CORBA::ORB::InvalidName (),
- CORBA::Object::_nil ());
+ return CORBA::Object::_nil ();
}
ACE_GUARD_RETURN (TAO_SYNCH_MUTEX,
@@ -2237,8 +2239,11 @@ TAO_ORB_Core::resolve_typecodefactory_i (ACE_ENV_SINGLE_ARG_DECL)
ACE_Dynamic_Service<TAO_Object_Loader>::instance ("TypeCodeFactory_Loader");
if (loader == 0)
{
- ACE_Service_Config::process_directive (ACE_TEXT("dynamic TypeCodeFactory Service_Object *")
- ACE_TEXT("TAO_TypeCodeFactory:_make_TAO_TypeCodeFactory_Loader()"));
+ ACE_Service_Config::process_directive (
+ ACE_DYNAMIC_SERVICE_DIRECTIVE("TypeCodeFactory",
+ "TAO_TypeCodeFactory",
+ "_make_TAO_TypeCodeFactory_Loader",
+ ""));
loader =
ACE_Dynamic_Service<TAO_Object_Loader>::instance ("TypeCodeFactory_Loader");
if (loader == 0)
@@ -2255,15 +2260,19 @@ TAO_ORB_Core::resolve_codecfactory_i (ACE_ENV_SINGLE_ARG_DECL)
ACE_Dynamic_Service<TAO_Object_Loader>::instance ("CodecFactory_Loader");
if (loader == 0)
{
- ACE_Service_Config::process_directive (ACE_TEXT("dynamic CodecFactory Service_Object *")
- ACE_TEXT("TAO_CodecFactory:_make_TAO_CodecFactory_Loader()"));
+ ACE_Service_Config::process_directive (
+ ACE_DYNAMIC_SERVICE_DIRECTIVE("CodecFactory",
+ "TAO_CodecFactory",
+ "_make_TAO_CodecFactory_Loader",
+ ""));
loader =
ACE_Dynamic_Service<TAO_Object_Loader>::instance ("CodecFactory_Loader");
- if (loader == 0)
- ACE_THROW (CORBA::ORB::InvalidName ());
}
- this->codec_factory_ =
- loader->create_object (this->orb_, 0, 0 ACE_ENV_ARG_PARAMETER);
+ if (loader != 0)
+ {
+ this->codec_factory_ =
+ loader->create_object (this->orb_, 0, 0 ACE_ENV_ARG_PARAMETER);
+ }
}
#if TAO_HAS_INTERCEPTORS == 1
@@ -2275,18 +2284,23 @@ TAO_ORB_Core::resolve_picurrent_i (ACE_ENV_SINGLE_ARG_DECL)
ACE_Dynamic_Service<TAO_Object_Loader>::instance ("PICurrent_Loader");
if (loader == 0)
{
- ACE_Service_Config::process_directive (ACE_TEXT("dynamic PICurrent_Loader Service_Object *")
- ACE_TEXT("TAO:_make_TAO_PICurrent_Loader()"));
+ ACE_Service_Config::process_directive (
+ ACE_DYNAMIC_SERVICE_DIRECTIVE("PICurrent_Loader",
+ "TAO",
+ "_make_TAO_PICurrent_Loader",
+ ""));
loader =
ACE_Dynamic_Service<TAO_Object_Loader>::instance ("PICurrent_Loader");
- if (loader == 0)
- ACE_THROW (CORBA::ORB::InvalidName ());
}
- CORBA::Object_ptr pi =
- loader->create_object (this->orb_, 0, 0 ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- this->pi_current_ = dynamic_cast <TAO::PICurrent *> (pi);
+ if (loader != 0)
+ {
+ CORBA::Object_ptr pi =
+ loader->create_object (this->orb_, 0, 0 ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ this->pi_current_ = dynamic_cast <TAO::PICurrent *> (pi);
+ }
}
#endif
@@ -2299,15 +2313,20 @@ TAO_ORB_Core::resolve_dynanyfactory_i (ACE_ENV_SINGLE_ARG_DECL)
ACE_Dynamic_Service<TAO_Object_Loader>::instance ("DynamicAny_Loader");
if (loader == 0)
{
- ACE_Service_Config::process_directive (ACE_TEXT("dynamic DynamicAny_Loader Service_Object *")
- ACE_TEXT("TAO_DynamicAny:_make_TAO_DynamicAny_Loader()"));
+ ACE_Service_Config::process_directive (
+ ACE_DYNAMIC_SERVICE_DIRECTIVE("DynamicAny_Loader",
+ "TAO_DynamicAny",
+ "_make_TAO_DynamicAny_Loader",
+ ""));
loader =
ACE_Dynamic_Service<TAO_Object_Loader>::instance ("DynamicAny_Loader");
- if (loader == 0)
- ACE_THROW (CORBA::ORB::InvalidName ());
}
- this->dynany_factory_ =
- loader->create_object (this->orb_, 0, 0 ACE_ENV_ARG_PARAMETER);
+
+ if (loader != 0)
+ {
+ this->dynany_factory_ =
+ loader->create_object (this->orb_, 0, 0 ACE_ENV_ARG_PARAMETER);
+ }
}
void
@@ -2318,15 +2337,19 @@ TAO_ORB_Core::resolve_iormanipulation_i (ACE_ENV_SINGLE_ARG_DECL)
if (loader == 0)
{
- ACE_Service_Config::process_directive (ACE_TEXT("dynamic IORManip_Loader Service_Object *")
- ACE_TEXT("TAO_IORManip:_make_TAO_IORManip_Loader()"));
+ ACE_Service_Config::process_directive (
+ ACE_DYNAMIC_SERVICE_DIRECTIVE("IORManip_Loader",
+ "TAO_IORManip",
+ "_make_TAO_IORManip_Loader",
+ ""));
loader =
ACE_Dynamic_Service<TAO_Object_Loader>::instance ("IORManip_Loader");
- if (loader == 0)
- ACE_THROW (CORBA::ORB::InvalidName ());
}
- this->ior_manip_factory_ =
- loader->create_object (this->orb_, 0, 0 ACE_ENV_ARG_PARAMETER);
+ if (loader != 0)
+ {
+ this->ior_manip_factory_ =
+ loader->create_object (this->orb_, 0, 0 ACE_ENV_ARG_PARAMETER);
+ }
}
void
@@ -2336,23 +2359,27 @@ TAO_ORB_Core::resolve_ior_table_i (ACE_ENV_SINGLE_ARG_DECL)
ACE_Dynamic_Service<TAO_Adapter_Factory>::instance ("TAO_IORTable");
if (factory == 0)
{
- ACE_Service_Config::process_directive (ACE_TEXT("dynamic TAO_IORTable Service_Object *")
- ACE_TEXT("TAO_IORTable:_make_TAO_Table_Adapter_Factory()"));
+ ACE_Service_Config::process_directive (
+ ACE_DYNAMIC_SERVICE_DIRECTIVE("TAO_IORTable",
+ "TAO_IORTable",
+ "_make_TAO_Table_Adapter_Factory",
+ ""));
factory =
ACE_Dynamic_Service<TAO_Adapter_Factory>::instance ("TAO_IORTable");
}
- if (factory == 0)
- ACE_THROW (CORBA::ORB::InvalidName ());
- // @@ Not exception safe
- TAO_Adapter *iortable_adapter = factory->create (this);
- this->adapter_registry_.insert (iortable_adapter ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
+ if (factory != 0)
+ {
+ // @@ Not exception safe
+ TAO_Adapter *iortable_adapter = factory->create (this);
+ this->adapter_registry_.insert (iortable_adapter ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
- iortable_adapter->open (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
+ iortable_adapter->open (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
- this->ior_table_ = iortable_adapter->root ();
+ this->ior_table_ = iortable_adapter->root ();
+ }
}
int
diff --git a/TAO/tao/PI/ORBInitInfo.cpp b/TAO/tao/PI/ORBInitInfo.cpp
index ca98c7e77b0..d1045e99fe3 100644
--- a/TAO/tao/PI/ORBInitInfo.cpp
+++ b/TAO/tao/PI/ORBInitInfo.cpp
@@ -127,8 +127,11 @@ TAO_ORBInitInfo::codec_factory (ACE_ENV_SINGLE_ARG_DECL)
if (loader == 0)
{
- ACE_Service_Config::process_directive (ACE_TEXT("dynamic CodecFactory Service_Object *")
- ACE_TEXT("TAO_CodecFactory:_make_TAO_CodecFactory_Loader()"));
+ ACE_Service_Config::process_directive (
+ ACE_DYNAMIC_SERVICE_DIRECTIVE("CodecFactory",
+ "TAO_CodecFactory",
+ "_make_TAO_CodecFactory_Loader",
+ ""));
loader =
ACE_Dynamic_Service<TAO_Object_Loader>::instance ("CodecFactory_Loader");
}
diff --git a/TAO/tao/PortableServer/LifespanStrategyPersistent.cpp b/TAO/tao/PortableServer/LifespanStrategyPersistent.cpp
index 7a253b6dc16..d850d2ce6ec 100644
--- a/TAO/tao/PortableServer/LifespanStrategyPersistent.cpp
+++ b/TAO/tao/PortableServer/LifespanStrategyPersistent.cpp
@@ -69,19 +69,9 @@ namespace TAO
if (adapter == 0)
{
ACE_Service_Config::process_directive (
-#if !defined ACE_HAS_XML_SVC_CONF
- ACE_TEXT("dynamic ImR_Client_Adapter Service_Object *")
- ACE_TEXT("TAO_ImR_Client:_make_ImR_Client_Adapter_Impl()")
-#else
- ACE_TEXT("<ACE_Svc_Conf>")
- ACE_TEXT("<dynamic id=\"ImR_Client_Adapter\" type=\"Service_Object\">")
- ACE_TEXT("<initializer path=\"TAO_ImR_Client\"")
- ACE_TEXT(" init=\"_make_ImR_Client_Adapter_Impl\"")
- ACE_TEXT(" params=\"\"/>")
- ACE_TEXT("</dynamic>")
- ACE_TEXT("</ACE_Svc_Conf>")
-#endif
- );
+ ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "ImR_Client_Adapter", "TAO_ImR_Client",
+ "_make_ImR_Client_Adapter_Impl", ""));
adapter =
ACE_Dynamic_Service<ImR_Client_Adapter>::instance (
diff --git a/TAO/tao/PortableServer/Servant_Upcall.h b/TAO/tao/PortableServer/Servant_Upcall.h
index 11f7c07421c..b9564e8d7a8 100644
--- a/TAO/tao/PortableServer/Servant_Upcall.h
+++ b/TAO/tao/PortableServer/Servant_Upcall.h
@@ -35,6 +35,14 @@ class TAO_Object_Adapter;
class TAO_RT_Collocation_Resolver;
struct TAO_Active_Object_Map_Entry;
+namespace CORBA
+{
+ class Object;
+ typedef Object *Object_ptr;
+ typedef TAO_Pseudo_Var_T<Object> Object_var;
+ typedef TAO_Pseudo_Out_T<Object, Object_var> Object_out;
+}
+
namespace TAO
{
namespace Portable_Server
diff --git a/TAO/tao/RTCORBA/RT_ORBInitializer.cpp b/TAO/tao/RTCORBA/RT_ORBInitializer.cpp
index 75007008cfc..cf4d03e7f45 100644
--- a/TAO/tao/RTCORBA/RT_ORBInitializer.cpp
+++ b/TAO/tao/RTCORBA/RT_ORBInitializer.cpp
@@ -37,7 +37,12 @@ ACE_RCSID (RTCORBA,
#include "ace/Sched_Params.h"
static const char *rt_poa_factory_name = "TAO_RT_Object_Adapter_Factory";
-static const char *rt_poa_factory_directive = "dynamic TAO_RT_Object_Adapter_Factory Service_Object * TAO_RTPortableServer:_make_TAO_RT_Object_Adapter_Factory()";
+static const char *rt_poa_factory_directive =
+ ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "TAO_RT_Object_Adapter_Factory",
+ "TAO_RTPortableServer",
+ "_make_TAO_RT_Object_Adapter_Factory",
+ "");
TAO_RT_ORBInitializer::TAO_RT_ORBInitializer (int priority_mapping_type,
int network_priority_mapping_type,