diff options
-rw-r--r-- | TAO/tao/Default_Endpoint_Selector_Factory.cpp | 15 | ||||
-rw-r--r-- | TAO/tao/Default_Endpoint_Selector_Factory.h | 3 | ||||
-rw-r--r-- | TAO/tao/IIOP_Acceptor.cpp | 89 | ||||
-rw-r--r-- | TAO/tao/IIOP_Acceptor.h | 16 | ||||
-rw-r--r-- | TAO/tao/IIOP_Connection_Handler.cpp | 39 | ||||
-rw-r--r-- | TAO/tao/IIOP_Connection_Handler.h | 3 |
6 files changed, 145 insertions, 20 deletions
diff --git a/TAO/tao/Default_Endpoint_Selector_Factory.cpp b/TAO/tao/Default_Endpoint_Selector_Factory.cpp index 8b0814e80e8..cb11d4db932 100644 --- a/TAO/tao/Default_Endpoint_Selector_Factory.cpp +++ b/TAO/tao/Default_Endpoint_Selector_Factory.cpp @@ -2,7 +2,10 @@ #include "tao/Default_Endpoint_Selector_Factory.h" + +#if !defined (TAO_HAS_COLLOCATION) #include "tao/Invocation_Endpoint_Selectors.h" +#endif #include "ace/Log_Msg.h" @@ -14,22 +17,34 @@ ACE_RCSID (tao, TAO_Default_Endpoint_Selector_Factory::TAO_Default_Endpoint_Selector_Factory (void) { + +#if !defined (TAO_HAS_COLLOCATION) ACE_NEW (this->default_endpoint_selector_, TAO_Default_Endpoint_Selector); +#endif } TAO_Default_Endpoint_Selector_Factory::~TAO_Default_Endpoint_Selector_Factory (void) { + +#if !defined (TAO_HAS_COLLOCATION) delete this->default_endpoint_selector_; +#endif + } TAO_Invocation_Endpoint_Selector * TAO_Default_Endpoint_Selector_Factory::get_selector (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) { + +#if !defined (TAO_HAS_COLLOCATION) // Trivial endpoint selector. Just return the default selector. return this->default_endpoint_selector_; +#else + return 0; +#endif } // **************************************************************** diff --git a/TAO/tao/Default_Endpoint_Selector_Factory.h b/TAO/tao/Default_Endpoint_Selector_Factory.h index 00558b91983..4ca028a6a0a 100644 --- a/TAO/tao/Default_Endpoint_Selector_Factory.h +++ b/TAO/tao/Default_Endpoint_Selector_Factory.h @@ -62,10 +62,13 @@ public: virtual TAO_Invocation_Endpoint_Selector *get_selector ( ACE_ENV_SINGLE_ARG_DECL); +#if !defined (TAO_HAS_COLLOCATION) protected: /// The possible endpoint selector strategies that can be /// returned by this factory TAO_Default_Endpoint_Selector *default_endpoint_selector_; +#endif + }; ACE_STATIC_SVC_DECLARE_EXPORT (TAO, TAO_Default_Endpoint_Selector_Factory) diff --git a/TAO/tao/IIOP_Acceptor.cpp b/TAO/tao/IIOP_Acceptor.cpp index 5f7d76ff640..4041a5356a0 100644 --- a/TAO/tao/IIOP_Acceptor.cpp +++ b/TAO/tao/IIOP_Acceptor.cpp @@ -4,10 +4,13 @@ #include "tao/debug.h" #include "tao/Protocols_Hooks.h" #include "tao/Codeset_Manager.h" -#include "tao/Transport.h" #include "tao/ORB_Core.h" #include "tao/CDR.h" +#if !defined (TAO_HAS_COLLOCATION) +# include "tao/Transport.h" +#endif + #if !defined(__ACE_INLINE__) #include "tao/IIOP_Acceptor.i" #endif /* __ACE_INLINE__ */ @@ -21,6 +24,7 @@ ACE_RCSID (tao, IIOP_Acceptor, "$Id$") +#if !defined (TAO_HAS_COLLOCATION) #if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) @@ -50,21 +54,46 @@ template class TAO_Accept_Strategy<TAO_IIOP_Connection_Handler, ACE_SOCK_ACCEPTO #endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ +#else + +#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) + +template class ACE_Auto_Basic_Array_Ptr<ACE_INET_Addr>; +template class ACE_Acceptor<TAO_IIOP_Connection_Handler, ACE_SOCK_ACCEPTOR>; +template class ACE_Strategy_Acceptor<TAO_IIOP_Connection_Handler, ACE_SOCK_ACCEPTOR>; +template class ACE_Accept_Strategy<TAO_IIOP_Connection_Handler, ACE_SOCK_ACCEPTOR>; +template class TAO_Accept_Strategy<TAO_IIOP_Connection_Handler, ACE_SOCK_ACCEPTOR>; + +#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) + +#pragma instantiate ACE_Auto_Basic_Array_Ptr<ACE_INET_Addr> +#pragma instantiate ACE_Acceptor<TAO_IIOP_Connection_Handler, ACE_SOCK_ACCEPTOR> +#pragma instantiate ACE_Strategy_Acceptor<TAO_IIOP_Connection_Handler, ACE_SOCK_ACCEPTOR> +#pragma instantiate ACE_Accept_Strategy<TAO_IIOP_Connection_Handler, ACE_SOCK_ACCEPTOR> +#pragma instantiate TAO_Accept_Strategy<TAO_IIOP_Connection_Handler, ACE_SOCK_ACCEPTOR> + +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ + +#endif + TAO_IIOP_Acceptor::TAO_IIOP_Acceptor (CORBA::Boolean flag) - : TAO_Acceptor (IOP::TAG_INTERNET_IOP), - addrs_ (0), - port_span_ (1), - hosts_ (0), - hostname_in_ior_ (0), - endpoint_count_ (0), - version_ (TAO_DEF_GIOP_MAJOR, TAO_DEF_GIOP_MINOR), - orb_core_ (0), - lite_flag_ (flag), - base_acceptor_ (), - creation_strategy_ (0), - concurrency_strategy_ (0), - accept_strategy_ (0) + : TAO_Acceptor (IOP::TAG_INTERNET_IOP) + , addrs_ (0) + , port_span_ (1) + , hosts_ (0) + , hostname_in_ior_ (0) + , endpoint_count_ (0) + , version_ (TAO_DEF_GIOP_MAJOR, TAO_DEF_GIOP_MINOR) + , orb_core_ (0) + , lite_flag_ (flag) + , base_acceptor_ () +#if !defined (TAO_HAS_COLLOCATION) + , creation_strategy_ (0) + , concurrency_strategy_ (0) + , accept_strategy_ (0) +#endif { + } TAO_IIOP_Acceptor::~TAO_IIOP_Acceptor (void) @@ -73,10 +102,14 @@ TAO_IIOP_Acceptor::~TAO_IIOP_Acceptor (void) // strategies. this->close (); +#if !defined (TAO_HAS_COLLOCATION) + delete this->creation_strategy_; delete this->concurrency_strategy_; delete this->accept_strategy_; +#endif + delete [] this->addrs_; for (CORBA::ULong i = 0; i < this->endpoint_count_; ++i) @@ -259,6 +292,7 @@ TAO_IIOP_Acceptor::is_collocated (const TAO_Endpoint *endpoint) int TAO_IIOP_Acceptor::close (void) { + return this->base_acceptor_.close (); } @@ -270,6 +304,7 @@ TAO_IIOP_Acceptor::open (TAO_ORB_Core *orb_core, const char *address, const char *options) { + this->orb_core_ = orb_core; if (this->hosts_ != 0) @@ -396,6 +431,7 @@ TAO_IIOP_Acceptor::open_default (TAO_ORB_Core *orb_core, int minor, const char *options) { + this->orb_core_ = orb_core; if (this->hosts_ != 0) @@ -439,6 +475,8 @@ int TAO_IIOP_Acceptor::open_i (const ACE_INET_Addr& addr, ACE_Reactor *reactor) { + +#if !defined (TAO_HAS_COLLOCATION) ACE_NEW_RETURN (this->creation_strategy_, CREATION_STRATEGY (this->orb_core_, this->lite_flag_), @@ -451,16 +489,30 @@ TAO_IIOP_Acceptor::open_i (const ACE_INET_Addr& addr, ACE_NEW_RETURN (this->accept_strategy_, ACCEPT_STRATEGY (this->orb_core_), -1); +#endif + + // this->creation_strategy_ = 0; + //this->concurrency_strategy_ = 0; + //this->accept_strategy_ = 0; unsigned short requested_port = addr.get_port_number (); if (requested_port == 0) { + +#if !defined (TAO_HAS_COLLOCATION) // don't care, i.e., let the OS choose an ephemeral port if (this->base_acceptor_.open (addr, reactor, this->creation_strategy_, this->accept_strategy_, this->concurrency_strategy_) == -1) +#else + if (this->base_acceptor_.open (addr, + reactor, + 0, + 0, + 0) == -1) +#endif { if (TAO_debug_level > 0) ACE_DEBUG ((LM_DEBUG, @@ -490,11 +542,20 @@ TAO_IIOP_Acceptor::open_i (const ACE_INET_Addr& addr, // Now try to actually open on that port a.set_port_number ((u_short)p); + +#if !defined (TAO_HAS_COLLOCATION) if (this->base_acceptor_.open (a, reactor, this->creation_strategy_, this->accept_strategy_, this->concurrency_strategy_) != -1) +#else + if (this->base_acceptor_.open (a, + reactor, + 0, + 0, + 0) != -1) +#endif { found_a_port = true; break; diff --git a/TAO/tao/IIOP_Acceptor.h b/TAO/tao/IIOP_Acceptor.h index 1faf926a88e..04996e5a35f 100644 --- a/TAO/tao/IIOP_Acceptor.h +++ b/TAO/tao/IIOP_Acceptor.h @@ -28,7 +28,7 @@ #include "ace/SOCK_Acceptor.h" #include "tao/Transport_Acceptor.h" -#include "tao/IIOP_Connection_Handler.h" +# include "tao/IIOP_Connection_Handler.h" #include "tao/Acceptor_Impl.h" #include "tao/GIOP_Message_Version.h" @@ -55,10 +55,17 @@ public: /// Returns the array of endpoints in this acceptor const ACE_INET_Addr *endpoints (void); - typedef ACE_Strategy_Acceptor<TAO_IIOP_Connection_Handler, ACE_SOCK_ACCEPTOR> BASE_ACCEPTOR; + + typedef ACE_Strategy_Acceptor<TAO_IIOP_Connection_Handler, + ACE_SOCK_ACCEPTOR> BASE_ACCEPTOR; + +#if !defined (TAO_HAS_COLLOCATION) + typedef TAO_Creation_Strategy<TAO_IIOP_Connection_Handler> CREATION_STRATEGY; typedef TAO_Concurrency_Strategy<TAO_IIOP_Connection_Handler> CONCURRENCY_STRATEGY; - typedef TAO_Accept_Strategy<TAO_IIOP_Connection_Handler, ACE_SOCK_ACCEPTOR> ACCEPT_STRATEGY; + typedef TAO_Accept_Strategy<TAO_IIOP_Connection_Handler, + ACE_SOCK_ACCEPTOR> ACCEPT_STRATEGY; +#endif /** * The TAO_Acceptor methods, check the documentation in @@ -196,10 +203,13 @@ private: /// the concrete acceptor, as a pointer to it's base class. BASE_ACCEPTOR base_acceptor_; +#if !defined (TAO_HAS_COLLOCATION) /// Acceptor strategies. CREATION_STRATEGY *creation_strategy_; CONCURRENCY_STRATEGY *concurrency_strategy_; + ACCEPT_STRATEGY *accept_strategy_; +#endif }; diff --git a/TAO/tao/IIOP_Connection_Handler.cpp b/TAO/tao/IIOP_Connection_Handler.cpp index a42e8f49e97..086f4b226fb 100644 --- a/TAO/tao/IIOP_Connection_Handler.cpp +++ b/TAO/tao/IIOP_Connection_Handler.cpp @@ -41,12 +41,19 @@ TAO_IIOP_Connection_Handler::TAO_IIOP_Connection_Handler ( TAO_Connection_Handler (orb_core), dscp_codepoint_ (IPDSFIELD_DSCP_DEFAULT << 2) { + +#if !defined (TAO_HAS_COLLOCATION) TAO_IIOP_Transport* specific_transport = 0; ACE_NEW (specific_transport, TAO_IIOP_Transport (this, orb_core, flag)); // store this pointer (indirectly increment ref count) this->transport (specific_transport); +#else + ACE_UNUSED_ARG (orb_core); + ACE_UNUSED_ARG (flag); +#endif + } TAO_IIOP_Connection_Handler::TAO_IIOP_Connection_Handler (TAO_ORB_Core *orb_core) @@ -58,7 +65,11 @@ TAO_IIOP_Connection_Handler::TAO_IIOP_Connection_Handler (TAO_ORB_Core *orb_core TAO_IIOP_Connection_Handler::~TAO_IIOP_Connection_Handler (void) { + +#if !defined (TAO_HAS_COLLOCATION) delete this->transport (); +#endif + } int @@ -70,6 +81,8 @@ TAO_IIOP_Connection_Handler::open_handler (void *v) int TAO_IIOP_Connection_Handler::open (void*) { + +#if !defined (TAO_HAS_COLLOCATION) TAO_IIOP_Protocol_Properties protocol_properties; // Initialize values from ORB params. @@ -183,15 +196,21 @@ TAO_IIOP_Connection_Handler::open (void*) client, this->peer ().get_handle ())); } + /* // Set that the transport is now connected, if fails we return -1 // Use C-style cast b/c otherwise we get warnings on lots of // compilers if (!this->transport ()->post_open ((size_t) this->get_handle ())) return -1; + */ this->state_changed (TAO_LF_Event::LFS_SUCCESS); return 0; + +#else + return 0; +#endif } int @@ -260,6 +279,8 @@ TAO_IIOP_Connection_Handler::release_os_resources (void) int TAO_IIOP_Connection_Handler::add_transport_to_cache (void) { + +#if !defined (TAO_HAS_COLLOCATION) ACE_INET_Addr addr; // Get the peername. @@ -280,12 +301,17 @@ TAO_IIOP_Connection_Handler::add_transport_to_cache (void) // Idle the transport.. return cache.cache_idle_transport (&prop, this->transport ()); +#else + return 0; +#endif } int TAO_IIOP_Connection_Handler::process_listen_point_list ( IIOP::ListenPointList &listen_list) { + +#if !defined (TAO_HAS_COLLOCATION) // Get the size of the list const CORBA::ULong len = listen_list.length (); @@ -323,6 +349,7 @@ TAO_IIOP_Connection_Handler::process_listen_point_list ( // Mark the connection as bidirectional prop.set_bidir_flag (1); + /* // The property for this handler has changed. Recache the // handler with this property int retval = @@ -333,14 +360,22 @@ TAO_IIOP_Connection_Handler::process_listen_point_list ( // Make the handler idle and ready for use this->transport ()->make_idle (); + */ } return 0; +#else + ACE_UNUSED_ARG (listen_list); + return 0; +#endif + } int TAO_IIOP_Connection_Handler::set_dscp_codepoint (CORBA::Boolean set_network_priority) { + +#if !defined (TAO_HAS_COLLOCATION) int tos = IPDSFIELD_DSCP_DEFAULT << 2; if (set_network_priority) @@ -378,6 +413,10 @@ TAO_IIOP_Connection_Handler::set_dscp_codepoint (CORBA::Boolean set_network_prio } return 0; +#else + ACE_UNUSED_ARG (set_network_priority); + return 0; +#endif } // **************************************************************** diff --git a/TAO/tao/IIOP_Connection_Handler.h b/TAO/tao/IIOP_Connection_Handler.h index 1fb383b735a..92b98683fe0 100644 --- a/TAO/tao/IIOP_Connection_Handler.h +++ b/TAO/tao/IIOP_Connection_Handler.h @@ -23,7 +23,6 @@ #endif /* ACE_LACKS_PRAGMA_ONCE */ #include "ace/SOCK_Stream.h" - #include "tao/Connection_Handler.h" #include "tao/Basic_Types.h" @@ -54,11 +53,9 @@ class TAO_Pluggable_Messaging; * the Connector */ - class TAO_Export TAO_IIOP_Connection_Handler : public TAO_IIOP_SVC_HANDLER, public TAO_Connection_Handler { - public: TAO_IIOP_Connection_Handler (ACE_Thread_Manager * = 0); |