summaryrefslogtreecommitdiff
path: root/ace/Basic_Types.h
diff options
context:
space:
mode:
Diffstat (limited to 'ace/Basic_Types.h')
-rw-r--r--ace/Basic_Types.h309
1 files changed, 0 insertions, 309 deletions
diff --git a/ace/Basic_Types.h b/ace/Basic_Types.h
deleted file mode 100644
index de62f8c73ad..00000000000
--- a/ace/Basic_Types.h
+++ /dev/null
@@ -1,309 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// Basic_Types.h
-//
-// = AUTHORS
-// David L. Levine
-//
-// = DESCRIPTION
-// #defines the following preprocessor macros:
-//
-// Sizes of built-in types:
-// ACE_SIZEOF_CHAR
-// ACE_SIZEOF_WCHAR
-// ACE_SIZEOF_SHORT
-// ACE_SIZEOF_INT
-// ACE_SIZEOF_LONG
-// ACE_SIZEOF_LONG_LONG
-// ACE_SIZEOF_VOID_P
-// ACE_SIZEOF_FLOAT
-// ACE_SIZEOF_DOUBLE
-// ACE_SIZEOF_LONG_DOUBLE
-//
-// Wrappers for built-in types of specific sizes:
-// ACE_INT16
-// ACE_UINT16
-// ACE_INT32
-// ACE_UINT32
-// ACE_UINT64
-// (Note: ACE_INT64 is not defined, because there is no ACE_LongLong for
-// platforms that don't have a native 8-byte integer type.)
-//
-// Byte-order (endian-ness) determination:
-// ACE_BYTE_ORDER, to either ACE_BIG_ENDIAN or ACE_LITTLE_ENDIAN
-//
-// ============================================================================
-
-#if !defined (ACE_BASIC_TYPES_H)
-#define ACE_BASIC_TYPES_H
-
-// A char always has 1 byte, by definition.
-#define ACE_SIZEOF_CHAR 1
-
-// Unfortunately, there isn't a portable way to determine the size of a wchar.
-#if defined (VXWORKS) && defined (ghs)
-# define ACE_SIZEOF_WCHAR 1
-#else
-# define ACE_SIZEOF_WCHAR sizeof (wchar_t)
-#endif /* VXWORKS && ghs */
-
-// The number of bytes in a short.
-#if (USHRT_MAX) == 255U
-# define ACE_SIZEOF_SHORT 1
-#elif (USHRT_MAX) == 65535U
-# define ACE_SIZEOF_SHORT 2
- typedef short ACE_INT16;
- typedef unsigned short ACE_UINT16;
-#elif (USHRT_MAX) == 4294967295U
-# define ACE_SIZEOF_SHORT 4
- typedef short ACE_INT32;
- typedef unsigned short ACE_UINT32;
-#elif (USHRT_MAX) == 18446744073709551615U
-# define ACE_SIZEOF_SHORT 8
-#else
-# error: unsupported short size, must be updated for this platform!
-#endif /* USHRT_MAX */
-
-// The number of bytes in an int.
-#if (UINT_MAX) == 65535U
-# define ACE_SIZEOF_INT 2
-# if ACE_SIZEOF_SHORT != 2
- typedef int ACE_INT16;
- typedef unsigned int ACE_UINT16;
-# endif /* ACE_SIZEOF_SHORT != 2 */
-#elif (UINT_MAX) == 4294967295U
-# define ACE_SIZEOF_INT 4
-# if ACE_SIZEOF_SHORT != 4
- typedef int ACE_INT32;
- typedef unsigned int ACE_UINT32;
-# endif /* ACE_SIZEOF_SHORT != 4 */
-#elif (UINT_MAX) == 18446744073709551615U
-# define ACE_SIZEOF_INT 8
- typedef unsigned int ACE_UINT64;
-#else
-# error: unsupported int size, must be updated for this platform!
-#endif /* UINT_MAX */
-
-// The number of bytes in a long.
-#if (ULONG_MAX) == 65535UL
-# define ACE_SIZEOF_LONG 2
-#elif (ULONG_MAX) == 4294967295UL
-# define ACE_SIZEOF_LONG 4
-# if ACE_SIZEOF_SHORT != 4 && ACE_SIZEOF_INT != 4
- typedef long ACE_INT32;
- typedef unsigned long ACE_UINT32;
-# endif /* ACE_SIZEOF_SHORT != 4 && ACE_SIZEOF_INT != 4 */
-#elif (ULONG_MAX) == 18446744073709551615UL
-# define ACE_SIZEOF_LONG 8
-# if ACE_SIZEOF_INT != 8
- typedef unsigned long ACE_UINT64;
-# endif /* ACE_SIZEOF_INT != 8 */
-#else
-# error: unsupported long size, must be updated for this platform!
-#endif /* ULONG_MAX */
-
-// The number of bytes in a long long.
-#if defined (ACE_WIN32)
-# define ACE_SIZEOF_LONG_LONG 8
- typedef unsigned __int64 ACE_UINT64;
-#elif defined (ULLONG_MAX) && !defined (__GNUG__) && \
- !defined (ACE_LACKS_LONGLONG_T)
-# if (ULLONG_MAX) == 18446744073709551615ULL
-# define ACE_SIZEOF_LONG_LONG 8
-# if ACE_SIZEOF_INT != 8 && ACE_SIZEOF_LONG != 8
- typedef unsigned long long ACE_UINT64;
-# endif /* ACE_SIZEOF_INT != 8 && ACE_SIZEOF_LONG != 8 */
-# elif (ULLONG_MAX) == 4294967295ULL
- // For some reason, this branch is taken if it appears first.
- // g++ can't deal with the ULL's at all. What's going on here?
-# define ACE_SIZEOF_LONG_LONG 4
-# if ACE_SIZEOF_SHORT != 4 && ACE_SIZEOF_INT != 4 && ACE_SIZEOF_LONG != 4
- typedef long long ACE_INT32;
- typedef unsigned long long ACE_UINT32;
-# endif /* ACE_SIZEOF_{SHORT,INT,LONG} != 4 */
-# else
-# error: unsupported long long size, must be updated for this platform!
-# endif /* ULLONG_MAX */
-#elif defined (ULONGLONG_MAX) && !defined (ACE_LACKS_LONGLONG_T)
- // Irix 6.x, for example.
-# if (ULONGLONG_MAX) == 18446744073709551615ULL
-# define ACE_SIZEOF_LONG_LONG 8
-# if ACE_SIZEOF_INT != 8 && ACE_SIZEOF_LONG != 8
- typedef unsigned long long ACE_UINT64;
-# endif /* ACE_SIZEOF_INT != 8 && ACE_SIZEOF_LONG != 8 */
-# else
-# error: unsupported long long size, must be updated for this platform!
-# endif /* ULLONG_MAX */
-#else /* ! ACE_WIN32 || (! ULLONG_MAX || __GNUG__) || ! ULONGLONG_MAX ||
- ACE_LACKS_LONGLONG_T */
-# if defined (ACE_LACKS_LONGLONG_T)
- class ACE_Export ACE_U_LongLong
- // = TITLE
- // Unsigned long long for platforms that don't have one.
- //
- // = DESCRIPTION
- // Provide our own unsigned long long. This is intended to be
- // use with ACE_High_Res_Timer, so the division operator assumes
- // that the quotient fits into a u_long.
- // Please note that the constructor takes (optionally) two values.
- // The high one contributes 0x100000000 times its value. So,
- // for example, (0, 2) is _not_ 20000000000, but instead
- // 0x200000000. To emphasize this, the default values are expressed
- // in hex, and dump () outputs the value in hex.
- {
- public:
- // = Initialization and termination methods.
- ACE_U_LongLong (const ACE_UINT32 lo = 0x0, const ACE_UINT32 hi = 0x0);
- ACE_U_LongLong (const ACE_U_LongLong &);
- ACE_U_LongLong &operator= (const ACE_U_LongLong &);
- ~ACE_U_LongLong (void);
-
- // = Overloaded relation operators.
- int operator== (const ACE_U_LongLong &) const;
- int operator!= (const ACE_U_LongLong &) const;
- int operator< (const ACE_U_LongLong &) const;
- int operator<= (const ACE_U_LongLong &) const;
- int operator> (const ACE_U_LongLong &) const;
- int operator>= (const ACE_U_LongLong &) const;
-
- ACE_U_LongLong operator+ (const ACE_U_LongLong &) const;
- ACE_U_LongLong operator- (const ACE_U_LongLong &) const;
-
- // Note that the following take ACE_UINT32 arguments. These are
- // typical use cases, and easy to implement. But, they limit
- // the return values to 32 bits as well. There are no checks
- // for overflow.
- ACE_UINT32 operator/ (const ACE_UINT32) const;
- ACE_UINT32 operator% (const ACE_UINT32) const;
-
- ACE_U_LongLong &operator+= (const ACE_U_LongLong &);
- ACE_U_LongLong &operator-= (const ACE_U_LongLong &);
- ACE_U_LongLong &operator++ ();
- ACE_U_LongLong &operator-- ();
-
- // = Helper methods.
- void output (FILE * = stdout) const;
- // Outputs the value to the FILE, in hex.
-
- ACE_UINT32 hi (void) const;
- ACE_UINT32 lo (void) const;
-
- void hi (const ACE_UINT32 hi);
- void lo (const ACE_UINT32 lo);
-
- ACE_ALLOC_HOOK_DECLARE;
-
- private:
- ACE_UINT32 hi_;
- ACE_UINT32 lo_;
- };
-
-# define ACE_USES_ACE_U_LONGLONG
-# define ACE_SIZEOF_LONG_LONG 8
-# if ACE_SIZEOF_INT != 8 && ACE_SIZEOF_LONG != 8
- typedef ACE_U_LongLong ACE_UINT64;
-# endif /* ACE_SIZEOF_INT != 8 && ACE_SIZEOF_LONG != 8 */
-# else /* ! ACE_LACKS_LONGLONG_T */
- // Assume that the platform has 8-byte long longs.
-# define ACE_SIZEOF_LONG_LONG 8
-# if ACE_SIZEOF_INT != 8 && ACE_SIZEOF_LONG != 8
-# if defined (sun)
- // sun #defines u_longlong_t, maybe other platforms do also.
- // Use it, at least with g++, so that its -pedantic doesn't
- // complain about no ANSI C++ long long.
- typedef u_longlong_t ACE_UINT64;
-# else
- // LynxOS 2.5.0 and Linux don't have u_longlong_t.
- typedef unsigned long long ACE_UINT64;
-# endif /* sun */
-# endif /* ACE_SIZEOF_INT != 8 && ACE_SIZEOF_LONG != 8 */
-# endif /* ! ACE_LACKS_LONGLONG_T */
-#endif /* ! ACE_WIN32 || (! ULLONG_MAX || __GNUG__) || ! ULONGLONG_MAX ||
- ACE_LACKS_LONGLONG_T */
-
-// The number of bytes in a void *.
-#define ACE_SIZEOF_VOID_P ACE_SIZEOF_LONG
-
-// The number of bytes in a float.
-#if FLT_MAX_EXP == 128
-# define ACE_SIZEOF_FLOAT 4
-#elif FLT_MAX_EXP == 1024
-# define ACE_SIZEOF_FLOAT 8
-#else
-# error: unsupported float size, must be updated for this platform!
-#endif /* FLT_MAX */
-
-// The number of bytes in a double.
-#if DBL_MAX_EXP == 128
-# define ACE_SIZEOF_DOUBLE 4
-#elif DBL_MAX_EXP == 1024
-# define ACE_SIZEOF_DOUBLE 8
-#else
-# error: unsupported double size, must be updated for this platform!
-#endif /* DBL_MAX */
-
-// The number of bytes in a long double.
-#if defined (__sgi)
- // The Irix 6.x float.h doesn't allow us to distinguish between a
- // double and a long double. Gotta hard code this . . .
-# define ACE_SIZEOF_LONG_DOUBLE 16
-#elif LDBL_MAX_EXP == 128
-# define ACE_SIZEOF_LONG_DOUBLE 4
-#elif defined (i386) || defined (__i386__) || defined (_M_IX386) || \
- defined (ACE_NETBSD) || defined (__FreeBSD__)
-# define ACE_SIZEOF_LONG_DOUBLE 12
-#elif LDBL_MAX_EXP == 1024
-# define ACE_SIZEOF_LONG_DOUBLE 8
-#elif LDBL_MAX_EXP == 16384
-# define ACE_SIZEOF_LONG_DOUBLE 16
-#else
-# error: unsupported double size, must be updated for this platform!
-#endif /* LDBL_MAX_EXP */
-
-// Byte-order (endian-ness) determination.
-#if defined (BYTE_ORDER)
-# if (BYTE_ORDER == LITTLE_ENDIAN)
-# define ACE_LITTLE_ENDIAN 0123X
-# define ACE_BYTE_ORDER ACE_LITTLE_ENDIAN
-# elif (BYTE_ORDER == BIG_ENDIAN)
-# define ACE_BIG_ENDIAN 3210X
-# define ACE_BYTE_ORDER ACE_BIG_ENDIAN
-# else
-# error: unknown BYTE_ORDER!
-# endif /* BYTE_ORDER */
-#elif defined (__BYTE_ORDER)
-# if (__BYTE_ORDER == __LITTLE_ENDIAN)
-# define ACE_LITTLE_ENDIAN 0123X
-# define ACE_BYTE_ORDER ACE_LITTLE_ENDIAN
-# elif (__BYTE_ORDER == __BIG_ENDIAN)
-# define ACE_BIG_ENDIAN 3210X
-# define ACE_BYTE_ORDER ACE_BIG_ENDIAN
-# else
-# error: unknown __BYTE_ORDER!
-# endif /* __BYTE_ORDER */
-#else /* ! BYTE_ORDER && ! __BYTE_ORDER */
- // We weren't explicitly told, so we have to figure it out . . .
-# if defined (i386) || defined (__i386__) || defined (_M_IX86) || \
- defined (vax) || defined (__alpha)
- // We know these are little endian.
-# define ACE_LITTLE_ENDIAN 0123X
-# define ACE_BYTE_ORDER ACE_LITTLE_ENDIAN
-# else
- // Otherwise, we'll assume big endian.
-# define ACE_BIG_ENDIAN 3210X
-# define ACE_BYTE_ORDER ACE_BIG_ENDIAN
-# endif
-#endif /* ! BYTE_ORDER && ! __BYTE_ORDER */
-
-#if defined (__ACE_INLINE__)
-# include "ace/Basic_Types.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_BASIC_TYPES_H */