From 3732445ec3ba33ec4292fbcf9cff1c66f110707a Mon Sep 17 00:00:00 2001 From: parsons Date: Fri, 18 Jul 2003 02:00:57 +0000 Subject: ChangeLogTag: Thu Jul 17 20:59:34 2003 Jeff Parsons --- TAO/ChangeLog_ref | 50 +++++++++++ TAO/tao/Abstract_Servant_Base.h | 22 +++-- TAO/tao/Acceptor_Filter.h | 5 +- TAO/tao/Acceptor_Impl.cpp | 2 - TAO/tao/Acceptor_Impl.h | 2 +- TAO/tao/Acceptor_Registry.h | 4 +- TAO/tao/Argument.h | 4 +- TAO/tao/Basic_Types.h | 81 +++++++++++++++++ TAO/tao/BiDir_Adapter.h | 13 ++- TAO/tao/Bind_Dispatcher_Guard.h | 3 +- TAO/tao/BoundsC.h | 8 +- TAO/tao/CDR.h | 6 +- TAO/tao/CORBA_String.cpp | 88 ++++++++++++++++++- TAO/tao/CORBA_String.h | 28 +++++- TAO/tao/CORBA_String.inl | 6 ++ TAO/tao/ClientRequestInfo_i.h | 2 +- TAO/tao/Codeset_Translator_Factory.h | 2 +- TAO/tao/Collocation_Resolver.h | 13 ++- TAO/tao/Connector_Impl.h | 7 +- TAO/tao/Connector_Registry.h | 6 +- TAO/tao/Dynamic_Adapter.h | 37 +++++++- TAO/tao/Encodable.h | 7 +- TAO/tao/Endpoint.h | 7 +- TAO/tao/Exception.h | 22 ++++- TAO/tao/Managed_Types.h | 5 +- TAO/tao/OBV_Constants.h | 49 +++++++++++ TAO/tao/Object_Loader.h | 14 ++- TAO/tao/Resource_Factory.h | 3 +- TAO/tao/Sequence.cpp | 1 + TAO/tao/TAO.dsp | 46 ++++++++++ TAO/tao/TypeCodeFactory_Adapter.h | 5 +- TAO/tao/Typecode.h | 69 ++++++++++++++- TAO/tao/corbafwd.cpp | 53 ----------- TAO/tao/corbafwd.h | 164 ++--------------------------------- TAO/tao/corbafwd.i | 36 -------- 35 files changed, 557 insertions(+), 313 deletions(-) create mode 100644 TAO/tao/Basic_Types.h create mode 100644 TAO/tao/OBV_Constants.h diff --git a/TAO/ChangeLog_ref b/TAO/ChangeLog_ref index 9e13c5d0e56..5728e5897e4 100644 --- a/TAO/ChangeLog_ref +++ b/TAO/ChangeLog_ref @@ -1,3 +1,53 @@ +Thu Jul 17 20:59:34 2003 Jeff Parsons + + * tao/Abstract_Servant_Base.h: + * tao/Acceptor_Filter.h: + * tao/Acceptor_Impl.cpp: + * tao/Acceptor_Impl.h: + * tao/Acceptor_Registry.h: + * tao/Argument.h: + * tao/BiDir_Adapter.h: + * tao/Bind_Dispatcher_Guard.h: + * tao/BoundsC.h: + * tao/CDR.h: + * tao/CORBA_String.cpp: + * tao/CORBA_String.h: + * tao/CORBA_String.inl: + * tao/ClientRequestInfo_i.h: + * tao/Codeset_Translator_Factory.h: + * tao/Collocation_Resolver.h: + * tao/Connector_Impl.h: + * tao/Connector_Registry.h: + * tao/Dynamic_Adapter.h: + * tao/Encodable.h: + * tao/Endpoint.h: + * tao/Exception.h: + * tao/Managed_Types.h: + * tao/Object_Loader.h: + * tao/Resource_Factory.h: + * tao/Sequence.cpp: + * tao/TAO.dsp: + * tao/TypeCodeFactory_Adapter.h: + * tao/Typecode.h: + * tao/corbafwd.cpp: + * tao/corbafwd.h: + * tao/corbafwd.i: + + Cleaned up include structure a little by substituting for + includes of corbafwd.h in some of TAO's files. Some + declarations and definitions were moved around to accomplish + this. + + * tao/Basic_Types.h: + + Moved typedefs of basic IDL types (from the corresponding + ACE_CDR declarations) to a new file. + + * tao/OBV_Constants.h: + + Moved constants and typedefs related to valuetypes to a + new file. + Wed Jul 16 14:38:02 2003 Jeff Parsons * TAO_IDL/be/be_interface.cpp: diff --git a/TAO/tao/Abstract_Servant_Base.h b/TAO/tao/Abstract_Servant_Base.h index aa81020b045..2be9b4bcaf2 100644 --- a/TAO/tao/Abstract_Servant_Base.h +++ b/TAO/tao/Abstract_Servant_Base.h @@ -21,17 +21,29 @@ #include "ace/pre.h" -#include "tao/corbafwd.h" +#include "ace/CORBA_macros.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "ace/CORBA_macros.h" +#include "tao/Basic_Types.h" +#include "tao/TAO_Export.h" class TAO_ServerRequest; class TAO_Stub; +namespace CORBA +{ + class InterfaceDef; + typedef InterfaceDef *InterfaceDef_ptr; + + class Environment; + + class Object; + typedef Object *Object_ptr; +}; + typedef void (*TAO_Skeleton)( TAO_ServerRequest &, void *, @@ -41,12 +53,6 @@ typedef void (*TAO_Skeleton)( #endif ); -namespace CORBA -{ - class InterfaceDef; - typedef InterfaceDef *InterfaceDef_ptr; -}; - class TAO_Export TAO_Abstract_ServantBase { public: diff --git a/TAO/tao/Acceptor_Filter.h b/TAO/tao/Acceptor_Filter.h index 2dde56c7f67..c192f64d431 100644 --- a/TAO/tao/Acceptor_Filter.h +++ b/TAO/tao/Acceptor_Filter.h @@ -14,16 +14,15 @@ #ifndef TAO_ACCEPTOR_FILTER_H #define TAO_ACCEPTOR_FILTER_H + #include "ace/pre.h" -#include "tao/corbafwd.h" +#include "tao/Object_KeyC.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "tao/Object_KeyC.h" - #if defined(_MSC_VER) #if (_MSC_VER >= 1200) #pragma warning(push) diff --git a/TAO/tao/Acceptor_Impl.cpp b/TAO/tao/Acceptor_Impl.cpp index d290d2f4157..fb36b1e9511 100644 --- a/TAO/tao/Acceptor_Impl.cpp +++ b/TAO/tao/Acceptor_Impl.cpp @@ -26,9 +26,7 @@ #endif /* ACE_LACKS_PRAGMA_ONCE */ #include "ORB_Core.h" -// #include "ORB_Table.h" #include "Server_Strategy_Factory.h" -// #include "Connector_Registry.h" #include "Transport_Cache_Manager.h" #include "Thread_Lane_Resources.h" #include "Transport.h" diff --git a/TAO/tao/Acceptor_Impl.h b/TAO/tao/Acceptor_Impl.h index 525a06e3251..040f9864658 100644 --- a/TAO/tao/Acceptor_Impl.h +++ b/TAO/tao/Acceptor_Impl.h @@ -22,7 +22,7 @@ # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "tao/corbafwd.h" +#include "tao/Basic_Types.h" // Forward declarations. class TAO_ORB_Core; diff --git a/TAO/tao/Acceptor_Registry.h b/TAO/tao/Acceptor_Registry.h index 00f2526ef00..f292158dc04 100644 --- a/TAO/tao/Acceptor_Registry.h +++ b/TAO/tao/Acceptor_Registry.h @@ -19,7 +19,7 @@ #include "ace/pre.h" -#include "tao/corbafwd.h" +#include "ace/SStringfwd.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once @@ -28,7 +28,7 @@ #include "tao/Resource_Factory.h" #include "tao/Exception.h" -#include "ace/SStringfwd.h" +#include "tao/TAO_Export.h" // Forward declarations. class ACE_Addr; diff --git a/TAO/tao/Argument.h b/TAO/tao/Argument.h index 340f27b802b..c9c6c52a407 100644 --- a/TAO/tao/Argument.h +++ b/TAO/tao/Argument.h @@ -15,12 +15,14 @@ #define TAO_ARGUMENT_H #include "ace/pre.h" -#include "tao/corbafwd.h" +#include "tao/Basic_Types.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ +#include "tao/TAO_Export.h" + namespace Dynamic { struct Parameter; diff --git a/TAO/tao/Basic_Types.h b/TAO/tao/Basic_Types.h new file mode 100644 index 00000000000..84a937d0c0a --- /dev/null +++ b/TAO/tao/Basic_Types.h @@ -0,0 +1,81 @@ +// This may look like C, but it's really -*- C++ -*- + +//============================================================================= +/** + * @file Basic_Types.h + * + * $Id$ + * + * @authors Jeff Parsons + */ +//============================================================================= + + +#ifndef TAO_BASIC_TYPES_H +#define TAO_BASIC_TYPES_H + +#include "ace/pre.h" +#include "ace/CDR_Base.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +namespace CORBA +{ + /** + * @name CORBA Primitive Types + * + * Declarations of all CORBA primitive types. + */ + //@{ + typedef ACE_CDR::Boolean Boolean; + typedef Boolean &Boolean_out; + + typedef ACE_CDR::Octet Octet; + typedef Octet &Octet_out; + + typedef ACE_CDR::Short Short; + typedef Short &Short_out; + + typedef ACE_CDR::UShort UShort; + typedef UShort &UShort_out; + + typedef ACE_CDR::Long Long; + typedef Long &Long_out; + + typedef ACE_CDR::ULong ULong; + typedef ULong &ULong_out; + + typedef ACE_CDR::LongLong LongLong; + typedef LongLong &LongLong_out; + + typedef ACE_CDR::ULongLong ULongLong; + typedef ULongLong &ULongLong_out; + + typedef ACE_CDR::Float Float; + typedef Float &Float_out; + + typedef ACE_CDR::Double Double; + typedef Double &Double_out; + + typedef ACE_CDR::LongDouble LongDouble; + typedef LongDouble &LongDouble_out; + + typedef ACE_CDR::Char Char; + typedef Char &Char_out; + + typedef ACE_CDR::WChar WChar; + typedef WChar &WChar_out; + //@} + + class String_var; + class String_out; + + class WString_var; + class WString_out; +}; + +#include "ace/post.h" + +#endif /* TAO_BASIC_TYPES_H */ diff --git a/TAO/tao/BiDir_Adapter.h b/TAO/tao/BiDir_Adapter.h index 36576588250..ba58aa45255 100644 --- a/TAO/tao/BiDir_Adapter.h +++ b/TAO/tao/BiDir_Adapter.h @@ -11,18 +11,26 @@ //============================================================================= #ifndef TAO_BIDIR_ADAPTER_H #define TAO_BIDIR_ADAPTER_H + #include "ace/pre.h" -#include "tao/Exception.h" +#include "ace/Service_Object.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "ace/Service_Object.h" +#include "tao/Exception.h" class TAO_ORB_Core; class TAO_Policy_Validator; + +namespace CORBA +{ + class ORB; + typedef ORB *ORB_ptr; +}; + /** * @class TAO_BiDir_Adapter * @@ -31,7 +39,6 @@ class TAO_Policy_Validator; * Class that offers an interface to the ORB to load and manipulate * BiDirGIOP library. */ - class TAO_Export TAO_BiDir_Adapter : public ACE_Service_Object { public: diff --git a/TAO/tao/Bind_Dispatcher_Guard.h b/TAO/tao/Bind_Dispatcher_Guard.h index 7e17d2e07a3..4877a8f71e2 100644 --- a/TAO/tao/Bind_Dispatcher_Guard.h +++ b/TAO/tao/Bind_Dispatcher_Guard.h @@ -14,9 +14,10 @@ #ifndef TAO_BIND_DISPATCHER_GUARD_H #define TAO_BIND_DISPATCHER_GUARD_H + #include "ace/pre.h" -#include "tao/corbafwd.h" +#include "tao/Basic_Types.h" class TAO_Reply_Dispatcher; class TAO_Transport_Mux_Strategy; diff --git a/TAO/tao/BoundsC.h b/TAO/tao/BoundsC.h index e45cf7a4e6f..57dd47c4386 100644 --- a/TAO/tao/BoundsC.h +++ b/TAO/tao/BoundsC.h @@ -26,16 +26,14 @@ #define _TAO_IDL_ORIG_BOUNDSC_H_ #include "ace/pre.h" -#include "tao/corbafwd.h" + +#include "tao/orbconf.h" +#include "tao/Exception.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "TAO_Export.h" -#include "Exception.h" -#include "CDR.h" - #if defined (TAO_EXPORT_MACRO) #undef TAO_EXPORT_MACRO #endif diff --git a/TAO/tao/CDR.h b/TAO/tao/CDR.h index f25943e7bce..ec81f878bc4 100644 --- a/TAO/tao/CDR.h +++ b/TAO/tao/CDR.h @@ -41,17 +41,19 @@ #ifndef TAO_CDR_H #define TAO_CDR_H + #include "ace/pre.h" -#include "tao/corbafwd.h" +#include "ace/CORBA_macros.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "ace/CORBA_macros.h" #include "ace/CDR_Stream.h" +#include "tao/corbafwd.h" + class TAO_ORB_Core; /** diff --git a/TAO/tao/CORBA_String.cpp b/TAO/tao/CORBA_String.cpp index 1012fffd777..a8ef7cf852b 100644 --- a/TAO/tao/CORBA_String.cpp +++ b/TAO/tao/CORBA_String.cpp @@ -7,14 +7,96 @@ #include "ace/OS.h" #include "ace/streams.h" - ACE_RCSID (tao, CORBA_String, "$Id$") +char * +CORBA::string_dup (const char *str) +{ + if (!str) + { + errno = EINVAL; + return 0; + } + + size_t len = ACE_OS::strlen (str); + + // This allocates an extra byte for the '\0'; + char * copy = CORBA::string_alloc (ACE_static_cast (CORBA::ULong, len)); + + // The memcpy() below assumes that the destination is a valid buffer. + if (copy == 0) + { + return 0; + } + + ACE_OS::memcpy (copy, + str, + len + 1); + return copy; +} + +char * +CORBA::string_alloc (CORBA::ULong len) +{ + // Allocate 1 + strlen to accomodate the null terminating character. + + char *s = 0; + ACE_NEW_RETURN (s, + char[size_t (len + 1)], + 0); + + return s; +} -// String utility support; this needs to be integrated with the ORB's -// own memory allocation subsystem. +void +CORBA::string_free (char *str) +{ + delete [] str; +} + +// **************************************************************** + +CORBA::WChar* +CORBA::wstring_dup (const WChar *const str) +{ + if (!str) + { + errno = EINVAL; + return 0; + } + + CORBA::WChar* retval = CORBA::wstring_alloc (ACE_OS::wslen (str)); + + // The wscpy() below assumes that the destination is a valid buffer. + if (retval == 0) + { + return 0; + } + + return ACE_OS::wscpy (retval, + str); +} + +CORBA::WChar* +CORBA::wstring_alloc (CORBA::ULong len) +{ + CORBA::WChar *s = 0; + ACE_NEW_RETURN (s, + CORBA::WChar [(size_t) (len + 1)], + 0); + + return s; +} + +void +CORBA::wstring_free (CORBA::WChar *const str) +{ + delete [] str; +} + +// **************************************************************** CORBA::String_var::String_var (char *p) : ptr_ (p) diff --git a/TAO/tao/CORBA_String.h b/TAO/tao/CORBA_String.h index e518c313c16..be15d747366 100644 --- a/TAO/tao/CORBA_String.h +++ b/TAO/tao/CORBA_String.h @@ -17,7 +17,6 @@ #include "ace/pre.h" -#include "tao/corbafwd.h" #include "tao/Managed_Types.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) @@ -31,6 +30,28 @@ namespace CORBA { + /** + * @name CORBA String Memory Management + * + * CORBA string memory management functions. + */ + //@{ + TAO_Export char * string_alloc (ULong len); + TAO_Export char * string_dup (const char *); + TAO_Export void string_free (char *); + //@} + + /** + * @name CORBA Wide String Memory Management + * + * CORBA wide string memory management functions. + */ + //@{ + TAO_Export WChar * wstring_alloc (ULong len); + TAO_Export WChar * wstring_dup (const WChar * const); + TAO_Export void wstring_free (WChar * const); + //@} + /** * @class String_var * @@ -120,7 +141,7 @@ namespace CORBA /// Construction from a var. String_out (CORBA::String_var &p); - /// Construction from a var. + /// Construction from a TAO_String_Manager. String_out (TAO_String_Manager &p); /// Copy constructor. @@ -239,6 +260,9 @@ namespace CORBA /// Construction from a var. WString_out (CORBA::WString_var &p); + /// Construction from a TAO_WString_Manager. + WString_out (TAO_WString_Manager &p); + /// Copy constructor. WString_out (const WString_out &s); diff --git a/TAO/tao/CORBA_String.inl b/TAO/tao/CORBA_String.inl index a6c4093675d..9157d13a864 100644 --- a/TAO/tao/CORBA_String.inl +++ b/TAO/tao/CORBA_String.inl @@ -237,6 +237,12 @@ CORBA::WString_out::WString_out (CORBA::WString_var &s) { } +ACE_INLINE +CORBA::WString_out::WString_out (TAO_WString_Manager &s) + : ptr_ (s.out ()) +{ +} + ACE_INLINE CORBA::WString_out::WString_out (const CORBA::WString_out &s) : ptr_ (s.ptr_) diff --git a/TAO/tao/ClientRequestInfo_i.h b/TAO/tao/ClientRequestInfo_i.h index b904d36e77e..0417725ebfe 100644 --- a/TAO/tao/ClientRequestInfo_i.h +++ b/TAO/tao/ClientRequestInfo_i.h @@ -19,7 +19,7 @@ #include "ace/pre.h" -#include "tao/corbafwd.h" +#include "tao/orbconf.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once diff --git a/TAO/tao/Codeset_Translator_Factory.h b/TAO/tao/Codeset_Translator_Factory.h index 1946a1db446..59fdf03f005 100644 --- a/TAO/tao/Codeset_Translator_Factory.h +++ b/TAO/tao/Codeset_Translator_Factory.h @@ -11,6 +11,7 @@ // ========================= #ifndef TAO_CODESET_TRANSLATOR_FACTORY_H #define TAO_CODESET_TRANSLATOR_FACTORY_H + #include "ace/pre.h" #include "ace/Service_Object.h" @@ -18,7 +19,6 @@ # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "tao/corbafwd.h" #include "tao/CONV_FRAMEC.h" class TAO_InputCDR; diff --git a/TAO/tao/Collocation_Resolver.h b/TAO/tao/Collocation_Resolver.h index bef36824439..919df7d3e5f 100644 --- a/TAO/tao/Collocation_Resolver.h +++ b/TAO/tao/Collocation_Resolver.h @@ -12,16 +12,23 @@ #define TAO_COLLOCATION_RESOLVER_H #include "ace/pre.h" -#include "tao/orbconf.h" +#include "ace/Service_Object.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "tao/corbafwd.h" -#include "ace/Service_Object.h" #include "ace/CORBA_macros.h" +#include "tao/TAO_Export.h" +#include "tao/Basic_Types.h" + +namespace CORBA +{ + class Object; + typedef Object *Object_ptr; +}; + /** * @class TAO_Collocation_Resolver * diff --git a/TAO/tao/Connector_Impl.h b/TAO/tao/Connector_Impl.h index 7d716df7703..1891651fe47 100644 --- a/TAO/tao/Connector_Impl.h +++ b/TAO/tao/Connector_Impl.h @@ -12,16 +12,15 @@ #ifndef TAO_CONNECTOR_IMPL_H #define TAO_CONNECTOR_IMPL_H -#include "ace/pre.h" -#include "tao/corbafwd.h" +#include "ace/pre.h" +#include "ace/Strategies_T.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "ace/Strategies_T.h" +#include "tao/Basic_Types.h" class TAO_ORB_Core; class ACE_Thread_Manager; diff --git a/TAO/tao/Connector_Registry.h b/TAO/tao/Connector_Registry.h index dd66fcaa956..3e05b982e40 100644 --- a/TAO/tao/Connector_Registry.h +++ b/TAO/tao/Connector_Registry.h @@ -16,16 +16,16 @@ #ifndef TAO_CONNECTOR_REGISTRY_H #define TAO_CONNECTOR_REGISTRY_H + #include "ace/pre.h" -#include "corbafwd.h" +#include "ace/CORBA_macros.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "Endpoint.h" -#include "ace/CORBA_macros.h" +#include "tao/Endpoint.h" // Forward declarations. class ACE_Addr; diff --git a/TAO/tao/Dynamic_Adapter.h b/TAO/tao/Dynamic_Adapter.h index 70f0acfd028..84993365076 100644 --- a/TAO/tao/Dynamic_Adapter.h +++ b/TAO/tao/Dynamic_Adapter.h @@ -13,17 +13,48 @@ #ifndef TAO_DYNAMIC_ADAPTER_H #define TAO_DYNAMIC_ADAPTER_H -#include "ace/pre.h" -#include "tao/corbafwd.h" +#include "ace/pre.h" +#include "ace/Service_Object.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "ace/Service_Object.h" #include "ace/CORBA_macros.h" +#include "tao/TAO_Export.h" +#include "tao/Basic_Types.h" + +namespace CORBA +{ + class Object; + typedef Object *Object_ptr; + + class ORB; + typedef ORB *ORB_ptr; + + class NVList; + typedef NVList *NVList_ptr; + + class NamedValue; + typedef NamedValue *NamedValue_ptr; + + class ExceptionList; + typedef ExceptionList *ExceptionList_ptr; + + class Request; + typedef Request *Request_ptr; + + class Context; + typedef Context *Context_ptr; + + class ServerRequest; + typedef ServerRequest *ServerRequest_ptr; + + typedef ULong Flags; +}; + class TAO_GIOP_Twoway_Invocation; /** diff --git a/TAO/tao/Encodable.h b/TAO/tao/Encodable.h index fd25ba47e90..11349d26fac 100644 --- a/TAO/tao/Encodable.h +++ b/TAO/tao/Encodable.h @@ -18,12 +18,17 @@ #define TAO_ENCODABLE_H_ #include "ace/pre.h" -#include "tao/corbafwd.h" +#include "tao/Basic_Types.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ +#include "tao/TAO_Export.h" + +class TAO_OutputCDR; +class TAO_InputCDR; + /** * @class TAO_Encodable * diff --git a/TAO/tao/Endpoint.h b/TAO/tao/Endpoint.h index 8b7934bbb29..e8896d88821 100644 --- a/TAO/tao/Endpoint.h +++ b/TAO/tao/Endpoint.h @@ -16,16 +16,15 @@ #ifndef TAO_ENDPOINT_H #define TAO_ENDPOINT_H -#include "ace/pre.h" -#include "tao/corbafwd.h" +#include "ace/pre.h" +#include "ace/Synch_T.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "ace/Synch_T.h" - +#include "tao/corbafwd.h" /** * @class TAO_Endpoint diff --git a/TAO/tao/Exception.h b/TAO/tao/Exception.h index d90e9fc5503..aff76537c5b 100644 --- a/TAO/tao/Exception.h +++ b/TAO/tao/Exception.h @@ -17,8 +17,7 @@ #define TAO_EXCEPTION_H #include "ace/pre.h" - -#include "tao/corbafwd.h" +#include "ace/CORBA_macros.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once @@ -31,10 +30,12 @@ #define TAO_RAISE(EXCEPTION) #endif /* TAO_HAS_EXCEPTIONS */ -#include "ace/CORBA_macros.h" #include "ace/SStringfwd.h" #include "ace/iosfwd.h" +#include "tao/TAO_Export.h" +#include "tao/Basic_Types.h" + #include #include /* For "FILE" typedef. */ @@ -45,6 +46,21 @@ class TAO_InputCDR; namespace CORBA { + class TypeCode; + typedef TypeCode *TypeCode_ptr; + + class Any; + typedef Any *Any_ptr; + + enum CompletionStatus + { + // = Completion Status for System exceptions + + COMPLETED_YES, // successful or exceptional completion + COMPLETED_NO, // didn't change any state; retry is OK + COMPLETED_MAYBE // can't say what happened; retry unsafe + }; + /** * @class Exception * diff --git a/TAO/tao/Managed_Types.h b/TAO/tao/Managed_Types.h index dedd12b52c1..f64d317ba57 100644 --- a/TAO/tao/Managed_Types.h +++ b/TAO/tao/Managed_Types.h @@ -13,14 +13,17 @@ #ifndef TAO_MANAGED_TYPES_H #define TAO_MANAGED_TYPES_H + #include "ace/pre.h" -#include "tao/corbafwd.h" +#include "tao/Basic_Types.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ +#include "tao/TAO_Export.h" + /****************************************************************/ /** diff --git a/TAO/tao/OBV_Constants.h b/TAO/tao/OBV_Constants.h new file mode 100644 index 00000000000..079629086da --- /dev/null +++ b/TAO/tao/OBV_Constants.h @@ -0,0 +1,49 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file OBV_Constants.h + * + * $Id$ + * + * Constants related to valuetypes, but also used by type codes. + * + * @author Copyright 1995 by Sun Microsystems, Inc. + * @author Chris Cleeland + * @author Douglas C. Schmidt + */ +//============================================================================= + +#ifndef TAO_ORV_CONSTANTS_H +#define TAO_ORV_CONSTANTS_H + +#include "ace/pre.h" + +#include "tao/Basic_Types.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/TAO_Export.h" + +namespace CORBA +{ + class TypeCode; + typedef TypeCode *TypeCode_ptr; + + typedef CORBA::Short Visibility; + typedef CORBA::Short_out Visibility_out; + extern TAO_Export CORBA::TypeCode_ptr _tc_Visibility; + + extern TAO_Export const CORBA::Short PRIVATE_MEMBER; + extern TAO_Export const CORBA::Short PUBLIC_MEMBER; + + typedef CORBA::Short ValueModifier; + typedef CORBA::Short_out ValueModifier_out; + extern TAO_Export CORBA::TypeCode_ptr _tc_ValueModifier; +}; + +#include "ace/post.h" + +#endif /* TAO_ORBCONF_H */ diff --git a/TAO/tao/Object_Loader.h b/TAO/tao/Object_Loader.h index 8e0799bd15f..edab58ebd10 100644 --- a/TAO/tao/Object_Loader.h +++ b/TAO/tao/Object_Loader.h @@ -10,15 +10,25 @@ #ifndef TAO_OBJECT_LOADER_H #define TAO_OBJECT_LOADER_H + #include "ace/pre.h" -#include "tao/Exception.h" +#include "ace/Service_Object.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "ace/Service_Object.h" +#include "tao/Exception.h" + +namespace CORBA +{ + class Object; + typedef Object *Object_ptr; + + class ORB; + typedef ORB *ORB_ptr; +}; /** * @class TAO_Object_Loader diff --git a/TAO/tao/Resource_Factory.h b/TAO/tao/Resource_Factory.h index 46a2c30a67b..9e014bb1cb1 100644 --- a/TAO/tao/Resource_Factory.h +++ b/TAO/tao/Resource_Factory.h @@ -23,10 +23,9 @@ # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "tao/TAO_Export.h" #include "ace/Unbounded_Set.h" -#include "CONV_FRAMEC.h" #include "ace/SString.h" +#include "tao/CONV_FRAMEC.h" class TAO_Protocol_Factory; class TAO_Acceptor_Registry; diff --git a/TAO/tao/Sequence.cpp b/TAO/tao/Sequence.cpp index f17948d7ddd..4b3b2a9395c 100644 --- a/TAO/tao/Sequence.cpp +++ b/TAO/tao/Sequence.cpp @@ -1,6 +1,7 @@ // $Id$ #include "tao/Sequence.h" +#include "tao/CORBA_String.h" #if !defined (__ACE_INLINE__) #include "tao/Sequence.i" diff --git a/TAO/tao/TAO.dsp b/TAO/tao/TAO.dsp index 4bbce758c42..8546e93a4dc 100644 --- a/TAO/tao/TAO.dsp +++ b/TAO/tao/TAO.dsp @@ -1052,6 +1052,10 @@ SOURCE=.\Acceptor_Filter.h # End Source File # Begin Source File +SOURCE=.\Acceptor_Impl.h +# End Source File +# Begin Source File + SOURCE=.\Acceptor_Registry.h # End Source File # Begin Source File @@ -1128,6 +1132,10 @@ SOURCE=.\Basic_Arguments.h # End Source File # Begin Source File +SOURCE=.\Basic_Types.h +# End Source File +# Begin Source File + SOURCE=.\BD_String_Argument_T.h # End Source File # Begin Source File @@ -1220,6 +1228,10 @@ SOURCE=.\Connection_Purging_Strategy.h # End Source File # Begin Source File +SOURCE=.\Connector_Impl.h +# End Source File +# Begin Source File + SOURCE=.\Connector_Registry.h # End Source File # Begin Source File @@ -1648,6 +1660,10 @@ SOURCE=.\Objref_VarOut_T.h # End Source File # Begin Source File +SOURCE=.\OBV_Constants.h +# End Source File +# Begin Source File + SOURCE=.\OctetSeqC.h # End Source File # Begin Source File @@ -2052,6 +2068,10 @@ SOURCE=.\Acceptor_Filter.i # End Source File # Begin Source File +SOURCE=.\Acceptor_Impl.i +# End Source File +# Begin Source File + SOURCE=.\Acceptor_Registry.i # End Source File # Begin Source File @@ -2156,6 +2176,10 @@ SOURCE=.\Connection_Purging_Strategy.inl # End Source File # Begin Source File +SOURCE=.\Connector_Impl.inl +# End Source File +# Begin Source File + SOURCE=.\CONV_FRAMEC.i # End Source File # Begin Source File @@ -2700,6 +2724,11 @@ SOURCE=.\tao.rc # PROP Default_Filter "" # Begin Source File +SOURCE=.\Acceptor_Impl.cpp +# PROP Exclude_From_Build 1 +# End Source File +# Begin Source File + SOURCE=.\Any_Array_Impl_T.cpp # PROP Exclude_From_Build 1 # End Source File @@ -2750,6 +2779,23 @@ SOURCE=.\Codeset_Translator_Factory_T.cpp # End Source File # Begin Source File +SOURCE=.\Connector_Impl.cpp + +!IF "$(CFG)" == "TAO DLL - Win32 MFC Release" + +!ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Debug" + +!ELSEIF "$(CFG)" == "TAO DLL - Win32 Release" + +!ELSEIF "$(CFG)" == "TAO DLL - Win32 Debug" + +# PROP Exclude_From_Build 1 + +!ENDIF + +# End Source File +# Begin Source File + SOURCE=.\Fixed_Array_Argument_T.cpp # PROP Exclude_From_Build 1 # End Source File diff --git a/TAO/tao/TypeCodeFactory_Adapter.h b/TAO/tao/TypeCodeFactory_Adapter.h index 54aa09bfaac..7b730040e79 100644 --- a/TAO/tao/TypeCodeFactory_Adapter.h +++ b/TAO/tao/TypeCodeFactory_Adapter.h @@ -15,13 +15,14 @@ #define TAO_TYPECODEFACTORY_ADAPTER_H #include "ace/pre.h" -#include "tao/Exception.h" +#include "ace/Service_Object.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "ace/Service_Object.h" +#include "tao/Exception.h" +#include "tao/OBV_Constants.h" namespace CORBA { diff --git a/TAO/tao/Typecode.h b/TAO/tao/Typecode.h index 326c398d6f9..d0b7af32b94 100644 --- a/TAO/tao/Typecode.h +++ b/TAO/tao/Typecode.h @@ -25,12 +25,14 @@ # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ +#include "tao/orbconf.h" #include "tao/Exception.h" #include "tao/Pseudo_VarOut_T.h" #include "tao/Object_Argument_T.h" #include "tao/Arg_Traits_T.h" +#include "tao/OBV_Constants.h" -// Forward declarations +// Forward declarations. class TAO_InputCDR; class TAO_OutputCDR; @@ -46,6 +48,64 @@ namespace CORBA typedef TAO_Pseudo_Var_T TypeCode_var; typedef TAO_Pseudo_Out_T TypeCode_out; + enum TCKind + { + // = Kinds of typecodes. + + // Do not change these enum values, or duplicate them if you need + // to add values. They are used to index tables, and if you + // change the values you'll need to find and update all of those + // tables. The values are also part of the Common Data + // Representation, and hence are part of IIOP and other ORB + // protocols. + + tk_null = 0, + tk_void = 1, + tk_short = 2, + tk_long = 3, + tk_ushort = 4, + tk_ulong = 5, + tk_float = 6, + tk_double = 7, + tk_boolean = 8, + tk_char = 9, + tk_octet = 10, + tk_any = 11, + tk_TypeCode = 12, + tk_Principal = 13, + tk_objref = 14, + tk_struct = 15, + tk_union = 16, + tk_enum = 17, + tk_string = 18, + tk_sequence = 19, + tk_array = 20, + tk_alias = 21, + tk_except = 22, + + tk_longlong = 23, + tk_ulonglong = 24, + tk_longdouble = 25, + tk_wchar = 26, + tk_wstring = 27, + tk_fixed = 28, + tk_value = 29, + tk_value_box = 30, + tk_native = 31, + tk_abstract_interface = 32, + tk_local_interface = 33, + tk_component = 34, + tk_home = 35, + tk_event = 36, + + // This symbol is not defined by CORBA 3.0. It's used to speed up + // dispatch based on TCKind values, and lets many important ones + // just be table lookups. It must always be the last enum value!! + + TC_KIND_COUNT + }; + typedef TCKind &TCKind_out; + /** * @class TypeCode * @@ -637,12 +697,17 @@ private: }; -// These operators are too complex to be inline.... TAO_Export CORBA::Boolean operator<< (TAO_OutputCDR& cdr, const CORBA::TypeCode *x); TAO_Export CORBA::Boolean operator>> (TAO_InputCDR& cdr, CORBA::TypeCode *&x); +TAO_Export CORBA::Boolean operator<< (TAO_OutputCDR &, + const CORBA::TCKind &); + +TAO_Export CORBA::Boolean operator>> (TAO_InputCDR &, + CORBA::TCKind &); + #if defined (__ACE_INLINE__) # include "tao/Typecode.i" #endif /* __ACE_INLINE__ */ diff --git a/TAO/tao/corbafwd.cpp b/TAO/tao/corbafwd.cpp index 1f1c301dc48..659db90faf8 100644 --- a/TAO/tao/corbafwd.cpp +++ b/TAO/tao/corbafwd.cpp @@ -6,63 +6,10 @@ # include "tao/corbafwd.i" #endif /* ! __ACE_INLINE__ */ -#include "ace/OS.h" - ACE_RCSID (tao, corbafwd, "$Id$") -char * -CORBA::string_dup (const char *str) -{ - if (!str) - { - errno = EINVAL; - return 0; - } - - size_t len = ACE_OS::strlen (str); - - // This allocates an extra byte for the '\0'; - char * copy = CORBA::string_alloc (ACE_static_cast (CORBA::ULong, len)); - - // The memcpy() below assumes that the destination is a valid buffer. - if (copy == 0) - { - return 0; - } - - ACE_OS::memcpy (copy, - str, - len + 1); - return copy; -} - -// ---------------------------------------------------------------------- -// Wide strings -// ---------------------------------------------------------------------- - -CORBA::WChar* -CORBA::wstring_dup (const WChar *const str) -{ - if (!str) - { - errno = EINVAL; - return 0; - } - - CORBA::WChar* retval = CORBA::wstring_alloc (ACE_OS::wslen (str)); - - // The wscpy() below assumes that the destination is a valid buffer. - if (retval == 0) - { - return 0; - } - - return ACE_OS::wscpy (retval, - str); -} - namespace CORBA { // **************************************************************** diff --git a/TAO/tao/corbafwd.h b/TAO/tao/corbafwd.h index 4ce1478cf7f..7eb25bb0968 100644 --- a/TAO/tao/corbafwd.h +++ b/TAO/tao/corbafwd.h @@ -30,6 +30,9 @@ // @@ Why is this here? It should be moved to IOPC.h. // -Ossama +// @@ Maybe this should not be here, but please, no +// more hacking on generated files +// -Jeff #if defined (HPUX) # if defined (IOR) /* HP-UX 11.11 defines IOR in /usr/include/pa/inline.h @@ -44,6 +47,8 @@ #include "tao/orbconf.h" #include "tao/TAO_Export.h" +#include "tao/Basic_Types.h" +#include "tao/OBV_Constants.h" #include "ace/OS_Memory.h" @@ -98,52 +103,6 @@ template class TAO_Unbounded_Sequence; */ namespace CORBA { - /** - * @name CORBA Primitive Types - * - * Declarations of all CORBA primitive types. - */ - //@{ - typedef ACE_CDR::Boolean Boolean; - typedef Boolean &Boolean_out; - - typedef ACE_CDR::Octet Octet; - typedef Octet &Octet_out; - - typedef ACE_CDR::Short Short; - typedef Short &Short_out; - - typedef ACE_CDR::UShort UShort; - typedef UShort &UShort_out; - - typedef ACE_CDR::Long Long; - typedef Long &Long_out; - - typedef ACE_CDR::ULong ULong; - typedef ULong &ULong_out; - - typedef ACE_CDR::LongLong LongLong; - typedef LongLong &LongLong_out; - - typedef ACE_CDR::ULongLong ULongLong; - typedef ULongLong &ULongLong_out; - - typedef ACE_CDR::Float Float; - typedef Float &Float_out; - - typedef ACE_CDR::Double Double; - typedef Double &Double_out; - - typedef ACE_CDR::LongDouble LongDouble; - typedef LongDouble &LongDouble_out; - - typedef ACE_CDR::Char Char; - typedef Char &Char_out; - - typedef ACE_CDR::WChar WChar; - typedef WChar &WChar_out; - //@} - // enum values defined in tao/NVList.h, bitwise ORed. typedef ULong Flags; @@ -151,34 +110,6 @@ namespace CORBA class TypeCode; typedef TypeCode * TypeCode_ptr; - /** - * @name CORBA String Memory Management - * - * CORBA string memory management functions. - */ - //@{ - TAO_NAMESPACE_INLINE_FUNCTION char * string_alloc (ULong len); - extern TAO_Export char * string_dup (const char *); - TAO_NAMESPACE_INLINE_FUNCTION void string_free (char *); - //@} - - class String_var; - class String_out; - - /** - * @name CORBA Wide String Memory Management - * - * CORBA wide string memory management functions. - */ - //@{ - TAO_NAMESPACE_INLINE_FUNCTION WChar * wstring_alloc (ULong len); - extern TAO_Export WChar * wstring_dup (const WChar * const); - TAO_NAMESPACE_INLINE_FUNCTION void wstring_free (WChar * const); - //@} - - class WString_var; - class WString_out; - class StringSeq; extern TAO_Export TypeCode_ptr _tc_StringSeq; @@ -248,17 +179,6 @@ namespace CORBA typedef ValueFactoryBase *ValueFactory; class DefaultValueRefCountBase; - typedef CORBA::Short Visibility; - typedef CORBA::Short_out Visibility_out; - extern TAO_Export CORBA::TypeCode_ptr _tc_Visibility; - - extern TAO_Export const CORBA::Short PRIVATE_MEMBER; - extern TAO_Export const CORBA::Short PUBLIC_MEMBER; - - typedef CORBA::Short ValueModifier; - typedef CORBA::Short_out ValueModifier_out; - extern TAO_Export CORBA::TypeCode_ptr _tc_ValueModifier; - extern TAO_Export const CORBA::Short VM_NONE; extern TAO_Export const CORBA::Short VM_CUSTOM; extern TAO_Export const CORBA::Short VM_ABSTRACT; @@ -267,15 +187,6 @@ namespace CORBA class AbstractBase; typedef AbstractBase * AbstractBase_ptr; - enum CompletionStatus - { - // = Completion Status for System exceptions - - COMPLETED_YES, // successful or exceptional completion - COMPLETED_NO, // didn't change any state; retry is OK - COMPLETED_MAYBE // can't say what happened; retry unsafe - }; - enum exception_type { // = Exception type. @@ -373,64 +284,6 @@ namespace CORBA extern TAO_Export void release (Context_ptr); //@} - enum TCKind - { - // = Kinds of typecodes. - - // Do not change these enum values, or duplicate them if you need - // to add values. They are used to index tables, and if you - // change the values you'll need to find and update all of those - // tables. The values are also part of the Common Data - // Representation, and hence are part of IIOP and other ORB - // protocols. - - tk_null = 0, - tk_void = 1, - tk_short = 2, - tk_long = 3, - tk_ushort = 4, - tk_ulong = 5, - tk_float = 6, - tk_double = 7, - tk_boolean = 8, - tk_char = 9, - tk_octet = 10, - tk_any = 11, - tk_TypeCode = 12, - tk_Principal = 13, - tk_objref = 14, - tk_struct = 15, - tk_union = 16, - tk_enum = 17, - tk_string = 18, - tk_sequence = 19, - tk_array = 20, - tk_alias = 21, - tk_except = 22, - - tk_longlong = 23, - tk_ulonglong = 24, - tk_longdouble = 25, - tk_wchar = 26, - tk_wstring = 27, - tk_fixed = 28, - tk_value = 29, - tk_value_box = 30, - tk_native = 31, - tk_abstract_interface = 32, - tk_local_interface = 33, - tk_component = 34, - tk_home = 35, - tk_event = 36, - - // This symbol is not defined by CORBA 3.0. It's used to speed up - // dispatch based on TCKind values, and lets many important ones - // just be table lookups. It must always be the last enum value!! - - TC_KIND_COUNT - }; - typedef TCKind &TCKind_out; - /** * @name TypeCode Constants * @@ -858,13 +711,6 @@ operator<< (TAO_OutputCDR&, const TAO_opaque&); TAO_Export CORBA::Boolean operator>> (TAO_InputCDR&, TAO_opaque&); -TAO_Export CORBA::Boolean -operator<< (TAO_OutputCDR &, const CORBA::TCKind &); - -TAO_Export CORBA::Boolean -operator>> (TAO_InputCDR &, CORBA::TCKind &); - - #if defined (__ACE_INLINE__) # include "tao/corbafwd.i" #endif /* ! __ACE_INLINE__ */ diff --git a/TAO/tao/corbafwd.i b/TAO/tao/corbafwd.i index 4d5e15c680a..514257cfaf2 100644 --- a/TAO/tao/corbafwd.i +++ b/TAO/tao/corbafwd.i @@ -2,42 +2,6 @@ // // $Id$ -ACE_INLINE char * -CORBA::string_alloc (CORBA::ULong len) -{ - // Allocate 1 + strlen to accomodate the null terminating character. - - char *s = 0; - ACE_NEW_RETURN (s, - char[size_t (len + 1)], - 0); - - return s; -} - -ACE_INLINE void -CORBA::string_free (char *str) -{ - delete [] str; -} - -ACE_INLINE CORBA::WChar* -CORBA::wstring_alloc (CORBA::ULong len) -{ - CORBA::WChar *s = 0; - ACE_NEW_RETURN (s, - CORBA::WChar [(size_t) (len + 1)], - 0); - - return s; -} - -ACE_INLINE void -CORBA::wstring_free (CORBA::WChar *const str) -{ - delete [] str; -} - ACE_INLINE CORBA::Environment& CORBA::default_environment (void) { -- cgit v1.2.1