diff options
Diffstat (limited to 'TAO/tao/default_resource.cpp')
-rw-r--r-- | TAO/tao/default_resource.cpp | 124 |
1 files changed, 19 insertions, 105 deletions
diff --git a/TAO/tao/default_resource.cpp b/TAO/tao/default_resource.cpp index ab6fff4e357..41c8b06c78a 100644 --- a/TAO/tao/default_resource.cpp +++ b/TAO/tao/default_resource.cpp @@ -2,10 +2,6 @@ #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" @@ -20,7 +16,7 @@ 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), + reactor_lock_ (TAO_TOKEN), cdr_allocator_source_ (TAO_GLOBAL) { } @@ -83,71 +79,17 @@ TAO_Default_Resource_Factory::init (int argc, char **argv) } 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; + reactor_lock_ = TAO_NULL_LOCK; else if (ACE_OS::strcasecmp (name, "token") == 0) - reactor_type_= TAO_REACTOR_SELECT_ST; + reactor_lock_= TAO_TOKEN; } } - - 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++; @@ -224,48 +166,6 @@ IMPLEMENT_GET_METHOD(get_null_activation_strategy, TAO_NULL_ACTIVATION_STRATEGY // 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) { @@ -275,7 +175,7 @@ TAO_Default_Resource_Factory::get_reactor (void) if (GLOBAL_ALLOCATED::instance ()->r_ == 0) { ACE_NEW_RETURN (GLOBAL_ALLOCATED::instance ()->r_, - ACE_Reactor (this->allocate_reactor_impl (), 1), + TAO_Default_Reactor (this->reactor_lock ()), 0); } return GLOBAL_ALLOCATED::instance ()->r_; @@ -284,7 +184,7 @@ TAO_Default_Resource_Factory::get_reactor (void) if (TSS_ALLOCATED::instance ()->r_ == 0) { ACE_NEW_RETURN (TSS_ALLOCATED::instance ()->r_, - ACE_Reactor (this->allocate_reactor_impl (), 1), + TAO_Default_Reactor (this->reactor_lock ()), 0); } return TSS_ALLOCATED::instance ()->r_; @@ -561,6 +461,20 @@ TAO_Allocated_Resources::~TAO_Allocated_Resources (void) // **************************************************************** +TAO_Default_Reactor::TAO_Default_Reactor (int nolock) + : ACE_Reactor ((nolock ? + (ACE_Reactor_Impl*) new TAO_NULL_LOCK_REACTOR : + (ACE_Reactor_Impl*) new TAO_REACTOR), + 1) +{ +} + +TAO_Default_Reactor::~TAO_Default_Reactor (void) +{ +} + +// **************************************************************** + TAO_Collocation_Table_Lock::TAO_Collocation_Table_Lock (void) { this->lock_ = TAO_ORB_Core_instance ()->server_factory ()->create_collocation_table_lock (); |