diff options
Diffstat (limited to 'TAO/tao')
-rw-r--r-- | TAO/tao/CORBA.cpp | 177 | ||||
-rw-r--r-- | TAO/tao/factories.h | 141 |
2 files changed, 0 insertions, 318 deletions
diff --git a/TAO/tao/CORBA.cpp b/TAO/tao/CORBA.cpp deleted file mode 100644 index 46ccc7c2033..00000000000 --- a/TAO/tao/CORBA.cpp +++ /dev/null @@ -1,177 +0,0 @@ -// $Id$ - -#include "tao/corba.h" - -// String utility support; this can need to be integrated with the -// ORB's own memory allocation subsystem. - -CORBA::String -CORBA::string_copy (const CORBA::Char *str) -{ - if (!str) - return 0; - - CORBA::String retval = - CORBA::string_alloc (ACE_OS::strlen (str)); - - // clear the contents of the allocated string - ACE_OS::memset(retval, '\0', ACE_OS::strlen (str)); - - return ACE_OS::strcpy (retval, str); -} - -CORBA::String_var & -CORBA::String_var::operator= (char *p) -{ - if (this->ptr_ != p) - { - if (this->ptr_ != 0) - CORBA::string_free (this->ptr_); - this->ptr_ = p; - } - return *this; -} - -CORBA::String_var & -CORBA::String_var::operator= (const char *p) -{ - if (this->ptr_ != 0) - CORBA::string_free (this->ptr_); - - this->ptr_ = CORBA::string_dup (p); - return *this; -} - -CORBA::String_var & -CORBA::String_var::operator= (const CORBA::String_var& r) -{ - if (this != &r) - { - if (this->ptr_ != 0) - CORBA::string_free (this->ptr_); - this->ptr_ = CORBA::string_dup (r.ptr_); - } - return *this; -} - -// Wide Character string utility support; this can need to be -// integrated with the ORB's own memory allocation subsystem. - -CORBA::WString -CORBA::wstring_alloc (CORBA::ULong len) -{ - return new CORBA::WChar [(size_t) (len + 1)]; -} - -static -inline -CORBA::WChar * -wscpy (CORBA::WChar *dest, - const CORBA::WChar *src) -{ - CORBA::WChar *retval = dest; - - while ((*dest++ = *src++) != 0) - continue; - return retval; -} - -CORBA::WString -CORBA::wstring_copy (const CORBA::WChar *const str) -{ - if (*str) - return 0; - - CORBA::WString retval = CORBA::wstring_alloc (ACE_WString::wstrlen (str)); - return wscpy (retval, str); -} - -void -CORBA::wstring_free (CORBA::WChar *const str) -{ - delete [] str; -} - -// ORB initialisation, per OMG document 94-9-46. -// -// XXX in addition to the "built in" Internet ORB, there will be ORBs -// which are added separately, e.g. through a DLL listed in the -// registry. Registry will be used to assign orb names and to -// establish which is the default. - -CORBA::ORB_ptr -CORBA::ORB_init (int &argc, - char *const *argv, - const char * /* orb_name */, - CORBA::Environment &env) -{ - // Using ACE_Static_Object_Lock::instance() precludes ORB_init from - // being called within a static object CTOR. - ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, - *ACE_Static_Object_Lock::instance (), 0)); - - env.clear (); - - // @@ We need to make sure it's ok for the following 3 - // initialization routines to be called multiple times. Or better - // yet, ensure that we just call them the first time, e.g., by - // putting them in some type of TAO_Object_Manager, along with the - // Typecode_Constants... - - // Put these initializations here so that exceptions are enabled - // immediately. - TAO_Marshal::initialize (); - TAO_Exceptions::init_standard_exceptions (env); - TAO_IIOP_Interpreter::init_table (); - - if (env.exception () != 0) - return 0; - - // Verify some of the basic implementation requirements. This test - // gets optimized away by a decent compiler (or else the rest of the - // routine does). - // - // NOTE: we still "just" assume that native floating point is IEEE. - - if (sizeof (CORBA::Short) != 2 - || sizeof (CORBA::Long) != 4 - || sizeof (CORBA::LongLong) != 8 - || sizeof (CORBA::Float) != 4 - || sizeof (CORBA::Double) != 8 - || sizeof (CORBA::LongDouble) != 16 - || sizeof (CORBA::WChar) < 2 - || sizeof (void *) != ACE_SIZEOF_VOID_P) - { - ACE_DEBUG ((LM_DEBUG, "%s; ERROR: unexpected basic type size; " - "s:%d l:%d ll:%d f:%d d:%d ld:%d wc:%d v:%d\n", - sizeof (CORBA::Short), - sizeof (CORBA::Long), - sizeof (CORBA::LongLong), - sizeof (CORBA::Float), - sizeof (CORBA::Double), - sizeof (CORBA::LongDouble), - sizeof (CORBA::WChar), - sizeof (void *))); - - env.exception (new CORBA::INITIALIZE (CORBA::COMPLETED_NO)); - return 0; - } - - // Initialize the ORB Core instance. - int result = TAO_ORB_Core_instance ()->init (argc, (char **)argv); - - // check for errors and return 0 if error. - if (result == -1) - { - env.exception (new CORBA::BAD_PARAM (CORBA::COMPLETED_NO)); - return 0; - } - - return TAO_ORB_Core_instance()->orb (); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class TAO_Unbounded_Sequence<CORBA::Octet>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate TAO_Unbounded_Sequence<CORBA::Octet> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/tao/factories.h b/TAO/tao/factories.h deleted file mode 100644 index 496dae62ed2..00000000000 --- a/TAO/tao/factories.h +++ /dev/null @@ -1,141 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -// ============================================================================ -// -// = LIBRARY -// TAO -// -// = FILENAME -// factories.h -// -// = AUTHOR -// Chris Cleeland -// -// = VERSION -// $Id$ -// ============================================================================ - -#if !defined (TAO_FACTORIES_H) -# define TAO_FACTORIES_H - -#if 0 -# include "ace/SOCK_Acceptor.h" -# include "ace/SOCK_Connector.h" -# include "ace/Strategies_T.h" -# include "ace/Connector.h" -# include "ace/Synch.h" - -# include "tao/params.h" -# include "tao/connect.h" -# include "tao/objtable.h" -#endif - -class TAO_Client_Connection_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> - // = TITLE - // <Svc_Handler> used on the client side and returned - // by the <TAO_Client_Factory::CONNECTOR>. -{ -public: - TAO_Client_Connection_Handler (ACE_Thread_Manager* = 0); - // Do-nothing constructor - - virtual int open (void*); - // Initialization hook - - void in_use (CORBA::Boolean); - // Set the in-use flag. - - CORBA::Boolean in_use (void); - // Return state of the in-use flag. - -private: - CORBA::Boolean in_use_; - // True value indicates that something is using this handler. -}; - -class TAO_Client_Factory - // = TITLE - // Abstract factory used by the client to turn out various - // strategies used on the client side. -{ -public: - typedef ACE_Strategy_Connector<TAO_Client_Connection_Handler, ACE_SOCK_CONNECTOR> - CONNECTOR; - typedef ACE_NOOP_Creation_Strategy<TAO_Client_Connection_Handler> - NULL_CREATION_STRATEGY; - typedef ACE_Cached_Connect_Strategy<TAO_Client_Connection_Handler, - ACE_SOCK_CONNECTOR, - ACE_SYNCH_RW_MUTEX> - CACHED_CONNECT_STRATEGY; - -#if defined (TAO_HAS_CLIENT_CONCURRENCY) - CONCURRENCY_STRATEGY *concurrency_strategy (void); -#endif - - CONNECTOR *connector (void); - // Return a pointer to a connector using appropriate strategies. - - TAO_Client_Factory (void); - ~TAO_Client_Factory (void); - -private: -#if defined (TAO_HAS_CLIENT_CONCURRENCY) - CONCURRENCY_STRATEGY *concurrency_strategy_; -#endif - CONNECTOR connector_; - NULL_CREATION_STRATEGY null_creation_strategy_; - CACHED_CONNECT_STRATEGY caching_connect_strategy_; -}; - -class TAO_Server_Factory - // = TITLE - // Abstract factory used by the server side to turn out various - // strategies of special utility to it. -{ -public: - // = SERVER-SIDE - typedef ACE_Creation_Strategy<TAO_OA_Connection_Handler> CREATION_STRATEGY; - typedef ACE_Accept_Strategy<TAO_OA_Connection_Handler, ACE_SOCK_ACCEPTOR> ACCEPT_STRATEGY; - typedef ACE_Concurrency_Strategy<TAO_OA_Connection_Handler> CONCURRENCY_STRATEGY; - typedef ACE_Scheduling_Strategy<TAO_OA_Connection_Handler> SCHEDULING_STRATEGY; - - CREATION_STRATEGY *creation_strategy (void); - // return concrete creation strategy - - ACCEPT_STRATEGY *accept_strategy (void); - // return concrete acceptor strategy - - CONCURRENCY_STRATEGY *concurrency_strategy (void); - // return the concurrency strategy used - - SCHEDULING_STRATEGY *scheduling_strategy (void); - // return the scheduling strategy used - - TAO_Object_Table *object_lookup_strategy (void); - // return the concrete object lookup strategy - - TAO_Server_Factory (void); - // constructor - -private: - // = COMMON - ACE_Thread_Strategy<TAO_OA_Connection_Handler> threaded_strategy_; - // The threaded strategy used for passively establishing connections. - ACE_Reactive_Strategy<TAO_OA_Connection_Handler> reactive_strategy_; - // A strategy for passively establishing connections which utilizes the Reactor. - - // = SERVER - CONCURRENCY_STRATEGY *concurrency_strategy_; - // concrete concurrency strategy - - TAO_Object_Table *objtable_; - // instance of object table -#if 0 - // Someday we'll need these! - CREATION_STRATEGY *creation_strategy_; - ACCEPT_STRATEGY *accept_strategy_; - SCHEDULING_STRATEGY *scheduling_strategy_; -#endif -}; - -#endif /* TAO_FACTORIES_H */ |