diff options
Diffstat (limited to 'ace/Global_Macros.h')
-rw-r--r-- | ace/Global_Macros.h | 135 |
1 files changed, 23 insertions, 112 deletions
diff --git a/ace/Global_Macros.h b/ace/Global_Macros.h index 9b6579f87de..83ea5603395 100644 --- a/ace/Global_Macros.h +++ b/ace/Global_Macros.h @@ -28,7 +28,6 @@ #endif /* ACE_LACKS_PRAGMA_ONCE */ #include "ace/config-lite.h" -#include "ace/Assert.h" // For ACE_ASSERT // Start Global Macros # define ACE_BEGIN_DUMP ACE_LIB_TEXT ("\n====\n(%P|%t|%x)\n") @@ -49,9 +48,6 @@ # if defined (_DEBUG) && !defined (ACE_HAS_WINCE) && !defined (__BORLANDC__) # include /**/ <crtdbg.h> -// Open versioned namespace, if enabled by the user. -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - class ACE_Export ACE_No_Heap_Check { public: @@ -62,10 +58,6 @@ public: private: int old_state; }; - -// Close versioned namespace, if enabled by the user. -ACE_END_VERSIONED_NAMESPACE_DECL - # define ACE_NO_HEAP_CHECK ACE_No_Heap_Check ____no_heap; # else /* !_DEBUG */ # define ACE_NO_HEAP_CHECK @@ -78,7 +70,7 @@ ACE_END_VERSIONED_NAMESPACE_DECL # define ACE_ITOA(X) #X // Create a string of a server address with a "host:port" format. -# define ACE_SERVER_ADDRESS(H,P) H ACE_TEXT(":") P +# define ACE_SERVER_ADDRESS(H,P) H ACE_LIB_TEXT(":") P // A couple useful inline functions for checking whether bits are // enabled or disabled. @@ -594,27 +586,6 @@ static ACE_Static_Svc_##SERVICE_CLASS ace_static_svc_##SERVICE_CLASS; #endif /* !ACE_LACKS_STATIC_CONSTRUCTORS */ -// Preprocessor symbols will not be expanded if they are -// concatenated. Force the preprocessor to expand them during the -// argument prescan by calling a macro that itself calls another that -// performs the actual concatenation. -#define ACE_PREPROC_CONCATENATE_IMPL(A,B) A ## B -#define ACE_PREPROC_CONCATENATE(A,B) ACE_PREPROC_CONCATENATE_IMPL(A,B) - -#if defined (ACE_HAS_VERSIONED_NAMESPACE) && ACE_HAS_VERSIONED_NAMESPACE == 1 -// Preprocessor symbols will not be expanded if they are -// concatenated. Force the preprocessor to expand them during the -// argument prescan by calling a macro that itself calls another that -// performs the actual concatenation. -# define ACE_MAKE_SVC_CONFIG_FUNCTION_NAME(PREFIX,VERSIONED_NAMESPACE,SERVICE_CLASS) PREFIX ## _ ## VERSIONED_NAMESPACE ## _ ## SERVICE_CLASS -#else -# define ACE_MAKE_SVC_CONFIG_FUNCTION_NAME(PREFIX,VERSIONED_NAMESPACE,SERVICE_CLASS) PREFIX ## _ ## SERVICE_CLASS -#endif /* ACE_HAS_VERSIONED_NAMESPACE == 1 */ - -#define ACE_MAKE_SVC_CONFIG_FACTORY_NAME(VERSIONED_NAMESPACE,SERVICE_CLASS) ACE_MAKE_SVC_CONFIG_FUNCTION_NAME(_make,VERSIONED_NAMESPACE,SERVICE_CLASS) -#define ACE_MAKE_SVC_CONFIG_GOBBLER_NAME(VERSIONED_NAMESPACE,SERVICE_CLASS) ACE_MAKE_SVC_CONFIG_FUNCTION_NAME(_gobble,VERSIONED_NAMESPACE,SERVICE_CLASS) - - /// Declare the factory method used to create dynamically loadable /// services. /** @@ -631,20 +602,9 @@ static ACE_Static_Svc_##SERVICE_CLASS ace_static_svc_##SERVICE_CLASS; * implements the service. * */ -#if defined (_MSC_VER) && _MSC_VER <= 1200 -// MSVC++ 6's preprocessor can't handle macro expansions required by -// the versioned namespace support. *sigh* -/** - * @todo Remove this macro once we drop MSVC++ 6 support. - */ -# define ACE_FACTORY_DECLARE(CLS,SERVICE_CLASS) \ -extern "C" CLS##_Export ACE_Service_Object * \ -_make_ ## SERVICE_CLASS (ACE_Service_Object_Exterminator *); -#else -# define ACE_FACTORY_DECLARE(CLS,SERVICE_CLASS) \ -extern "C" CLS##_Export ACE_VERSIONED_NAMESPACE_NAME::ACE_Service_Object * \ -ACE_MAKE_SVC_CONFIG_FACTORY_NAME(ACE_VERSIONED_NAMESPACE_NAME,SERVICE_CLASS) (ACE_Service_Object_Exterminator *); -#endif /* _MSC_VER <= 1200*/ +#define ACE_FACTORY_DECLARE(CLS,SERVICE_CLASS) \ +extern "C" CLS##_Export ACE_Service_Object *\ +_make_##SERVICE_CLASS (ACE_Service_Object_Exterminator *); /// Define the factory method (and destructor) for a dynamically /// loadable service. @@ -662,42 +622,19 @@ ACE_MAKE_SVC_CONFIG_FACTORY_NAME(ACE_VERSIONED_NAMESPACE_NAME,SERVICE_CLASS) (AC */ # define ACE_Local_Service_Export -#if defined (_MSC_VER) && _MSC_VER <= 1200 -// MSVC++ 6's preprocessor can't handle macro expansions required by -// the versioned namespace support. *sigh* -/** - * @todo Remove this macro once we drop MSVC++ 6 support. - */ # define ACE_FACTORY_DEFINE(CLS,SERVICE_CLASS) \ -void _gobble_ ## SERVICE_CLASS (void *p) { \ - ACE_Service_Object * _p = \ - static_cast<ACE_Service_Object *> (p); \ +void _gobble_##SERVICE_CLASS (void *p) { \ + ACE_Service_Object *_p = static_cast<ACE_Service_Object *> (p); \ ACE_ASSERT (_p != 0); \ delete _p; } \ extern "C" CLS##_Export ACE_Service_Object *\ -_make_ ## SERVICE_CLASS (ACE_Service_Object_Exterminator *gobbler) \ -{ \ - ACE_TRACE (#SERVICE_CLASS); \ - if (gobbler != 0) \ - *gobbler = (ACE_Service_Object_Exterminator) _gobble_ ## SERVICE_CLASS; \ - return new SERVICE_CLASS; \ -} -#else -# define ACE_FACTORY_DEFINE(CLS,SERVICE_CLASS) \ -void ACE_MAKE_SVC_CONFIG_GOBBLER_NAME(ACE_VERSIONED_NAMESPACE_NAME,SERVICE_CLASS) (void *p) { \ - ACE_VERSIONED_NAMESPACE_NAME::ACE_Service_Object * _p = \ - static_cast< ACE_VERSIONED_NAMESPACE_NAME::ACE_Service_Object *> (p); \ - ACE_ASSERT (_p != 0); \ - delete _p; } \ -extern "C" CLS##_Export ACE_VERSIONED_NAMESPACE_NAME::ACE_Service_Object *\ -ACE_MAKE_SVC_CONFIG_FACTORY_NAME(ACE_VERSIONED_NAMESPACE_NAME,SERVICE_CLASS) (ACE_Service_Object_Exterminator *gobbler) \ +_make_##SERVICE_CLASS (ACE_Service_Object_Exterminator *gobbler) \ { \ ACE_TRACE (#SERVICE_CLASS); \ if (gobbler != 0) \ - *gobbler = (ACE_Service_Object_Exterminator) ACE_MAKE_SVC_CONFIG_GOBBLER_NAME(ACE_VERSIONED_NAMESPACE_NAME,SERVICE_CLASS); \ + *gobbler = (ACE_Service_Object_Exterminator) _gobble_##SERVICE_CLASS; \ return new SERVICE_CLASS; \ } -#endif /* _MSC_VER <= 1200 */ /** * For service classes scoped within namespaces, use this macro in @@ -725,58 +662,26 @@ ACE_MAKE_SVC_CONFIG_FACTORY_NAME(ACE_VERSIONED_NAMESPACE_NAME,SERVICE_CLASS) (AC * this will ensure unique generated signatures for the various C * style functions. */ -#if defined (_MSC_VER) && _MSC_VER <= 1200 -// MSVC++ 6's preprocessor can't handle macro expansions required by -// the versioned namespace support. *sigh* -/** - * @todo Remove this macro once we drop MSVC++ 6 support. - */ # define ACE_FACTORY_NAMESPACE_DEFINE(CLS,SERVICE_CLASS,NAMESPACE_CLASS) \ -void _gobble_ ## SERVICE_CLASS (void *p) { \ - ACE_Service_Object * _p = \ - static_cast<ACE_Service_Object *> (p); \ +void _gobble_##SERVICE_CLASS (void *p) { \ + ACE_Service_Object *_p = static_cast<ACE_Service_Object *> (p); \ ACE_ASSERT (_p != 0); \ delete _p; } \ extern "C" CLS##_Export ACE_Service_Object *\ -_make_ ## SERVICE_CLASS (ACE_Service_Object_Exterminator *gobbler) \ -{ \ - ACE_TRACE (#SERVICE_CLASS); \ - if (gobbler != 0) \ - *gobbler = (ACE_Service_Object_Exterminator) _gobble_ ## SERVICE_CLASS; \ - return new NAMESPACE_CLASS; \ -} -#else -# define ACE_FACTORY_NAMESPACE_DEFINE(CLS,SERVICE_CLASS,NAMESPACE_CLASS) \ -void ACE_MAKE_SVC_CONFIG_GOBBLER_NAME(ACE_VERSIONED_NAMESPACE_NAME,SERVICE_CLASS) (void *p) { \ - ACE_VERSIONED_NAMESPACE_NAME::ACE_Service_Object * _p = \ - static_cast< ACE_VERSIONED_NAMESPACE_NAME::ACE_Service_Object *> (p); \ - ACE_ASSERT (_p != 0); \ - delete _p; } \ -extern "C" CLS##_Export ACE_VERSIONED_NAMESPACE_NAME::ACE_Service_Object *\ -ACE_MAKE_SVC_CONFIG_FACTORY_NAME(ACE_VERSIONED_NAMESPACE_NAME,SERVICE_CLASS) (ACE_Service_Object_Exterminator *gobbler) \ +_make_##SERVICE_CLASS (ACE_Service_Object_Exterminator *gobbler) \ { \ ACE_TRACE (#SERVICE_CLASS); \ if (gobbler != 0) \ - *gobbler = (ACE_Service_Object_Exterminator) ACE_MAKE_SVC_CONFIG_GOBBLER_NAME(ACE_VERSIONED_NAMESPACE_NAME,SERVICE_CLASS); \ + *gobbler = (ACE_Service_Object_Exterminator) _gobble_##SERVICE_CLASS; \ return new NAMESPACE_CLASS; \ } -#endif /* _MSC_VER <= 1200 */ /// The canonical name for a service factory method -#if defined (_MSC_VER) && _MSC_VER <= 1200 -// MSVC++ 6's preprocessor can't handle macro expansions required by -// the versioned namespace support. *sigh* -/** - * @todo Remove this macro once we drop MSVC++ 6 support. - */ -# define ACE_SVC_NAME(SERVICE_CLASS) _make_ ## SERVICE_CLASS -#else -# define ACE_SVC_NAME(SERVICE_CLASS) ACE_MAKE_SVC_CONFIG_FACTORY_NAME(ACE_VERSIONED_NAMESPACE_NAME,SERVICE_CLASS) -#endif /* ACE_SVC_NAME */ +#define ACE_SVC_NAME(SERVICE_CLASS) _make_##SERVICE_CLASS /// The canonical way to invoke (i.e. construct) a service factory /// method. -#define ACE_SVC_INVOKE(SERVICE_CLASS) ACE_SVC_NAME(SERVICE_CLASS) (0) +#define ACE_SVC_INVOKE(SERVICE_CLASS) _make_##SERVICE_CLASS (0) //@} @@ -942,9 +847,15 @@ ACE_MAKE_SVC_CONFIG_FACTORY_NAME(ACE_VERSIONED_NAMESPACE_NAME,SERVICE_CLASS) (AC # define ACE_SEH_EXCEPT(X) while (0) # define ACE_SEH_FINALLY if (1) # elif defined(__BORLANDC__) -# define ACE_SEH_TRY try -# define ACE_SEH_EXCEPT(X) __except(X) -# define ACE_SEH_FINALLY __finally +# if (__BORLANDC__ >= 0x0530) /* Borland C++ Builder 3.0 */ +# define ACE_SEH_TRY try +# define ACE_SEH_EXCEPT(X) __except(X) +# define ACE_SEH_FINALLY __finally +# else +# define ACE_SEH_TRY if (1) +# define ACE_SEH_EXCEPT(X) while (0) +# define ACE_SEH_FINALLY if (1) +# endif # elif defined (__IBMCPP__) && (__IBMCPP__ >= 400) # define ACE_SEH_TRY if (1) # define ACE_SEH_EXCEPT(X) while (0) |