diff options
Diffstat (limited to 'ace/Global_Macros.h')
-rw-r--r-- | ace/Global_Macros.h | 420 |
1 files changed, 0 insertions, 420 deletions
diff --git a/ace/Global_Macros.h b/ace/Global_Macros.h deleted file mode 100644 index 15a1b697295..00000000000 --- a/ace/Global_Macros.h +++ /dev/null @@ -1,420 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Global_Macros.h - * - * $Id$ - * - * @author Douglas C. Schmidt <schmidt@cs.wustl.edu> - * @author Jesper S. M|ller<stophph@diku.dk> - * @author and a cast of thousands... - * @This one is split from the famous OS.h - */ -//============================================================================= - -#ifndef ACE_GLOBAL_MACROS_H -#define ACE_GLOBAL_MACROS_H - -#include "ace/pre.h" - -// Included just keep compilers that see #pragma dierctive first -// happy. -#include "ace/OS_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -// Start Global Macros -# define ACE_BEGIN_DUMP ACE_LIB_TEXT ("\n====\n(%P|%t|%x)") -# define ACE_END_DUMP ACE_LIB_TEXT ("====\n") - -# if defined (ACE_NDEBUG) -# define ACE_DB(X) -# else -# define ACE_DB(X) X -# endif /* ACE_NDEBUG */ - -// ACE_NO_HEAP_CHECK macro can be used to suppress false report of -// memory leaks. It turns off the built-in heap checking until the -// block is left. The old state will then be restored Only used for -// Win32 (in the moment). -# if defined (ACE_WIN32) - -# if defined (_DEBUG) && !defined (ACE_HAS_WINCE) && !defined (__BORLANDC__) -# include /**/ <crtdbg.h> - -class ACE_OS_Export ACE_No_Heap_Check -{ -public: - ACE_No_Heap_Check (void) - : old_state (_CrtSetDbgFlag (_CRTDBG_REPORT_FLAG)) - { _CrtSetDbgFlag (old_state & ~_CRTDBG_ALLOC_MEM_DF);} - ~ACE_No_Heap_Check (void) { _CrtSetDbgFlag (old_state);} -private: - int old_state; -}; -# define ACE_NO_HEAP_CHECK ACE_No_Heap_Check ____no_heap; -# else /* !_DEBUG */ -# define ACE_NO_HEAP_CHECK -# endif /* _DEBUG */ -# else /* !ACE_WIN32 */ -# define ACE_NO_HEAP_CHECK -# endif /* ACE_WIN32 */ - -// Turn a number into a string. -# define ACE_ITOA(X) #X - -// Create a string of a server address with a "host:port" format. -# define ACE_SERVER_ADDRESS(H,P) H":"P - -// A couple useful inline functions for checking whether bits are -// enabled or disabled. - -// Efficiently returns the least power of two >= X... -# define ACE_POW(X) (((X) == 0)?1:(X-=1,X|=X>>1,X|=X>>2,X|=X>>4,X|=X>>8,X|=X>>16,(++X))) -# define ACE_EVEN(NUM) (((NUM) & 1) == 0) -# define ACE_ODD(NUM) (((NUM) & 1) == 1) -# define ACE_BIT_ENABLED(WORD, BIT) (((WORD) & (BIT)) != 0) -# define ACE_BIT_DISABLED(WORD, BIT) (((WORD) & (BIT)) == 0) -# define ACE_BIT_CMP_MASK(WORD, BIT, MASK) (((WORD) & (BIT)) == MASK) -# define ACE_SET_BITS(WORD, BITS) (WORD |= (BITS)) -# define ACE_CLR_BITS(WORD, BITS) (WORD &= ~(BITS)) - -# if !defined (ACE_ENDLESS_LOOP) -# define ACE_ENDLESS_LOOP -# endif /* ! ACE_ENDLESS_LOOP */ - -# if defined (ACE_NEEDS_FUNC_DEFINITIONS) - // It just evaporated ;-) Not pleasant. -# define ACE_UNIMPLEMENTED_FUNC(f) -# else -# define ACE_UNIMPLEMENTED_FUNC(f) f; -# endif /* ACE_NEEDS_FUNC_DEFINITIONS */ - -// Easy way to designate that a class is used as a pseudo-namespace. -// Insures that g++ "friendship" anamolies are properly handled. -# define ACE_CLASS_IS_NAMESPACE(CLASSNAME) \ -private: \ -CLASSNAME (void); \ -CLASSNAME (const CLASSNAME&); \ -friend class ace_dewarn_gplusplus - -// ---------------------------------------------------------------- - -// Deal with MSVC++ 6 (or less) insanity for CORBA... -# if defined (ACE_HAS_BROKEN_NAMESPACES) -# define ACE_CORBA_1(NAME) CORBA_##NAME -# define ACE_CORBA_2(TYPE, NAME) CORBA_##TYPE##_##NAME -# define ACE_CORBA_3(TYPE, NAME) CORBA_##TYPE::NAME -# if !defined (ACE_NESTED_CLASS) -# define ACE_NESTED_CLASS(TYPE, NAME) NAME -# endif /* !ACE_NESTED_CLASS */ -# else /* ! ACE_HAS_BROKEN_NAMESPACES */ -# define ACE_CORBA_1(NAME) CORBA::NAME -# define ACE_CORBA_2(TYPE, NAME) CORBA::TYPE::NAME -# define ACE_CORBA_3(TYPE, NAME) CORBA::TYPE::NAME -# if !defined (ACE_NESTED_CLASS) -# define ACE_NESTED_CLASS(TYPE, NAME) TYPE::NAME -# endif /* !ACE_NESTED_CLASS */ -# endif /* ! ACE_HAS_BROKEN_NAMESPACES */ - -// ---------------------------------------------------------------- - -# define ACE_TRACE_IMPL(X) ACE_Trace ____ (ACE_LIB_TEXT (X), __LINE__, ACE_LIB_TEXT (__FILE__)) - -# if (ACE_NTRACE == 1) -# define ACE_TRACE(X) -# else -# define ACE_TRACE(X) ACE_TRACE_IMPL(X) -# endif /* ACE_NTRACE */ - -// ---------------------------------------------------------------- - -// Convenient macro for testing for deadlock, as well as for detecting -// when mutexes fail. -#define ACE_GUARD_ACTION(MUTEX, OBJ, LOCK, ACTION, REACTION) \ - ACE_Guard< MUTEX > OBJ (LOCK); \ - if (OBJ.locked () != 0) { ACTION; } \ - else { REACTION; } -#define ACE_GUARD_REACTION(MUTEX, OBJ, LOCK, REACTION) \ - ACE_GUARD_ACTION(MUTEX, OBJ, LOCK, ;, REACTION) -#define ACE_GUARD(MUTEX, OBJ, LOCK) \ - ACE_GUARD_REACTION(MUTEX, OBJ, LOCK, return) -#define ACE_GUARD_RETURN(MUTEX, OBJ, LOCK, RETURN) \ - ACE_GUARD_REACTION(MUTEX, OBJ, LOCK, return RETURN) -# define ACE_WRITE_GUARD(MUTEX,OBJ,LOCK) \ - ACE_Write_Guard< MUTEX > OBJ (LOCK); \ - if (OBJ.locked () == 0) return; -# define ACE_WRITE_GUARD_RETURN(MUTEX,OBJ,LOCK,RETURN) \ - ACE_Write_Guard< MUTEX > OBJ (LOCK); \ - if (OBJ.locked () == 0) return RETURN; -# define ACE_READ_GUARD(MUTEX,OBJ,LOCK) \ - ACE_Read_Guard< MUTEX > OBJ (LOCK); \ - if (OBJ.locked () == 0) return; -# define ACE_READ_GUARD_RETURN(MUTEX,OBJ,LOCK,RETURN) \ - ACE_Read_Guard< MUTEX > OBJ (LOCK); \ - if (OBJ.locked () == 0) return RETURN; - -// ---------------------------------------------------------------- - -# define ACE_DES_NOFREE(POINTER,CLASS) \ - do { \ - if (POINTER) \ - { \ - (POINTER)->~CLASS (); \ - } \ - } \ - while (0) - -# define ACE_DES_ARRAY_NOFREE(POINTER,SIZE,CLASS) \ - do { \ - if (POINTER) \ - { \ - for (size_t i = 0; \ - i < SIZE; \ - ++i) \ - { \ - (&(POINTER)[i])->~CLASS (); \ - } \ - } \ - } \ - while (0) - -# define ACE_DES_FREE(POINTER,DEALLOCATOR,CLASS) \ - do { \ - if (POINTER) \ - { \ - (POINTER)->~CLASS (); \ - DEALLOCATOR (POINTER); \ - } \ - } \ - while (0) - -# define ACE_DES_ARRAY_FREE(POINTER,SIZE,DEALLOCATOR,CLASS) \ - do { \ - if (POINTER) \ - { \ - for (size_t i = 0; \ - i < SIZE; \ - ++i) \ - { \ - (&(POINTER)[i])->~CLASS (); \ - } \ - DEALLOCATOR (POINTER); \ - } \ - } \ - while (0) - -# if defined (ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR) -# define ACE_DES_NOFREE_TEMPLATE(POINTER,T_CLASS,T_PARAMETER) \ - do { \ - if (POINTER) \ - { \ - (POINTER)->~T_CLASS (); \ - } \ - } \ - while (0) -# define ACE_DES_ARRAY_NOFREE_TEMPLATE(POINTER,SIZE,T_CLASS,T_PARAMETER) \ - do { \ - if (POINTER) \ - { \ - for (size_t i = 0; \ - i < SIZE; \ - ++i) \ - { \ - (&(POINTER)[i])->~T_CLASS (); \ - } \ - } \ - } \ - while (0) -#if defined(__IBMCPP__) && (__IBMCPP__ >= 400) -# define ACE_DES_FREE_TEMPLATE(POINTER,DEALLOCATOR,T_CLASS,T_PARAMETER) \ - do { \ - if (POINTER) \ - { \ - (POINTER)->~T_CLASS T_PARAMETER (); \ - DEALLOCATOR (POINTER); \ - } \ - } \ - while (0) -#else -# define ACE_DES_FREE_TEMPLATE(POINTER,DEALLOCATOR,T_CLASS,T_PARAMETER) \ - do { \ - if (POINTER) \ - { \ - (POINTER)->~T_CLASS (); \ - DEALLOCATOR (POINTER); \ - } \ - } \ - while (0) -#endif /* defined(__IBMCPP__) && (__IBMCPP__ >= 400) */ -# define ACE_DES_ARRAY_FREE_TEMPLATE(POINTER,SIZE,DEALLOCATOR,T_CLASS,T_PARAMETER) \ - do { \ - if (POINTER) \ - { \ - for (size_t i = 0; \ - i < SIZE; \ - ++i) \ - { \ - (&(POINTER)[i])->~T_CLASS (); \ - } \ - DEALLOCATOR (POINTER); \ - } \ - } \ - while (0) -#if defined(__IBMCPP__) && (__IBMCPP__ >= 400) -# define ACE_DES_FREE_TEMPLATE2(POINTER,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2) \ - do { \ - if (POINTER) \ - { \ - (POINTER)->~T_CLASS <T_PARAM1, T_PARAM2> (); \ - DEALLOCATOR (POINTER); \ - } \ - } \ - while (0) -#else -# define ACE_DES_FREE_TEMPLATE2(POINTER,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2) \ - do { \ - if (POINTER) \ - { \ - (POINTER)->~T_CLASS (); \ - DEALLOCATOR (POINTER); \ - } \ - } \ - while (0) -#endif /* defined(__IBMCPP__) && (__IBMCPP__ >= 400) */ -# define ACE_DES_FREE_TEMPLATE3(POINTER,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2,T_PARAM3) \ - do { \ - if (POINTER) \ - { \ - (POINTER)->~T_CLASS (); \ - DEALLOCATOR (POINTER); \ - } \ - } \ - while (0) -# define ACE_DES_FREE_TEMPLATE4(POINTER,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2,T_PARAM3, T_PARAM4) \ - do { \ - if (POINTER) \ - { \ - (POINTER)->~T_CLASS (); \ - DEALLOCATOR (POINTER); \ - } \ - } \ - while (0) -# define ACE_DES_ARRAY_FREE_TEMPLATE2(POINTER,SIZE,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2) \ - do { \ - if (POINTER) \ - { \ - for (size_t i = 0; \ - i < SIZE; \ - ++i) \ - { \ - (&(POINTER)[i])->~T_CLASS (); \ - } \ - DEALLOCATOR (POINTER); \ - } \ - } \ - while (0) -# else /* ! ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR */ -# define ACE_DES_NOFREE_TEMPLATE(POINTER,T_CLASS,T_PARAMETER) \ - do { \ - if (POINTER) \ - { \ - (POINTER)->T_CLASS T_PARAMETER::~T_CLASS (); \ - } \ - } \ - while (0) -# define ACE_DES_ARRAY_NOFREE_TEMPLATE(POINTER,SIZE,T_CLASS,T_PARAMETER) \ - do { \ - if (POINTER) \ - { \ - for (size_t i = 0; \ - i < SIZE; \ - ++i) \ - { \ - (POINTER)[i].T_CLASS T_PARAMETER::~T_CLASS (); \ - } \ - } \ - } \ - while (0) -# if defined (__Lynx__) && __LYNXOS_SDK_VERSION == 199701L - // LynxOS 3.0.0's g++ has trouble with the real versions of these. -# define ACE_DES_FREE_TEMPLATE(POINTER,DEALLOCATOR,T_CLASS,T_PARAMETER) -# define ACE_DES_ARRAY_FREE_TEMPLATE(POINTER,DEALLOCATOR,T_CLASS,T_PARAMETER) -# define ACE_DES_FREE_TEMPLATE2(POINTER,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2) -# define ACE_DES_FREE_TEMPLATE3(POINTER,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2) -# define ACE_DES_FREE_TEMPLATE4(POINTER,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2) -# define ACE_DES_ARRAY_FREE_TEMPLATE2(POINTER,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2) -# else -# define ACE_DES_FREE_TEMPLATE(POINTER,DEALLOCATOR,T_CLASS,T_PARAMETER) \ - do { \ - if (POINTER) \ - { \ - POINTER->T_CLASS T_PARAMETER::~T_CLASS (); \ - DEALLOCATOR (POINTER); \ - } \ - } \ - while (0) -# define ACE_DES_ARRAY_FREE_TEMPLATE(POINTER,SIZE,DEALLOCATOR,T_CLASS,T_PARAMETER) \ - do { \ - if (POINTER) \ - { \ - for (size_t i = 0; \ - i < SIZE; \ - ++i) \ - { \ - POINTER[i].T_CLASS T_PARAMETER::~T_CLASS (); \ - } \ - DEALLOCATOR (POINTER); \ - } \ - } \ - while (0) -# define ACE_DES_FREE_TEMPLATE2(POINTER,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2) \ - do { \ - if (POINTER) \ - { \ - POINTER->T_CLASS <T_PARAM1, T_PARAM2>::~T_CLASS (); \ - DEALLOCATOR (POINTER); \ - } \ - } \ - while (0) -# define ACE_DES_FREE_TEMPLATE3(POINTER,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2,T_PARAM3) \ - do { \ - if (POINTER) \ - { \ - POINTER->T_CLASS <T_PARAM1, T_PARAM2, T_PARAM3>::~T_CLASS (); \ - DEALLOCATOR (POINTER); \ - } \ - } \ - while (0) -# define ACE_DES_FREE_TEMPLATE4(POINTER,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2,T_PARAM3,T_PARAM4) \ - do { \ - if (POINTER) \ - { \ - POINTER->T_CLASS <T_PARAM1, T_PARAM2, T_PARAM3, T_PARAM4>::~T_CLASS (); \ - DEALLOCATOR (POINTER); \ - } \ - } \ - while (0) -# define ACE_DES_ARRAY_FREE_TEMPLATE2(POINTER,SIZE,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2) \ - do { \ - if (POINTER) \ - { \ - for (size_t i = 0; \ - i < SIZE; \ - ++i) \ - { \ - POINTER[i].T_CLASS <T_PARAM1, T_PARAM2>::~T_CLASS (); \ - } \ - DEALLOCATOR (POINTER); \ - } \ - } \ - while (0) -# endif /* defined (__Lynx__) && __LYNXOS_SDK_VERSION == 199701L */ -# endif /* defined ! ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR */ - -#include "ace/post.h" - -#endif /*ACE_GLOBAL_MACROS_H*/ |