summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOssama Othman <ossama-othman@users.noreply.github.com>2002-01-27 08:03:50 +0000
committerOssama Othman <ossama-othman@users.noreply.github.com>2002-01-27 08:03:50 +0000
commit984ef8dfa2603693c85cbd58e7e1fa05be821a08 (patch)
tree470407fc6b6906f19ad9af8e910c12a6a15383b1
parent686acd5ab6c78849a57a119569add99e543f0d39 (diff)
downloadATCD-984ef8dfa2603693c85cbd58e7e1fa05be821a08.tar.gz
ChangeLogTag:Sat Jan 26 23:09:56 2002 Ossama Othman <ossama@uci.edu>
-rw-r--r--TAO/ChangeLogs/ChangeLog-02a25
-rw-r--r--TAO/tao/ClientRequestInfo_i.cpp2
-rw-r--r--TAO/tao/ORB.cpp162
-rw-r--r--TAO/tao/ORB.h10
-rw-r--r--TAO/tao/ORBInitInfo.h2
-rw-r--r--TAO/tao/ORB_Core.cpp30
-rw-r--r--TAO/tao/Object_Ref_Table.cpp16
-rw-r--r--TAO/tao/Object_Ref_Table.h2
8 files changed, 155 insertions, 94 deletions
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a
index 49505638dfe..6196a6fe62e 100644
--- a/TAO/ChangeLogs/ChangeLog-02a
+++ b/TAO/ChangeLogs/ChangeLog-02a
@@ -1,3 +1,28 @@
+Sat Jan 26 23:09:56 2002 Ossama Othman <ossama@uci.edu>
+
+ * tao/ORB.h:
+ * tao/ORB.cpp (id, register_initial_reference):
+
+ The CORBA specification recently added these methods to the
+ CORBA::ORB interface. Implemented them.
+
+ * tao/ORB_Core.cpp:
+
+ Moved template instantiations from `ORB.cpp' to this file. They
+ aren't used in the former.
+
+ * tao/Object_Ref_Table.h:
+ * tao/Object_Ref_Table.cpp:
+
+ Synchronize access to the underlying hash map by instantiating
+ the template(s) with a TAO_SYNCH_MUTEX instead of an
+ ACE_Null_Mutex. Multiple threads may potentially attempt to
+ register an object reference concurrently.
+
+ * tao/ClientRequestInfo_i.cpp (get_service_context_i):
+
+ Corrected exception minor code (26 instead of 23).
+
Sat Jan 26 22:53:04 2002 Oliver Kellogg <oliver.kellogg@sysde.eads.net>
* examples/Callback_Quoter/Notifier_i.cpp:
diff --git a/TAO/tao/ClientRequestInfo_i.cpp b/TAO/tao/ClientRequestInfo_i.cpp
index cd3bdb2a794..18c7271208c 100644
--- a/TAO/tao/ClientRequestInfo_i.cpp
+++ b/TAO/tao/ClientRequestInfo_i.cpp
@@ -550,7 +550,7 @@ TAO_ClientRequestInfo_i::get_service_context_i (
else
{
// Not found.
- ACE_THROW_RETURN (CORBA::BAD_PARAM (TAO_OMG_VMCID | 23,
+ ACE_THROW_RETURN (CORBA::BAD_PARAM (TAO_OMG_VMCID | 26,
CORBA::COMPLETED_NO),
0);
}
diff --git a/TAO/tao/ORB.cpp b/TAO/tao/ORB.cpp
index fcf04633cc5..4b2890510ca 100644
--- a/TAO/tao/ORB.cpp
+++ b/TAO/tao/ORB.cpp
@@ -15,7 +15,6 @@ ACE_RCSID (tao,
#include "Typecode.h"
#include "Stub.h"
#include "ORB_Core.h"
-#include "Server_Strategy_Factory.h"
#include "debug.h"
#include "TAO_Internal.h"
#include "NVList.h"
@@ -60,8 +59,9 @@ ACE_RCSID (tao,
# else
# if defined (ACE_HAS_STANDARD_CPP_LIBRARY)
# include /**/ <exception>
-# if !defined (_MSC_VER) && defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB) && \
- (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB != 0)
+# if !defined (_MSC_VER) \
+ && defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB) \
+ && (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB != 0)
using std::set_unexpected;
# endif /* !_MSC_VER */
# else
@@ -193,7 +193,7 @@ CORBA_ORB::shutdown (CORBA::Boolean wait_for_completion
ACE_CHECK;
this->orb_core ()->shutdown (wait_for_completion
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
ACE_CHECK;
}
@@ -216,7 +216,8 @@ CORBA_ORB::destroy (TAO_ENV_SINGLE_ARG_DECL)
if (TAO_debug_level >= 3)
{
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("CORBA::ORB::destroy() has been called on ORB <%s>.\n"),
+ ACE_TEXT ("CORBA::ORB::destroy() has been ")
+ ACE_TEXT ("called on ORB <%s>.\n"),
this->orb_core ()->orbid ()));
}
@@ -331,7 +332,7 @@ CORBA_ORB::create_list (CORBA::Long count,
{
new_list->max_ = (CORBA::ULong) count;
- for (CORBA::Long i=0; i < count; i++)
+ for (CORBA::Long i = 0; i < count; i++)
{
CORBA::NamedValue_ptr nv = 0;
ACE_NEW_THROW_EX (nv,
@@ -358,14 +359,15 @@ CORBA_ORB::create_exception_list (CORBA::ExceptionList_ptr &list
);
dynamic_adapter->create_exception_list (list
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
}
void
CORBA_ORB::create_environment (CORBA::Environment_ptr &environment
TAO_ENV_ARG_DECL)
{
- ACE_NEW_THROW_EX (environment, CORBA::Environment (),
+ ACE_NEW_THROW_EX (environment,
+ CORBA::Environment (),
CORBA::NO_MEMORY (
CORBA_SystemException::_tao_minor_code (
TAO_DEFAULT_MINOR_CODE,
@@ -390,9 +392,10 @@ CORBA_ORB::create_named_value (CORBA::NamedValue_ptr &nv
// CORBA::NO_IMPLEMENT.
CORBA::Boolean
-CORBA_ORB::get_service_information (CORBA::ServiceType /* service_type */,
- CORBA::ServiceInformation_out /* service_information */
- TAO_ENV_ARG_DECL)
+CORBA_ORB::get_service_information (
+ CORBA::ServiceType /* service_type */,
+ CORBA::ServiceInformation_out /* service_information */
+ TAO_ENV_ARG_DECL)
{
ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (
CORBA_SystemException::_tao_minor_code (
@@ -493,7 +496,7 @@ CORBA_ORB::create_struct_tc (
return adapter->create_struct_tc (id,
name,
members
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
}
CORBA::TypeCode_ptr
@@ -521,7 +524,7 @@ CORBA_ORB::create_union_tc (
name,
discriminator_type,
members
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
}
CORBA::TypeCode_ptr
@@ -547,7 +550,7 @@ CORBA_ORB::create_enum_tc (
return adapter->create_enum_tc (id,
name,
members
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
}
CORBA::TypeCode_ptr
@@ -573,7 +576,7 @@ CORBA_ORB::create_alias_tc (
return adapter->create_alias_tc (id,
name,
original_type
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
}
CORBA::TypeCode_ptr
@@ -599,7 +602,7 @@ CORBA_ORB::create_exception_tc (
return adapter->create_exception_tc (id,
name,
members
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
}
CORBA::TypeCode_ptr
@@ -623,7 +626,7 @@ CORBA_ORB::create_interface_tc (
return adapter->create_interface_tc (id,
name
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
}
CORBA::TypeCode_ptr
@@ -645,7 +648,7 @@ CORBA_ORB::create_string_tc (
}
return adapter->create_string_tc (bound
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
}
CORBA::TypeCode_ptr
@@ -667,7 +670,7 @@ CORBA_ORB::create_wstring_tc (
}
return adapter->create_wstring_tc (bound
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
}
CORBA::TypeCode_ptr
@@ -691,7 +694,7 @@ CORBA_ORB::create_fixed_tc (
return adapter->create_fixed_tc (digits,
scale
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
}
CORBA::TypeCode_ptr
@@ -715,7 +718,7 @@ CORBA_ORB::create_sequence_tc (
return adapter->create_sequence_tc (bound,
element_type
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
}
CORBA::TypeCode_ptr
@@ -739,7 +742,7 @@ CORBA_ORB::create_array_tc (
return adapter->create_array_tc (length,
element_type
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
}
CORBA::TypeCode_ptr
@@ -769,7 +772,7 @@ CORBA_ORB::create_value_tc (
type_modifier,
concrete_base,
members
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
}
CORBA::TypeCode_ptr
@@ -795,7 +798,7 @@ CORBA_ORB::create_value_box_tc (
return adapter->create_value_box_tc (id,
name,
boxed_type
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
}
CORBA::TypeCode_ptr
@@ -819,7 +822,7 @@ CORBA_ORB::create_native_tc (
return adapter->create_native_tc (id,
name
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
}
CORBA::TypeCode_ptr
@@ -841,7 +844,7 @@ CORBA_ORB::create_recursive_tc (
}
return adapter->create_recursive_tc (id
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
}
CORBA::TypeCode_ptr
@@ -865,7 +868,7 @@ CORBA_ORB::create_abstract_interface_tc (
return adapter->create_abstract_interface_tc (id,
name
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
}
CORBA::TypeCode_ptr
@@ -889,7 +892,7 @@ CORBA_ORB::create_local_interface_tc (
return adapter->create_local_interface_tc (id,
name
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
}
// ****************************************************************
@@ -897,8 +900,7 @@ CORBA_ORB::create_local_interface_tc (
#endif /* TAO_HAS_MINIMUM_CORBA */
CORBA_Object_ptr
-CORBA_ORB::resolve_root_poa (TAO_ENV_SINGLE_ARG_DECL
- )
+CORBA_ORB::resolve_root_poa (TAO_ENV_SINGLE_ARG_DECL)
{
return this->orb_core_->root_poa (TAO_ENV_SINGLE_ARG_PARAMETER);
}
@@ -1056,7 +1058,7 @@ CORBA_ORB::resolve_initial_references (const char *name
{
return this->resolve_initial_references (name,
0
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
}
CORBA_Object_ptr
@@ -1174,13 +1176,31 @@ CORBA_ORB::resolve_initial_references (const char *name,
ACE_THROW_RETURN (CORBA::ORB::InvalidName (), CORBA::Object::_nil ());
}
+void
+CORBA_ORB::register_initial_reference (const char * id,
+ CORBA::Object_ptr obj
+ TAO_ENV_ARG_DECL)
+{
+ if (id == 0)
+ ACE_THROW (CORBA::ORB::InvalidName ());
+ else if (ACE_OS_String::strlen (id) == 0)
+ ACE_THROW (CORBA::ORB::InvalidName ());
+
+ TAO_Object_Ref_Table &table = this->orb_core_->object_ref_table ();
+
+ table.register_initial_reference (id, obj TAO_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+}
+
+
CORBA_ORB_ObjectIdList_ptr
CORBA_ORB::list_initial_services (TAO_ENV_SINGLE_ARG_DECL)
{
this->check_shutdown (TAO_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (0);
- return this->orb_core ()->list_initial_references (TAO_ENV_SINGLE_ARG_PARAMETER);
+ return
+ this->orb_core ()->list_initial_references (TAO_ENV_SINGLE_ARG_PARAMETER);
}
void
@@ -1271,11 +1291,12 @@ CORBA_ORB::init_orb_globals (TAO_ENV_SINGLE_ARG_DECL)
ENOMEM),
CORBA::COMPLETED_NO));
ACE_CHECK;
+
PortableInterceptor::ORBInitializer_var cf_initializer =
tmp_cf_initializer;
PortableInterceptor::register_orb_initializer (cf_initializer.in ()
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
ACE_CHECK;
// -------------------------------------------------------------
@@ -1297,10 +1318,11 @@ CORBA_ORB::init_orb_globals (TAO_ENV_SINGLE_ARG_DECL)
ENOMEM),
CORBA::COMPLETED_NO));
ACE_CHECK;
+
orb_initializer = temp_orb_initializer;
PortableInterceptor::register_orb_initializer (orb_initializer.in ()
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
ACE_CHECK;
#endif /* TAO_HAS_CORBA_MESSAGING == 1 */
@@ -1318,10 +1340,11 @@ CORBA_ORB::init_orb_globals (TAO_ENV_SINGLE_ARG_DECL)
ENOMEM),
CORBA::COMPLETED_NO));
ACE_CHECK;
+
pi_initializer = temp_pi_initializer;
PortableInterceptor::register_orb_initializer (pi_initializer.in ()
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
ACE_CHECK;
#endif /* TAO_HAS_INTERCEPTORS == 1 */
}
@@ -1528,7 +1551,7 @@ CORBA::ORB_init (int &argc,
// Call the ORBInitializer::pre_init() on each registered ORB
// initializer.
TAO_ORBInitializer_Registry::instance ()->pre_init (orb_init_info.in ()
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (CORBA::ORB::_nil ());
// Initialize the ORB Core instance.
@@ -1547,7 +1570,7 @@ CORBA::ORB_init (int &argc,
// Call the ORBInitializer::post_init() on each registered ORB
// initializer.
TAO_ORBInitializer_Registry::instance ()->post_init (orb_init_info.in ()
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (CORBA::ORB::_nil ());
// Invalidate the ORBInitInfo instance to prevent future
@@ -1573,7 +1596,7 @@ CORBA::ORB_init (int &argc,
// ****************************************************************
-// Objref stringification.
+// Object reference stringification.
char *
CORBA_ORB::object_to_string (CORBA::Object_ptr obj
TAO_ENV_ARG_DECL)
@@ -1610,7 +1633,8 @@ CORBA_ORB::object_to_string (CORBA::Object_ptr obj
char buf [ACE_CDR::DEFAULT_BUFSIZE];
#endif /* ACE_HAS_PURIFY */
- TAO_OutputCDR cdr (buf, sizeof buf,
+ TAO_OutputCDR cdr (buf,
+ sizeof buf,
TAO_ENCAP_BYTE_ORDER,
this->orb_core_->output_cdr_buffer_allocator (),
this->orb_core_->output_cdr_dblock_allocator (),
@@ -1622,7 +1646,7 @@ CORBA_ORB::object_to_string (CORBA::Object_ptr obj
this->orb_core_->to_unicode ());
// support limited oref ACE_OS::strcmp.
- (void) ACE_OS::memset (buf, 0, sizeof(buf));
+ (void) ACE_OS::memset (buf, 0, sizeof (buf));
// Marshal the objref into an encapsulation bytestream.
(void) cdr.write_octet (TAO_ENCAP_BYTE_ORDER);
@@ -1724,10 +1748,10 @@ CORBA_ORB::string_to_object (const char *str
// Check for NULL pointer
if (str == 0)
ACE_THROW_RETURN (CORBA::INV_OBJREF (
- CORBA_SystemException::_tao_minor_code (
- TAO_DEFAULT_MINOR_CODE,
- EINVAL),
- CORBA::COMPLETED_NO),
+ CORBA_SystemException::_tao_minor_code (
+ TAO_DEFAULT_MINOR_CODE,
+ EINVAL),
+ CORBA::COMPLETED_NO),
CORBA::Object::_nil ());
TAO_IOR_Parser *ior_parser =
@@ -1737,7 +1761,7 @@ CORBA_ORB::string_to_object (const char *str
{
return ior_parser->parse_string (str,
this
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
}
@@ -1745,13 +1769,21 @@ CORBA_ORB::string_to_object (const char *str
ior_prefix,
sizeof ior_prefix - 1) == 0)
return this->ior_string_to_object (str + sizeof ior_prefix - 1
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
else
return this->url_ior_string_to_object (str TAO_ENV_ARG_PARAMETER);
}
// ****************************************************************
+char *
+CORBA_ORB::id (TAO_ENV_ARG_DECL_NOT_USED)
+{
+ return CORBA::string_dup (this->orb_core_->orbid ());
+}
+
+// ****************************************************************
+
CORBA::Policy_ptr
CORBA_ORB::create_policy (CORBA::PolicyType type,
const CORBA::Any& val
@@ -1762,9 +1794,10 @@ CORBA_ORB::create_policy (CORBA::PolicyType type,
/// Attempt to obtain the policy from the policy factory registry.
return
- this->orb_core_->policy_factory_registry ()->create_policy (type,
- val
- TAO_ENV_ARG_PARAMETER);
+ this->orb_core_->policy_factory_registry ()->create_policy (
+ type,
+ val
+ TAO_ENV_ARG_PARAMETER);
}
// Destringify OMG-specified "IOR" string.
@@ -1843,9 +1876,10 @@ CORBA_ORB::url_ior_string_to_object (const char* str
// to hold them all.
int retv =
- this->orb_core_->connector_registry ()->make_mprofile (str,
- mprofile
- TAO_ENV_ARG_PARAMETER);
+ this->orb_core_->connector_registry ()->make_mprofile (
+ str,
+ mprofile
+ TAO_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (CORBA::Object::_nil ()); // Return nil.
@@ -1862,7 +1896,7 @@ CORBA_ORB::url_ior_string_to_object (const char* str
// Now make the TAO_Stub.
TAO_Stub *data = this->orb_core_->create_stub ((char *) 0,
mprofile
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (CORBA::Object::_nil ());
TAO_Stub_Auto_Ptr safe_objdata (data);
@@ -1955,9 +1989,9 @@ CORBA_ORB::set_timeout (ACE_Time_Value *timeout)
CORBA::ValueFactory_ptr
CORBA_ORB::register_value_factory (
- const char *repository_id,
- CORBA::ValueFactory_ptr factory
- TAO_ENV_ARG_DECL)
+ const char *repository_id,
+ CORBA::ValueFactory_ptr factory
+ TAO_ENV_ARG_DECL)
{
// %! guard, and ACE_Null_Mutex in the map
// do _add_ref here not in map->rebind
@@ -2013,19 +2047,3 @@ CORBA_ORB::lookup_value_factory (const char *repository_id
}
#endif /* TAO_HAS_VALUETYPE */
-
-
-
-// ****************************************************************
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-template class ACE_Dynamic_Service<TAO_Server_Strategy_Factory>;
-template class ACE_Dynamic_Service<TAO_Client_Strategy_Factory>;
-
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-
-#pragma instantiate ACE_Dynamic_Service<TAO_Server_Strategy_Factory>
-#pragma instantiate ACE_Dynamic_Service<TAO_Client_Strategy_Factory>
-
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/tao/ORB.h b/TAO/tao/ORB.h
index d97e10f8365..9c28220c8cc 100644
--- a/TAO/tao/ORB.h
+++ b/TAO/tao/ORB.h
@@ -117,6 +117,9 @@ public:
/// can be used for initialization or in comparisons.
static CORBA::ORB_ptr _nil (void);
+ /// Return this ORB's ORBid.
+ char * id (TAO_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS);
+
/**
* Turn a string-ified object reference back into an object pointer.
* Typically these strings are created using <object_to_string()>,
@@ -427,6 +430,13 @@ public:
ACE_Time_Value *timeout
TAO_ENV_ARG_DECL_WITH_DEFAULTS);
+ /// Register an object reference with the ORB.
+ void register_initial_reference (
+ const char * id,
+ CORBA::Object_ptr obj
+ TAO_ENV_ARG_DECL_WITH_DEFAULTS);
+
+
/// Returns a sequence of ObjectIds that lists which objects have
/// references available via the initial references mechanism.
CORBA_ORB_ObjectIdList_ptr list_initial_services (
diff --git a/TAO/tao/ORBInitInfo.h b/TAO/tao/ORBInitInfo.h
index c73143cf756..5081a25a667 100644
--- a/TAO/tao/ORBInitInfo.h
+++ b/TAO/tao/ORBInitInfo.h
@@ -96,7 +96,7 @@ public:
/// Register a mapping between a string and a corresponding object
/// reference with the ORB being initialized.
/**
- * This methid is particularly useful for registering references to
+ * This method is particularly useful for registering references to
* local (locality constrained) objects. Note that this method
* should be called in ORBInitializer::pre_init() so that the
* registered reference will be available to the
diff --git a/TAO/tao/ORB_Core.cpp b/TAO/tao/ORB_Core.cpp
index 8586e8cc403..d4e9cb04490 100644
--- a/TAO/tao/ORB_Core.cpp
+++ b/TAO/tao/ORB_Core.cpp
@@ -852,7 +852,8 @@ TAO_ORB_Core::init (int &argc, char *argv[] TAO_ENV_ARG_DECL)
{
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("(%P|%t) %p\n"),
- ACE_TEXT ("ORB Core unable to find a Resource Factory instance")));
+ ACE_TEXT ("ORB Core unable to find a ")
+ ACE_TEXT ("Resource Factory instance")));
ACE_THROW_RETURN (CORBA::INTERNAL (
CORBA::SystemException::_tao_minor_code (
TAO_ORB_CORE_INIT_LOCATION_CODE,
@@ -1016,7 +1017,8 @@ TAO_ORB_Core::init (int &argc, char *argv[] TAO_ENV_ARG_DECL)
// registries!
// Set ORB-level policy defaults.
- TAO_Protocols_Hooks *tph = this->get_protocols_hooks (TAO_ENV_SINGLE_ARG_PARAMETER);
+ TAO_Protocols_Hooks *tph =
+ this->get_protocols_hooks (TAO_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
int status = tph->set_default_policies (TAO_ENV_SINGLE_ARG_PARAMETER);
@@ -1312,7 +1314,7 @@ TAO_ORB_Core::get_protocols_hooks (TAO_ENV_SINGLE_ARG_DECL)
// Initialize the protocols hooks instance.
this->protocols_hooks_->init_hooks (this
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
return this->protocols_hooks_;
}
@@ -1356,7 +1358,7 @@ TAO_ORB_Core::service_raise_comm_failure (TAO_GIOP_Invocation *invoke,
return this->ft_service_.service_callback ()->
raise_comm_failure (invoke,
profile
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
}
invoke->close_connection ();
@@ -1379,7 +1381,7 @@ TAO_ORB_Core::service_raise_transient_failure (TAO_GIOP_Invocation *invoke,
return this->ft_service_.service_callback ()->
raise_transient_failure (invoke,
profile
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
}
ACE_THROW_RETURN (CORBA::TRANSIENT (
@@ -1407,14 +1409,14 @@ TAO_ORB_Core::service_context_list (
this->ft_service_.service_callback ()->service_context_list (stub,
service_context.service_info (),
restart
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
ACE_CHECK;
}
this->protocols_hooks_->rt_service_context (stub,
service_context,
restart
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
ACE_CHECK;
}
@@ -1768,11 +1770,11 @@ TAO_ORB_Core::shutdown (CORBA::Boolean wait_for_completion
if (this->has_shutdown () == 0)
{
this->adapter_registry_.check_close (wait_for_completion
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
ACE_CHECK;
this->adapter_registry_.close (wait_for_completion
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
ACE_CHECK;
// Set the shutdown flag
@@ -2059,7 +2061,7 @@ TAO_ORB_Core::resolve_rir (const char *name
list_of_profiles += object_id;
return this->orb ()->string_to_object (list_of_profiles.c_str ()
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
}
return CORBA::Object::_nil ();
@@ -2804,7 +2806,7 @@ TAO_ORB_Core::collocation_strategy (CORBA::Object_ptr object
int collocated =
orb_core->collocation_resolver ().is_collocated (object
- TAO_ENV_ARG_PARAMETER);
+ TAO_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
if (collocated)
@@ -2869,6 +2871,9 @@ template class ACE_Hash_Map_Iterator_Base_Ex<ACE_CString, ACE_CString, ACE_Hash<
template class ACE_Array_Base<void *>;
+template class ACE_Dynamic_Service<TAO_Server_Strategy_Factory>;
+template class ACE_Dynamic_Service<TAO_Client_Strategy_Factory>;
+
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
#pragma instantiate ACE_Lock_Adapter<ACE_Null_Mutex>
@@ -2898,4 +2903,7 @@ template class ACE_Array_Base<void *>;
#pragma instantiate ACE_Array_Base<void *>
+#pragma instantiate ACE_Dynamic_Service<TAO_Server_Strategy_Factory>
+#pragma instantiate ACE_Dynamic_Service<TAO_Client_Strategy_Factory>
+
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/tao/Object_Ref_Table.cpp b/TAO/tao/Object_Ref_Table.cpp
index b4840ba79e2..1eba31d8864 100644
--- a/TAO/tao/Object_Ref_Table.cpp
+++ b/TAO/tao/Object_Ref_Table.cpp
@@ -184,17 +184,17 @@ TAO_Object_Ref_Table::unbind (const char *id)
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
template class ACE_Hash_Map_Entry<const char *, CORBA::Object_ptr>;
-template class ACE_Hash_Map_Manager_Ex<const char *, CORBA::Object_ptr, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Base_Ex<const char *, CORBA::Object_ptr, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Iterator_Ex<const char *, CORBA::Object_ptr, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Reverse_Iterator_Ex<const char *, CORBA::Object_ptr, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex>;
+template class ACE_Hash_Map_Manager_Ex<const char *, CORBA::Object_ptr, ACE_Hash<const char *>, ACE_Equal_To<const char *>, TAO_SYNCH_MUTEX>;
+template class ACE_Hash_Map_Iterator_Base_Ex<const char *, CORBA::Object_ptr, ACE_Hash<const char *>, ACE_Equal_To<const char *>, TAO_SYNCH_MUTEX>;
+template class ACE_Hash_Map_Iterator_Ex<const char *, CORBA::Object_ptr, ACE_Hash<const char *>, ACE_Equal_To<const char *>, TAO_SYNCH_MUTEX>;
+template class ACE_Hash_Map_Reverse_Iterator_Ex<const char *, CORBA::Object_ptr, ACE_Hash<const char *>, ACE_Equal_To<const char *>, TAO_SYNCH_MUTEX>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
#pragma instantiate ACE_Hash_Map_Entry<const char *, CORBA::Object_ptr>
-#pragma instantiate ACE_Hash_Map_Manager_Ex<const char *, CORBA::Object_ptr, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<const char *, CORBA::Object_ptr, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Iterator_Ex<const char *, CORBA::Object_ptr, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<const char *, CORBA::Object_ptr, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex>
+#pragma instantiate ACE_Hash_Map_Manager_Ex<const char *, CORBA::Object_ptr, ACE_Hash<const char *>, ACE_Equal_To<const char *>, TAO_SYNCH_MUTEX>
+#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<const char *, CORBA::Object_ptr, ACE_Hash<const char *>, ACE_Equal_To<const char *>, TAO_SYNCH_MUTEX>
+#pragma instantiate ACE_Hash_Map_Iterator_Ex<const char *, CORBA::Object_ptr, ACE_Hash<const char *>, ACE_Equal_To<const char *>, TAO_SYNCH_MUTEX>
+#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<const char *, CORBA::Object_ptr, ACE_Hash<const char *>, ACE_Equal_To<const char *>, TAO_SYNCH_MUTEX>
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/tao/Object_Ref_Table.h b/TAO/tao/Object_Ref_Table.h
index 8dd4f0e30ca..4dbcc29560b 100644
--- a/TAO/tao/Object_Ref_Table.h
+++ b/TAO/tao/Object_Ref_Table.h
@@ -49,7 +49,7 @@ class TAO_Export TAO_Object_Ref_Table
{
public:
- typedef ACE_Hash_Map_Manager_Ex<const char *, CORBA::Object_ptr, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex> Table;
+ typedef ACE_Hash_Map_Manager_Ex<const char *, CORBA::Object_ptr, ACE_Hash<const char *>, ACE_Equal_To<const char *>, TAO_SYNCH_MUTEX> Table;
typedef Table::iterator Iterator;
/// Constructor