summaryrefslogtreecommitdiff
path: root/TAO/tao/IIOP_Connector.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/IIOP_Connector.cpp')
-rw-r--r--TAO/tao/IIOP_Connector.cpp163
1 files changed, 46 insertions, 117 deletions
diff --git a/TAO/tao/IIOP_Connector.cpp b/TAO/tao/IIOP_Connector.cpp
index 4fdf8a00906..c758a0015ff 100644
--- a/TAO/tao/IIOP_Connector.cpp
+++ b/TAO/tao/IIOP_Connector.cpp
@@ -1,6 +1,7 @@
// This may look like C, but it's really -*- C++ -*-
// $Id$
+#include "ace/Auto_Ptr.h"
#include "tao/IIOP_Connector.h"
#include "tao/IIOP_Profile.h"
#include "tao/GIOP.h"
@@ -8,7 +9,6 @@
#include "tao/ORB_Core.h"
#include "tao/Client_Strategy_Factory.h"
#include "tao/Environment.h"
-#include "ace/Auto_Ptr.h"
ACE_RCSID(tao, IIOP_Connector, "$Id$")
@@ -40,23 +40,12 @@ TAO_IIOP_Connect_Creation_Strategy::make_svc_handler (
// ****************************************************************
-#if !defined (TAO_USES_ROBUST_CONNECTION_MGMT)
-typedef ACE_Cached_Connect_Strategy<TAO_IIOP_Client_Connection_Handler,
- ACE_SOCK_CONNECTOR,
- TAO_Cached_Connector_Lock>
- TAO_CACHED_CONNECT_STRATEGY;
-#endif /* ! TAO_USES_ROBUST_CONNECTION_MGMT */
-
-
TAO_IIOP_Connector::TAO_IIOP_Connector (void)
: TAO_Connector (TAO_IOP_TAG_INTERNET_IOP),
base_connector_ (),
- orb_core_ (0)
-#if defined (TAO_USES_ROBUST_CONNECTION_MGMT)
- ,
+ orb_core_ (0),
cached_connect_strategy_ (0),
caching_strategy_ (0)
-#endif /* TAO_USES_ROBUST_CONNECTION_MGMT */
{
}
@@ -65,67 +54,47 @@ TAO_IIOP_Connector::open (TAO_ORB_Core *orb_core)
{
this->orb_core_ = orb_core;
-#if defined (TAO_USES_ROBUST_CONNECTION_MGMT)
if (this->make_caching_strategy () == -1)
return -1;
-#endif /* TAO_USES_ROBUST_CONNECTION_MGMT */
TAO_IIOP_Connect_Creation_Strategy *connect_creation_strategy = 0;
-
+
ACE_NEW_RETURN (connect_creation_strategy,
TAO_IIOP_Connect_Creation_Strategy (
this->orb_core_->thr_mgr (),
this->orb_core_),
-1);
- auto_ptr<TAO_IIOP_Connect_Creation_Strategy>
- new_connect_creation_strategy (connect_creation_strategy);
+ auto_ptr<TAO_IIOP_Connect_Creation_Strategy> new_connect_creation_strategy (connect_creation_strategy);
TAO_Cached_Connector_Lock *connector_lock = 0;
ACE_NEW_RETURN (connector_lock,
TAO_Cached_Connector_Lock (this->orb_core_),
-1);
-
+
auto_ptr<TAO_Cached_Connector_Lock> new_connector_lock (connector_lock);
-#if defined (TAO_USES_ROBUST_CONNECTION_MGMT)
ACE_NEW_RETURN (this->cached_connect_strategy_,
- TAO_CACHED_CONNECT_STRATEGY (*this->caching_strategy_,
- new_connect_creation_strategy.get (),
- 0,
- 0,
- new_connector_lock.get (),
- 1),
- -1);
-#else /* TAO_USES_ROBUST_CONNECTION_MGMT */
- TAO_CACHED_CONNECT_STRATEGY *cached_connect_strategy = 0;
- ACE_NEW_RETURN (cached_connect_strategy,
- TAO_CACHED_CONNECT_STRATEGY (
- new_connect_creation_strategy.get (),
- 0,
- 0,
- new_connector_lock.get (),
- 1),
+ CACHED_CONNECT_STRATEGY (*this->caching_strategy_,
+ new_connect_creation_strategy.get (),
+ 0,
+ 0,
+ new_connector_lock.get (),
+ 1),
-1);
-#endif /* TAO_USES_ROBUST_CONNECTION_MGMT */
+ auto_ptr<CACHED_CONNECT_STRATEGY> new_cached_connect_strategy (this->cached_connect_strategy_);
+
// Finally everything is fine. Make sure to take ownership away
// from the auto pointer.
connect_creation_strategy = new_connect_creation_strategy.release ();
- connector_lock = new_connector_lock.release ();
+ connector_lock = new_connector_lock.release ();
+ this->cached_connect_strategy_ = new_cached_connect_strategy.release ();
-#if defined (TAO_USES_ROBUST_CONNECTION_MGMT)
return this->base_connector_.open (this->orb_core_->reactor (),
&this->null_creation_strategy_,
this->cached_connect_strategy_,
&this->null_activation_strategy_);
-#else /* TAO_USES_ROBUST_CONNECTION_MGMT */
- return this->base_connector_.open (this->orb_core_->reactor (),
- &this->null_creation_strategy_,
- cached_connect_strategy,
- &this->null_activation_strategy_);
-#endif /* TAO_USES_ROBUST_CONNECTION_MGMT */
-
}
int
@@ -134,18 +103,9 @@ TAO_IIOP_Connector::close (void)
this->base_connector_.close ();
// Zap the creation strategy that we created earlier
-#if defined (TAO_USES_ROBUST_CONNECTION_MGMT)
delete this->cached_connect_strategy_->creation_strategy ();
delete this->cached_connect_strategy_;
delete this->caching_strategy_;
-#else /* TAO_USES_ROBUST_CONNECTION_MGMT */
- TAO_CACHED_CONNECT_STRATEGY *cached_connect_strategy =
- ACE_dynamic_cast (TAO_CACHED_CONNECT_STRATEGY *,
- this->base_connector_.connect_strategy ());
-
- delete cached_connect_strategy->creation_strategy ();
- delete cached_connect_strategy;
-#endif /* TAO_USES_ROBUST_CONNECTION_MGMT */
return 0;
}
@@ -204,7 +164,7 @@ TAO_IIOP_Connector::connect (TAO_Profile *profile,
// connector? We (Fred and Carlos) thought about just
// setting the hint to 0, but that would not be thread-safe
// (other threads may be touching the same profile).
- // At this point (the day before 1.0) i'm reluctant to change
+ // At this point (the day before 1.0) i'm reluctant to change
// ACE, and this fix passes all the TAO tests (including the
// new ping/pong test in the tests/Faults directory).
iiop_profile->reset_hint ();
@@ -298,24 +258,13 @@ TAO_IIOP_Connector::preconnect (const char *preconnects)
ACE_NEW_RETURN (remote_addrs,
ACE_INET_Addr[num_connections],
-1);
-
- ACE_Auto_Basic_Array_Ptr<ACE_INET_Addr> safe_remote_addrs (remote_addrs);
-
ACE_NEW_RETURN (handlers,
TAO_IIOP_Client_Connection_Handler *[num_connections],
-1);
-
- ACE_Auto_Basic_Array_Ptr<TAO_IIOP_Client_Connection_Handler*>
- safe_handlers (handlers);
-
ACE_NEW_RETURN (failures,
char[num_connections],
-1);
- // No longer need to worry about exception safety at this point.
- remote_addrs = safe_remote_addrs.release ();
- handlers = safe_handlers.release ();
-
size_t slot = 0;
// Fill in the remote address array
@@ -453,7 +402,6 @@ TAO_IIOP_Connector::object_key_delimiter (void) const
return TAO_IIOP_Profile::object_key_delimiter;
}
-#if defined (TAO_USES_ROBUST_CONNECTION_MGMT)
int
TAO_IIOP_Connector::purge_connections (void)
{
@@ -462,17 +410,17 @@ TAO_IIOP_Connector::purge_connections (void)
#define TAO_HANDLER TAO_IIOP_Client_Connection_Handler
#define TAO_SVC_TUPLE ACE_Svc_Tuple<TAO_HANDLER>
-#define TAO_ADDR TAO_IIOP_Connector::TAO_IADDR
-#define TAO_HASH_KEY TAO_IIOP_Connector::TAO_HASH_KEY
-#define TAO_COMPARE_KEYS TAO_IIOP_Connector::TAO_COMPARE_KEYS
-#define TAO_ATTRIBUTES TAO_IIOP_Connector::TAO_ATTRIBUTES
-#define TAO_CACHED_HANDLER TAO_IIOP_Connector::TAO_CACHED_HANDLER
-#define TAO_HASH_MAP TAO_IIOP_Connector::TAO_HASH_MAP
-#define TAO_HASH_MAP_ITERATOR TAO_IIOP_Connector::TAO_HASH_MAP_ITERATOR
-#define TAO_HASH_MAP_REVERSE_ITERATOR TAO_IIOP_Connector::TAO_HASH_MAP_REVERSE_ITERATOR
-#define TAO_CACHING_UTILITY TAO_IIOP_Connector::TAO_CACHING_UTILITY
-#define TAO_CACHING_STRATEGY TAO_IIOP_Connector::TAO_CACHING_STRATEGY
-#define TAO_CACHED_CONNECT_STRATEGY TAO_IIOP_Connector::TAO_CACHED_CONNECT_STRATEGY
+#define TAO_ADDR TAO_IIOP_Connector::ADDR
+#define TAO_HASH_KEY TAO_IIOP_Connector::HASH_KEY
+#define TAO_COMPARE_KEYS TAO_IIOP_Connector::COMPARE_KEYS
+#define TAO_ATTRIBUTES TAO_IIOP_Connector::ATTRIBUTES
+#define TAO_CACHED_HANDLER TAO_IIOP_Connector::CACHED_HANDLER
+#define TAO_HASH_MAP TAO_IIOP_Connector::HASH_MAP
+#define TAO_HASH_MAP_ITERATOR TAO_IIOP_Connector::HASH_MAP_ITERATOR
+#define TAO_HASH_MAP_REVERSE_ITERATOR TAO_IIOP_Connector::HASH_MAP_REVERSE_ITERATOR
+#define TAO_CACHING_UTILITY TAO_IIOP_Connector::CACHING_UTILITY
+#define TAO_CACHING_STRATEGY TAO_IIOP_Connector::CACHING_STRATEGY
+#define TAO_CACHED_CONNECT_STRATEGY TAO_IIOP_Connector::CACHED_CONNECT_STRATEGY
typedef ACE_LRU_Caching_Strategy<TAO_ATTRIBUTES, TAO_CACHING_UTILITY>
TAO_IIOP_LRU_CACHING_STRATEGY;
@@ -502,6 +450,7 @@ typedef ACE_Caching_Strategy_Adapter<TAO_ATTRIBUTES, TAO_CACHING_UTILITY, TAO_II
int
TAO_IIOP_Connector::make_caching_strategy (void)
{
+
TAO_Resource_Factory *resource_factory =
this->orb_core_->resource_factory ();
@@ -546,38 +495,25 @@ TAO_IIOP_Connector::make_caching_strategy (void)
this->caching_strategy_->purge_percent (resource_factory->purge_percentage ());
return 0;
}
-#endif /* TAO_USES_ROBUST_CONNECTION_MGMT */
//
// The TAO_Cached_Connector_Lock template instantiations are in
// Resource_Factory.cpp.
//
-#if !defined (TAO_USES_ROBUST_CONNECTION_MGMT)
-#define TAO_SVC_TUPLE ACE_Svc_Tuple<TAO_IIOP_Client_Connection_Handler>
-#define CACHED_CONNECT_STRATEGY ACE_Cached_Connect_Strategy<TAO_IIOP_Client_Connection_Handler, ACE_SOCK_CONNECTOR, TAO_Cached_Connector_Lock>
-#define TAO_ADDR ACE_Refcounted_Hash_Recyclable<ACE_INET_Addr>
-#define TAO_HANDLER TAO_IIOP_Client_Connection_Handler
-#define TAO_HASH_KEY ACE_Hash<TAO_ADDR>
-#define TAO_COMPARE_KEYS ACE_Equal_To<TAO_ADDR>
-#endif /* TAO_USES_ROBUST_CONNECTION_MGMT */
-
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Auto_Basic_Array_Ptr<ACE_INET_Addr>;
-template class ACE_Auto_Basic_Array_Ptr<TAO_IIOP_Client_Connection_Handler*>;
template class auto_ptr<TAO_IIOP_Connect_Creation_Strategy>;
+template class auto_ptr<TAO_Cached_Connector_Lock>;
+template class auto_ptr<TAO_CACHED_CONNECT_STRATEGY>;
template class ACE_Auto_Basic_Ptr<TAO_IIOP_Connect_Creation_Strategy>;
+template class ACE_Auto_Basic_Ptr<TAO_Cached_Connector_Lock>;
+template class ACE_Auto_Basic_Ptr<TAO_CACHED_CONNECT_STRATEGY>;
template class ACE_Node<ACE_INET_Addr>;
template class ACE_Unbounded_Stack<ACE_INET_Addr>;
template class ACE_Unbounded_Stack_Iterator<ACE_INET_Addr>;
-#if !defined (TAO_USES_ROBUST_CONNECTION_MGMT)
-template class CACHED_CONNECT_STRATEGY;
-template class TAO_ADDR;
-#endif /* TAO_USES_ROBUST_CONNECTION_MGMT */
-
template class ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
template class ACE_Refcounted_Hash_Recyclable<ACE_INET_Addr>;
template class ACE_NOOP_Creation_Strategy<TAO_HANDLER>;
@@ -598,6 +534,10 @@ template class ACE_Recycling_Strategy<TAO_HANDLER>;
template class ACE_Strategy_Connector<TAO_HANDLER, ACE_SOCK_CONNECTOR>;
template class TAO_SVC_TUPLE;
+template class ACE_Pair<TAO_HANDLER *, TAO_ATTRIBUTES>;
+template class ACE_Reference_Pair<TAO_ADDR, TAO_HANDLER *>;
+template class ACE_Hash_Map_Entry<TAO_ADDR, TAO_CACHED_HANDLER>;
+
template class ACE_Hash_Map_Manager<TAO_ADDR, TAO_HANDLER *, ACE_Null_Mutex>;
template class ACE_Hash_Map_Iterator<TAO_ADDR, TAO_HANDLER *, ACE_Null_Mutex>;
template class ACE_Hash_Map_Reverse_Iterator<TAO_ADDR, TAO_HANDLER *, ACE_Null_Mutex>;
@@ -605,12 +545,6 @@ template class ACE_Hash_Map_Manager_Ex<TAO_ADDR, TAO_HANDLER *, TAO_HASH_KEY, TA
template class ACE_Hash_Map_Iterator_Ex<TAO_ADDR, TAO_HANDLER *, TAO_HASH_KEY, TAO_COMPARE_KEYS, ACE_Null_Mutex>;
template class ACE_Hash_Map_Reverse_Iterator_Ex<TAO_ADDR, TAO_HANDLER *, TAO_HASH_KEY, TAO_COMPARE_KEYS, ACE_Null_Mutex>;
template class ACE_Hash_Map_Iterator_Base_Ex<TAO_ADDR, TAO_HANDLER *, TAO_HASH_KEY, TAO_COMPARE_KEYS, ACE_Null_Mutex>;
-template class ACE_Hash_Map_Bucket_Iterator<TAO_ADDR, TAO_HANDLER *, TAO_HASH_KEY, TAO_COMPARE_KEYS, ACE_Null_Mutex>;
-
-#if defined (TAO_USES_ROBUST_CONNECTION_MGMT)
-template class ACE_Pair<TAO_HANDLER *, TAO_ATTRIBUTES>;
-template class ACE_Reference_Pair<TAO_ADDR, TAO_HANDLER *>;
-template class ACE_Hash_Map_Entry<TAO_ADDR, TAO_CACHED_HANDLER>;
template class ACE_Hash_Map_Manager<TAO_ADDR, TAO_CACHED_HANDLER, ACE_Null_Mutex>;
template class ACE_Hash_Map_Iterator<TAO_ADDR, TAO_CACHED_HANDLER, ACE_Null_Mutex>;
@@ -620,6 +554,7 @@ template class ACE_Hash_Map_Iterator_Ex<TAO_ADDR, TAO_CACHED_HANDLER, TAO_HASH_K
template class ACE_Hash_Map_Reverse_Iterator_Ex<TAO_ADDR, TAO_CACHED_HANDLER, TAO_HASH_KEY, TAO_COMPARE_KEYS, ACE_Null_Mutex>;
template class ACE_Hash_Map_Iterator_Base_Ex<TAO_ADDR, TAO_CACHED_HANDLER, TAO_HASH_KEY, TAO_COMPARE_KEYS, ACE_Null_Mutex>;
template class ACE_Hash_Map_Bucket_Iterator<TAO_ADDR, TAO_CACHED_HANDLER, TAO_HASH_KEY, TAO_COMPARE_KEYS, ACE_Null_Mutex>;
+template class ACE_Hash_Map_Bucket_Iterator<TAO_ADDR, TAO_HANDLER *, TAO_HASH_KEY, TAO_COMPARE_KEYS, ACE_Null_Mutex>;
// = Caching_Strategy
template class ACE_Hash_Cache_Map_Manager<TAO_ADDR, TAO_HANDLER *, TAO_HASH_KEY, TAO_COMPARE_KEYS, TAO_CACHING_STRATEGY, TAO_ATTRIBUTES>;
@@ -654,24 +589,20 @@ template class ACE_Cached_Connect_Strategy<TAO_HANDLER, ACE_SOCK_CONNECTOR, TAO_
template class ACE_Cleanup_Strategy<TAO_ADDR, TAO_CACHED_HANDLER, TAO_HASH_MAP>;
template class ACE_Refcounted_Recyclable_Handler_Cleanup_Strategy<TAO_ADDR, TAO_CACHED_HANDLER, TAO_HASH_MAP>;
template class ACE_Refcounted_Recyclable_Handler_Caching_Utility<TAO_ADDR, TAO_CACHED_HANDLER, TAO_HASH_MAP, TAO_HASH_MAP_ITERATOR, TAO_ATTRIBUTES>;
-#endif /* TAO_USES_ROBUST_CONNECTION_MGMT */
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Auto_Basic_Array_Ptr<ACE_INET_Addr>
-#pragma instantiate ACE_Auto_Basic_Array_Ptr<TAO_IIOP_Client_Connection_Handler*>
#pragma instantiate auto_ptr<TAO_IIOP_Connect_Creation_Strategy>
+#pragma instantiate auto_ptr<TAO_Cached_Connector_Lock>
+#pragma instantiate auto_ptr<TAO_CACHED_CONNECT_STRATEGY>
#pragma instantiate ACE_Auto_Basic_Ptr<TAO_IIOP_Connect_Creation_Strategy>
+#pragma instantiate ACE_Auto_Basic_Ptr<TAO_Cached_Connector_Lock>
+#pragma instantiate ACE_Auto_Basic_Ptr<TAO_CACHED_CONNECT_STRATEGY>
#pragma instantiate ACE_Node<ACE_INET_Addr>
#pragma instantiate ACE_Unbounded_Stack<ACE_INET_Addr>
#pragma instantiate ACE_Unbounded_Stack_Iterator<ACE_INET_Addr>
-#if !defined (TAO_USES_ROBUST_CONNECTION_MGMT)
-#pragma instantiate CACHED_CONNECT_STRATEGY;
-#pragma instantiate TAO_ADDR;
-#endif /* TAO_USES_ROBUST_CONNECTION_MGMT */
-
#pragma instantiate ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
#pragma instantiate ACE_Refcounted_Hash_Recyclable<ACE_INET_Addr>
#pragma instantiate ACE_NOOP_Creation_Strategy<TAO_HANDLER>
@@ -692,6 +623,10 @@ template class ACE_Refcounted_Recyclable_Handler_Caching_Utility<TAO_ADDR, TAO_C
#pragma instantiate ACE_Strategy_Connector<TAO_HANDLER, ACE_SOCK_CONNECTOR>
#pragma instantiate TAO_SVC_TUPLE
+#pragma instantiate ACE_Pair<TAO_HANDLER *, TAO_ATTRIBUTES>
+#pragma instantiate ACE_Reference_Pair<TAO_ADDR, TAO_HANDLER *>
+#pragma instantiate ACE_Hash_Map_Entry<TAO_ADDR, TAO_CACHED_HANDLER>
+
#pragma instantiate ACE_Hash_Map_Manager<TAO_ADDR, TAO_HANDLER *, ACE_Null_Mutex>
#pragma instantiate ACE_Hash_Map_Iterator<TAO_ADDR, TAO_HANDLER *, ACE_Null_Mutex>
#pragma instantiate ACE_Hash_Map_Reverse_Iterator<TAO_ADDR, TAO_HANDLER *, ACE_Null_Mutex>
@@ -699,12 +634,6 @@ template class ACE_Refcounted_Recyclable_Handler_Caching_Utility<TAO_ADDR, TAO_C
#pragma instantiate ACE_Hash_Map_Iterator_Ex<TAO_ADDR, TAO_HANDLER *, TAO_HASH_KEY, TAO_COMPARE_KEYS, ACE_Null_Mutex>
#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<TAO_ADDR, TAO_HANDLER *, TAO_HASH_KEY, TAO_COMPARE_KEYS, ACE_Null_Mutex>
#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<TAO_ADDR, TAO_HANDLER *, TAO_HASH_KEY, TAO_COMPARE_KEYS, ACE_Null_Mutex>
-#pragma instantiate ACE_Hash_Map_Bucket_Iterator<TAO_ADDR, TAO_HANDLER *, TAO_HASH_KEY, TAO_COMPARE_KEYS, ACE_Null_Mutex>
-
-#if defined (TAO_USES_ROBUST_CONNECTION_MGMT)
-#pragma instantiate ACE_Pair<TAO_HANDLER *, TAO_ATTRIBUTES>
-#pragma instantiate ACE_Reference_Pair<TAO_ADDR, TAO_HANDLER *>
-#pragma instantiate ACE_Hash_Map_Entry<TAO_ADDR, TAO_CACHED_HANDLER>
#pragma instantiate ACE_Hash_Map_Manager<TAO_ADDR, TAO_CACHED_HANDLER, ACE_Null_Mutex>
#pragma instantiate ACE_Hash_Map_Iterator<TAO_ADDR, TAO_CACHED_HANDLER, ACE_Null_Mutex>
@@ -714,6 +643,7 @@ template class ACE_Refcounted_Recyclable_Handler_Caching_Utility<TAO_ADDR, TAO_C
#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<TAO_ADDR, TAO_CACHED_HANDLER, TAO_HASH_KEY, TAO_COMPARE_KEYS, ACE_Null_Mutex>
#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<TAO_ADDR, TAO_CACHED_HANDLER, TAO_HASH_KEY, TAO_COMPARE_KEYS, ACE_Null_Mutex>
#pragma instantiate ACE_Hash_Map_Bucket_Iterator<TAO_ADDR, TAO_CACHED_HANDLER, TAO_HASH_KEY, TAO_COMPARE_KEYS, ACE_Null_Mutex>
+#pragma instantiate ACE_Hash_Map_Bucket_Iterator<TAO_ADDR, TAO_HANDLER *, TAO_HASH_KEY, TAO_COMPARE_KEYS, ACE_Null_Mutex>
// = Caching_Strategy
#pragma instantiate ACE_Hash_Cache_Map_Manager<TAO_ADDR, TAO_HANDLER *, TAO_HASH_KEY, TAO_COMPARE_KEYS, TAO_CACHING_STRATEGY, TAO_ATTRIBUTES>
@@ -748,6 +678,5 @@ template class ACE_Refcounted_Recyclable_Handler_Caching_Utility<TAO_ADDR, TAO_C
#pragma instantiate ACE_Cleanup_Strategy<TAO_ADDR, TAO_CACHED_HANDLER, TAO_HASH_MAP>
#pragma instantiate ACE_Refcounted_Recyclable_Handler_Cleanup_Strategy<TAO_ADDR, TAO_CACHED_HANDLER, TAO_HASH_MAP>
#pragma instantiate ACE_Refcounted_Recyclable_Handler_Caching_Utility<TAO_ADDR, TAO_CACHED_HANDLER, TAO_HASH_MAP, TAO_HASH_MAP_ITERATOR, TAO_ATTRIBUTES>
-#endif /* TAO_USES_ROBUST_CONNECTION_MGMT */
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */