diff options
Diffstat (limited to 'TAO/tao/default_resource.cpp')
-rw-r--r-- | TAO/tao/default_resource.cpp | 655 |
1 files changed, 0 insertions, 655 deletions
diff --git a/TAO/tao/default_resource.cpp b/TAO/tao/default_resource.cpp deleted file mode 100644 index ab6fff4e357..00000000000 --- a/TAO/tao/default_resource.cpp +++ /dev/null @@ -1,655 +0,0 @@ -// $Id$ - -#include "tao/default_resource.h" -#include "ace/Select_Reactor.h" -#include "ace/XtReactor.h" -#include "ace/FlReactor.h" -#include "ace/WFMO_Reactor.h" -#include "ace/Msg_WFMO_Reactor.h" -#include "ace/Arg_Shifter.h" -#include "tao/Client_Strategy_Factory.h" -#include "tao/ORB_Core.h" - -#if !defined (__ACE_INLINE__) -# include "tao/default_resource.i" -#endif /* ! __ACE_INLINE__ */ - -ACE_RCSID(tao, default_resource, "$Id$") - -TAO_Default_Resource_Factory::TAO_Default_Resource_Factory (void) - : resource_source_ (TAO_GLOBAL), - poa_source_ (TAO_GLOBAL), - collocation_table_source_ (TAO_GLOBAL), - reactor_type_ (TAO_REACTOR_SELECT_MT), - cdr_allocator_source_ (TAO_GLOBAL) -{ -} - -TAO_Default_Resource_Factory::~TAO_Default_Resource_Factory (void) -{ -} - -int -TAO_Default_Resource_Factory::init (int argc, char **argv) -{ - ACE_TRACE ("TAO_Default_Server_Strategy_Factory::parse_args"); - // This table shows the arguments that are parsed with their valid - // combinations. - // - // ORB POA comments - // +-------+-------+-----------------+ - // | TSS | TSS | if ORB==TSS | - // | | | then POA=TSS | - // | | | as def.value. | - // +-------+-------+-----------------+ - // | TSS | GLOBAL| ok. | - // +-------+-------+-----------------+ - // | GLOBAL| GLOBAL| if ORB==Global | - // | | | then POA=Global | - // | | | as def.value. | - // +-------+-------+-----------------+ - // | GLOBAL| TSS | *NOT VALID* | - // +-------+-------+-----------------+ - - int local_poa_source = -1; - int local_resource_source = -1; - - for (int curarg = 0; curarg < argc; curarg++) - if (ACE_OS::strcmp (argv[curarg], "-ORBresources") == 0) - { - curarg++; - if (curarg < argc) - { - char *name = argv[curarg]; - - if (ACE_OS::strcasecmp (name, "global") == 0) - local_resource_source = TAO_GLOBAL; - else if (ACE_OS::strcasecmp (name, "tss") == 0) - local_resource_source = TAO_TSS; - } - } - else if (ACE_OS::strcmp (argv[curarg], "-ORBpoa") == 0) - { - curarg++; - if (curarg < argc) - { - char *name = argv[curarg]; - - if (ACE_OS::strcasecmp (name, "global") == 0) - local_poa_source = TAO_GLOBAL; - else if (ACE_OS::strcasecmp (name, "tss") == 0) - local_poa_source = TAO_TSS; - } - } - else if (ACE_OS::strcmp (argv[curarg], "-ORBreactorlock") == 0) - { - ACE_DEBUG ((LM_DEBUG, - "TAO_Default_Resource obsolete -ORBreactorlock " - "option, please use -ORBreactortype\n")); - curarg++; - if (curarg < argc) - { - char *name = argv[curarg]; - - if (ACE_OS::strcasecmp (name, "null") == 0) - reactor_type_ = TAO_REACTOR_SELECT_MT; - else if (ACE_OS::strcasecmp (name, "token") == 0) - reactor_type_= TAO_REACTOR_SELECT_ST; - } - } - - else if (ACE_OS::strcmp (argv[curarg], "-ORBreactortype") == 0) - { - curarg++; - if (curarg < argc) - { - char *name = argv[curarg]; - - if (ACE_OS::strcasecmp (name, "select_mt") == 0) - reactor_type_ = TAO_REACTOR_SELECT_MT; - else if (ACE_OS::strcasecmp (name, "select_st") == 0) - reactor_type_ = TAO_REACTOR_SELECT_ST; - else if (ACE_OS::strcasecmp (name, "fl_reactor") == 0) -#if defined(ACE_HAS_FL) - reactor_type_ = TAO_REACTOR_FL; -#else - ACE_DEBUG ((LM_DEBUG, - "TAO_Default_Factory - FlReactor" - " not supported on this platform\n")); -#endif /* ACE_HAS_FL */ - else if (ACE_OS::strcasecmp (name, "xt_reactor") == 0) -#if defined(ACE_HAS_XT) - reactor_type_ = TAO_REACTOR_XT; -#else - ACE_DEBUG ((LM_DEBUG, - "TAO_Default_Factory - XtReactor" - " not supported on this platform\n")); -#endif /* ACE_HAS_XT */ - else if (ACE_OS::strcasecmp (name, "WFMO") == 0) -#if defined(ACE_WIN32) - reactor_type_ = TAO_REACTOR_WFMO; -#else - ACE_DEBUG ((LM_DEBUG, - "TAO_Default_Factory - WFMO Reactor" - " not supported on this platform\n")); -#endif /* ACE_WIN32 */ - else if (ACE_OS::strcasecmp (name, "MsgWFMO") == 0) -#if defined(ACE_WIN32) - reactor_type_ = TAO_REACTOR_MSGWFMO; -#else - ACE_DEBUG ((LM_DEBUG, - "TAO_Default_Factory - MsgWFMO Reactor" - " not supported on this platform\n")); -#endif /* ACE_WIN32 */ - else - ACE_DEBUG ((LM_DEBUG, - "TAO_Default_Factory - unknown argument" - " <%s> for -ORBreactorytype\n", name)); - } - } - - else if (ACE_OS::strcmp (argv[curarg], "-ORBcoltable") == 0) - { - curarg++; - if (curarg < argc) - { - char *name = argv[curarg]; - - if (ACE_OS::strcasecmp (name, "global") == 0) - collocation_table_source_ = TAO_GLOBAL; - else if (ACE_OS::strcasecmp (name, "orb") == 0) - collocation_table_source_ = TAO_TSS; - } - } - else if (ACE_OS::strcmp (argv[curarg], "-ORBinputcdrallocator") == 0) - { - curarg++; - if (curarg < argc) - { - char *name = argv[curarg]; - - if (ACE_OS::strcasecmp (name, "global") == 0) - this->cdr_allocator_source_ = TAO_GLOBAL; - else if (ACE_OS::strcasecmp (name, "tss") == 0) - this->cdr_allocator_source_ = TAO_TSS; - } - } - - // Don't allow a global ORB and a tss POA. - if ( (local_resource_source == TAO_GLOBAL) && - (local_poa_source == TAO_TSS) ) - return -1; - - // make poa=tss the default, if ORB is tss and the user didn't - // specify a value. - if ( (local_resource_source == TAO_TSS) && - (local_poa_source == -1) ) - local_poa_source = TAO_TSS; - - // update the object data members. - if (local_resource_source != -1) - this->resource_source_ = local_resource_source; - if (local_poa_source != -1) - this->poa_source_ = local_poa_source; - - // Don't allow a global ORB and a tss POA. - if ( (this->resource_source_ == TAO_GLOBAL) && - (this->poa_source_ == TAO_TSS) ) - return -1; - - return 0; -} - -#define IMPLEMENT_GET_METHOD(methodname,rtype,membername)\ -rtype TAO_Default_Resource_Factory::methodname(void)\ -{\ - switch (resource_source_)\ - {\ - case TAO_GLOBAL:\ - return &GLOBAL_ALLOCATED::instance ()->membername;\ - case TAO_TSS:\ - return &TSS_ALLOCATED::instance ()->membername;\ - }\ - return 0;\ -} - -IMPLEMENT_GET_METHOD(get_thr_mgr, ACE_Thread_Manager *, tm_) -IMPLEMENT_GET_METHOD(get_acceptor, TAO_Acceptor *, a_) -IMPLEMENT_GET_METHOD(get_connector_registry, TAO_Connector_Registry *, cr_) -IMPLEMENT_GET_METHOD(get_connector, TAO_Connector *, c_) -IMPLEMENT_GET_METHOD(get_null_creation_strategy, TAO_NULL_CREATION_STRATEGY *, null_creation_strategy_) -IMPLEMENT_GET_METHOD(get_null_activation_strategy, TAO_NULL_ACTIVATION_STRATEGY *, null_activation_strategy_) - -// @@ TODO We may be changing the state of the global -// Allocated_Resources structure, but without any locks? -// It seems to be done all over the place. - -ACE_Reactor_Impl* -TAO_Default_Resource_Factory::allocate_reactor_impl (void) const -{ - ACE_Reactor_Impl *impl = 0; - switch (this->reactor_type_) - { - default: - case TAO_REACTOR_SELECT_MT: - ACE_NEW_RETURN (impl, TAO_REACTOR, 0); - break; - - case TAO_REACTOR_SELECT_ST: - ACE_NEW_RETURN (impl, TAO_NULL_LOCK_REACTOR, 0); - break; - - case TAO_REACTOR_FL: -#if defined(ACE_HAS_FL) - ACE_NEW_RETURN (impl, ACE_FlReactor, 0); -#endif /* ACE_HAS_FL */ - break; - - case TAO_REACTOR_XT: -#if defined(ACE_HAS_XT) - ACE_NEW_RETURN (impl, ACE_XtReactor, 0); -#endif /* ACE_HAS_FL */ - break; - - case TAO_REACTOR_WFMO: -#if defined(ACE_WIN32) && !defined (ACE_HAS_WINCE) - ACE_NEW_RETURN (impl, ACE_WFMO_Reactor, 0); -#endif /* ACE_WIN32 && !ACE_HAS_WINCE */ - break; - - case TAO_REACTOR_MSGWFMO: -#if defined(ACE_WIN32) - ACE_NEW_RETURN (impl, ACE_Msg_WFMO_Reactor, 0); -#endif /* ACE_WIN32 && !ACE_HAS_WINCE */ - break; - } - return impl; -} - -ACE_Reactor * -TAO_Default_Resource_Factory::get_reactor (void) -{ - switch (this->resource_source_) - { - case TAO_GLOBAL: - if (GLOBAL_ALLOCATED::instance ()->r_ == 0) - { - ACE_NEW_RETURN (GLOBAL_ALLOCATED::instance ()->r_, - ACE_Reactor (this->allocate_reactor_impl (), 1), - 0); - } - return GLOBAL_ALLOCATED::instance ()->r_; - ACE_NOTREACHED (break); - case TAO_TSS: - if (TSS_ALLOCATED::instance ()->r_ == 0) - { - ACE_NEW_RETURN (TSS_ALLOCATED::instance ()->r_, - ACE_Reactor (this->allocate_reactor_impl (), 1), - 0); - } - return TSS_ALLOCATED::instance ()->r_; - ACE_NOTREACHED (break); - } - return 0; -} - -TAO_Object_Adapter * -TAO_Default_Resource_Factory::object_adapter (void) -{ - // @@ Remove this use of ORB_Core_instance() from here!!!! - switch (this->resource_source_) - { - case TAO_GLOBAL: - if (GLOBAL_ALLOCATED::instance ()->object_adapter_ == 0) - { - TAO_ORB_Core &orb_core = *TAO_ORB_Core_instance (); - ACE_NEW_RETURN (GLOBAL_ALLOCATED::instance ()->object_adapter_, - TAO_Object_Adapter (orb_core.server_factory ()->active_object_map_creation_parameters (), orb_core), - 0); - } - return GLOBAL_ALLOCATED::instance ()->object_adapter_; - ACE_NOTREACHED (break); - case TAO_TSS: - if (TSS_ALLOCATED::instance ()->object_adapter_ == 0) - { - TAO_ORB_Core &orb_core = *TAO_ORB_Core_instance (); - ACE_NEW_RETURN (TSS_ALLOCATED::instance ()->object_adapter_, - TAO_Object_Adapter (orb_core.server_factory ()->active_object_map_creation_parameters (), orb_core), - 0); - } - return TSS_ALLOCATED::instance ()->object_adapter_; - ACE_NOTREACHED (break); - } - return 0; -} - -TAO_CACHED_CONNECT_STRATEGY * -TAO_Default_Resource_Factory::get_cached_connect_strategy (void) -{ - // @@ Remove this use of ORB_Core_instance() from here!!!! - switch (this->resource_source_) - { - case TAO_GLOBAL: - if (GLOBAL_ALLOCATED::instance ()->cached_connect_strategy_ == 0) - { - ACE_NEW_RETURN (GLOBAL_ALLOCATED::instance ()->cached_connect_strategy_, - TAO_CACHED_CONNECT_STRATEGY (TAO_ORB_Core_instance ()->client_factory ()->create_client_creation_strategy ()), - 0); - } - return GLOBAL_ALLOCATED::instance ()->cached_connect_strategy_; - ACE_NOTREACHED (break); - case TAO_TSS: - if (TSS_ALLOCATED::instance ()->cached_connect_strategy_ == 0) - { - ACE_NEW_RETURN (TSS_ALLOCATED::instance ()->cached_connect_strategy_, - TAO_CACHED_CONNECT_STRATEGY (TAO_ORB_Core_instance ()->client_factory ()->create_client_creation_strategy ()), - 0); - } - return TSS_ALLOCATED::instance ()->cached_connect_strategy_; - ACE_NOTREACHED (break); - } - return 0; -} - -TAO_POA * -TAO_Default_Resource_Factory::get_root_poa (void) -{ - switch (poa_source_) - { - case TAO_GLOBAL: - return GLOBAL_ALLOCATED::instance ()->poa_; - case TAO_TSS: - return TSS_ALLOCATED::instance ()->poa_; - } - return 0; -} - -typedef ACE_Malloc<ACE_LOCAL_MEMORY_POOL,ACE_Null_Mutex> TSS_MALLOC; -typedef ACE_Allocator_Adapter<TSS_MALLOC> TSS_ALLOCATOR; - -typedef ACE_Malloc<ACE_LOCAL_MEMORY_POOL,ACE_SYNCH_MUTEX> GBL_MALLOC; -typedef ACE_Allocator_Adapter<GBL_MALLOC> GBL_ALLOCATOR; - -ACE_Allocator* -TAO_Default_Resource_Factory::input_cdr_dblock_allocator (void) -{ - switch (this->cdr_allocator_source_) - { - case TAO_GLOBAL: - if (GLOBAL_ALLOCATED::instance ()->input_cdr_dblock_allocator_ == 0) - { - ACE_NEW_RETURN (GLOBAL_ALLOCATED::instance ()->input_cdr_dblock_allocator_, - GBL_ALLOCATOR, - 0); - } - return GLOBAL_ALLOCATED::instance ()->input_cdr_dblock_allocator_; - ACE_NOTREACHED (break); - case TAO_TSS: - if (TSS_ALLOCATED::instance ()->input_cdr_dblock_allocator_ == 0) - { - ACE_NEW_RETURN (TSS_ALLOCATED::instance ()->input_cdr_dblock_allocator_, - TSS_ALLOCATOR, - 0); - } - return TSS_ALLOCATED::instance ()->input_cdr_dblock_allocator_; - ACE_NOTREACHED (break); - } - return 0; -} - -ACE_Allocator * -TAO_Default_Resource_Factory::input_cdr_buffer_allocator (void) -{ - switch (this->cdr_allocator_source_) - { - case TAO_GLOBAL: - if (GLOBAL_ALLOCATED::instance ()->input_cdr_buffer_allocator_ == 0) - { - ACE_NEW_RETURN (GLOBAL_ALLOCATED::instance ()->input_cdr_buffer_allocator_, - GBL_ALLOCATOR, - 0); - } - return GLOBAL_ALLOCATED::instance ()->input_cdr_buffer_allocator_; - case TAO_TSS: - if (TSS_ALLOCATED::instance ()->input_cdr_buffer_allocator_ == 0) - { - ACE_NEW_RETURN (TSS_ALLOCATED::instance ()->input_cdr_buffer_allocator_, - TSS_ALLOCATOR, - 0); - } - return TSS_ALLOCATED::instance ()->input_cdr_buffer_allocator_; - } - return 0; -} - -ACE_Allocator* -TAO_Default_Resource_Factory::output_cdr_dblock_allocator (void) -{ - if (TSS_ALLOCATED::instance ()->output_cdr_dblock_allocator_ == 0) - { - ACE_NEW_RETURN (TSS_ALLOCATED::instance ()->output_cdr_dblock_allocator_, - TSS_ALLOCATOR, - 0); - } - return TSS_ALLOCATED::instance ()->output_cdr_dblock_allocator_; -} - -ACE_Allocator * -TAO_Default_Resource_Factory::output_cdr_buffer_allocator (void) -{ - if (TSS_ALLOCATED::instance ()->output_cdr_buffer_allocator_ == 0) - { - ACE_NEW_RETURN (TSS_ALLOCATED::instance ()->output_cdr_buffer_allocator_, - TSS_ALLOCATOR, - 0); - } - return TSS_ALLOCATED::instance ()->output_cdr_buffer_allocator_; -} - - -ACE_Data_Block* -TAO_Default_Resource_Factory::create_input_cdr_data_block (size_t size) -{ - switch (this->cdr_allocator_source_) - { - case TAO_GLOBAL: - { - ACE_Allocator* buffer_alloc = - this->input_cdr_buffer_allocator (); - ACE_Allocator* dblock_alloc = - this->input_cdr_dblock_allocator (); - - typedef - ACE_Locked_Data_Block<ACE_Lock_Adapter<ACE_SYNCH_MUTEX> > - Global_Data_Block; - Global_Data_Block *nb; - - ACE_NEW_MALLOC_RETURN ( - nb, - ACE_static_cast(Global_Data_Block*, - dblock_alloc->malloc (sizeof (Global_Data_Block))), - Global_Data_Block (size, - ACE_Message_Block::MB_DATA, - 0, - buffer_alloc, - 0, - dblock_alloc), - 0); - return nb; - } - - case TAO_TSS: - { - ACE_Allocator* buffer_alloc = - this->input_cdr_buffer_allocator (); - ACE_Allocator* dblock_alloc = - this->input_cdr_dblock_allocator (); - - ACE_Data_Block *nb; - - ACE_NEW_MALLOC_RETURN ( - nb, - ACE_static_cast(ACE_Data_Block*, - dblock_alloc->malloc (sizeof (ACE_Data_Block))), - ACE_Data_Block (size, - ACE_Message_Block::MB_DATA, - 0, - buffer_alloc, - 0, - 0, - dblock_alloc), - 0); - return nb; - } - } - return 0; -} - -TAO_GLOBAL_Collocation_Table * -TAO_Default_Resource_Factory::get_global_collocation_table (void) -{ - return (collocation_table_source_ == TAO_GLOBAL ? GLOBAL_Collocation_Table::instance () : 0); -} - -// **************************************************************** - -TAO_Allocated_Resources::TAO_Allocated_Resources (void) - : r_ (0), - object_adapter_ (0), - cached_connect_strategy_ (0), - poa_(0), - input_cdr_dblock_allocator_ (0), - input_cdr_buffer_allocator_ (0), - output_cdr_dblock_allocator_ (0), - output_cdr_buffer_allocator_ (0) -{ - // Make sure that the thread manager does not wait for threads - this->tm_.wait_on_exit (0); -} - -TAO_Allocated_Resources::~TAO_Allocated_Resources (void) -{ - if (this->input_cdr_dblock_allocator_ != 0) - this->input_cdr_dblock_allocator_->remove (); - delete this->input_cdr_dblock_allocator_; - - if (this->input_cdr_buffer_allocator_ != 0) - this->input_cdr_buffer_allocator_->remove (); - delete this->input_cdr_buffer_allocator_; - - if (this->output_cdr_dblock_allocator_ != 0) - this->output_cdr_dblock_allocator_->remove (); - delete this->output_cdr_dblock_allocator_; - - if (this->output_cdr_buffer_allocator_ != 0) - this->output_cdr_buffer_allocator_->remove (); - delete this->output_cdr_buffer_allocator_; - - if (this->cached_connect_strategy_ != 0) - { - // Zap the creation strategy that we created earlier - delete this->cached_connect_strategy_->creation_strategy (); - delete this->cached_connect_strategy_; - } - - delete this->object_adapter_; - - this->c_.close (); - - delete this->r_; -} - -// **************************************************************** - -TAO_Collocation_Table_Lock::TAO_Collocation_Table_Lock (void) -{ - this->lock_ = TAO_ORB_Core_instance ()->server_factory ()->create_collocation_table_lock (); - // We don't need to worry about the race condition here because this - // is called from within the ctor of Hash_Map_Manager which is - // placed inside a ACE_Singleton. -} - -TAO_Collocation_Table_Lock::~TAO_Collocation_Table_Lock (void) -{ - delete this->lock_; - this->lock_ = 0; -} - -// **************************************************************** - -TAO_Cached_Connector_Lock::TAO_Cached_Connector_Lock (void) -{ - this->lock_ = TAO_ORB_Core_instance ()->server_factory ()->create_cached_connector_lock (); -} - -TAO_Cached_Connector_Lock::~TAO_Cached_Connector_Lock (void) -{ - delete this->lock_; - this->lock_ = 0; -} - -// **************************************************************** - -ACE_STATIC_SVC_DEFINE (TAO_Default_Resource_Factory, - ASYS_TEXT ("Resource_Factory"), - ACE_SVC_OBJ_T, - &ACE_SVC_NAME (TAO_Default_Resource_Factory), - ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ, - 0) -ACE_FACTORY_DEFINE (TAO, TAO_Default_Resource_Factory) - -// **************************************************************** - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class ACE_Malloc<ACE_LOCAL_MEMORY_POOL,ACE_SYNCH_MUTEX>; -template class ACE_Allocator_Adapter<ACE_Malloc<ACE_LOCAL_MEMORY_POOL,ACE_SYNCH_MUTEX> >; -template class ACE_Locked_Data_Block<ACE_Lock_Adapter<ACE_SYNCH_MUTEX> >; - -template class ACE_Strategy_Acceptor<TAO_Server_Connection_Handler, TAO_SOCK_ACCEPTOR>; -template class ACE_Creation_Strategy<TAO_Client_Connection_Handler>; -template class ACE_Connect_Strategy<TAO_Client_Connection_Handler, TAO_SOCK_CONNECTOR>; -template class ACE_Strategy_Connector<TAO_Client_Connection_Handler, TAO_SOCK_CONNECTOR>; -template class ACE_NOOP_Creation_Strategy<TAO_Client_Connection_Handler>; -template class ACE_Concurrency_Strategy<TAO_Client_Connection_Handler>; -template class ACE_NOOP_Concurrency_Strategy<TAO_Client_Connection_Handler>; -template class ACE_Recycling_Strategy<TAO_Client_Connection_Handler>; -template class ACE_Connector<TAO_Client_Connection_Handler, TAO_SOCK_CONNECTOR>; - -template class ACE_Node<TAO_Client_Connection_Handler *>; - -template class ACE_Singleton<TAO_Allocated_Resources, ACE_SYNCH_MUTEX>; -template class ACE_TSS_Singleton<TAO_Allocated_Resources, ACE_SYNCH_MUTEX>; -template class ACE_TSS<TAO_Allocated_Resources>; - -template class ACE_Select_Reactor_Token_T<ACE_Noop_Token>; -template class ACE_Lock_Adapter<ACE_Select_Reactor_Token_T<ACE_Noop_Token> >; -template class ACE_Select_Reactor_T< ACE_Select_Reactor_Token_T<ACE_Noop_Token> >; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate ACE_Malloc<ACE_LOCAL_MEMORY_POOL,ACE_SYNCH_MUTEX> -#pragma instantiate ACE_Allocator_Adapter<ACE_Malloc<ACE_LOCAL_MEMORY_POOL,ACE_SYNCH_MUTEX> > -#pragma instantiate ACE_Locked_Data_Block<ACE_Lock_Adapter<ACE_SYNCH_MUTEX> > - -#pragma instantiate ACE_Strategy_Acceptor<TAO_Server_Connection_Handler, TAO_SOCK_ACCEPTOR> -#pragma instantiate ACE_Creation_Strategy<TAO_Client_Connection_Handler> -#pragma instantiate ACE_Connect_Strategy<TAO_Client_Connection_Handler, TAO_SOCK_CONNECTOR> -#pragma instantiate ACE_Strategy_Connector<TAO_Client_Connection_Handler, TAO_SOCK_CONNECTOR> -#pragma instantiate ACE_NOOP_Creation_Strategy<TAO_Client_Connection_Handler> -#pragma instantiate ACE_Concurrency_Strategy<TAO_Client_Connection_Handler> -#pragma instantiate ACE_NOOP_Concurrency_Strategy<TAO_Client_Connection_Handler> -#pragma instantiate ACE_Recycling_Strategy<TAO_Client_Connection_Handler> -#pragma instantiate ACE_Connector<TAO_Client_Connection_Handler, TAO_SOCK_CONNECTOR> - -#pragma instantiate ACE_Node<TAO_Client_Connection_Handler *> - -#pragma instantiate ACE_Singleton<TAO_Allocated_Resources, ACE_SYNCH_MUTEX> -#pragma instantiate ACE_TSS_Singleton<TAO_Allocated_Resources, ACE_SYNCH_MUTEX> -#pragma instantiate ACE_TSS<TAO_Allocated_Resources> - -#pragma instantiate ACE_Select_Reactor_Token_T<ACE_Noop_Token> -#pragma instantiate ACE_Lock_Adapter< ACE_Select_Reactor_Token_T<ACE_Noop_Token> > -#pragma instantiate ACE_Select_Reactor_T< ACE_Select_Reactor_Token_T<ACE_Noop_Token> > - -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ |