Main Page | Class Hierarchy | Compound List | File List | Compound Members

BxDataTypes.h

00001 // ##################################################################
00002 // Binx
00003 // $Id: BxDataTypes_8h-source.html,v 1.1.1.1 2006/04/19 14:19:02 edikt2 Exp $
00004 //
00005 // This is the overall include file for data type definitions.
00006 // ##################################################################
00007 /*
00008 
00009 //  edikt::BinX
00010 //  www.edikt.org
00011 //  support@edikt.org
00012 
00013 // Copyright (c) 2003 The University of Edinburgh.
00014 
00015 */
00016 
00017 #ifndef __BxDataTypes__
00018 #define __BxDataTypes__
00019 
00020 typedef unsigned char byte;
00021 typedef unsigned short ushort;
00022 typedef unsigned int uint;
00023 typedef unsigned long ulong;
00024 
00025 // compiler or platform dependent type definitions here
00026 
00027 typedef char bx_byte8;  //should be signed byte -128-127
00028 typedef char bx_char8;
00029 typedef ushort bx_unicode16;
00030 typedef ulong bx_unicode32;
00031 typedef short bx_short16;
00032 typedef int bx_int32;
00033 typedef long long bx_long64;      //BCB and GCC
00034 typedef unsigned char bx_ubyte8;    //unsigned byte 0-255
00035 typedef unsigned short bx_ushort16;
00036 typedef unsigned int bx_uint32;
00037 typedef unsigned long long bx_ulong64;
00038 typedef float bx_float32;
00039 typedef double bx_double64;
00040 typedef long double bx_extended;    //BCC as 80-bit, GCC on Intel = 96-bit
00041 typedef long double bx_extended80;  //BCC as 80-bit, GCC on Intel = 96-bit
00042 typedef long double bx_extended96;  //BCC as 80-bit, GCC on Intel = 96-bit
00043 typedef long double bx_quadruple128;    //GCC reserves 96 on Intel and 128 on SunOS
00044 
00045 // constant definitions for all data types used as dataClass
00046 
00047 #define BXVOID          0x0              // 0
00048 #define BXENUM          0x1              // 1
00049 #define BXBIT           0x10             // 16
00050 #define BXBYTE          0x20             // 32
00051 #define BXINTEGER       0x40             // 64
00052 #define BXFLOAT         0x80             // 128
00053 #define BXUNSIGNED      0x8              // 8
00054 #define BXVOID0         BXVOID           // BXVOID0 = BXVOID = 0
00055 #define BXBIT1          BXBIT            // BXBIT1 = BXBIT = 1
00056 #define BXCHARACTER8    BXBYTE+2          //0x22 = 34
00057 #define BXUNICODE16     BXBYTE+4          //0x24 = 36
00058 #define BXUNICODE32     BXBYTE+8          //0x28 = 40
00059 #define BXBYTE8         BXINTEGER+1             //0x41 = 65
00060 #define BXSHORT16       BXINTEGER+2             //0x42 = 66
00061 #define BXINTEGER32     BXINTEGER+4             //0x44 = 68
00062 #define BXLONG64        BXINTEGER+8             //0x48 = 72
00063 #define BXUBYTE8        BXBYTE8+BXUNSIGNED      //0x49 = 73
00064 #define BXUSHORT16      BXSHORT16+BXUNSIGNED    //0x4A = 74
00065 #define BXUINTEGER32    BXINTEGER32+BXUNSIGNED  //0x4C = 76
00066 #define BXULONG64       BXLONG64+BXUNSIGNED     //0x50 = 80
00067 #define BXFLOAT32       BXFLOAT+1       //0x81 = 129
00068 #define BXDOUBLE64      BXFLOAT+2       //0x82 = 130
00069 #define BXEXTENDED80    BXFLOAT+4       //0x84 = 132
00070 #define BXEXTENDED96    BXFLOAT+8       //0x88 = 136
00071 #define BXQUADRUPLE128  BXFLOAT+16      //0x90 = 144
00072 #define BXDATASET       0x100           // 256
00073 #define BXSTRUCT        0x100           //BxStruct==BxDataset
00074 #define BXARRAY         0x200           // 512
00075 #define BXARRAYFIXED    0x201           // 513
00076 #define BXARRAYVARIABLE 0x202           // 514
00077 #define BXARRAYSTREAMED 0x204           // 516
00078 #define BXUNION         0x400           // 1024
00079 #define BXSTRING            0x800           // 2048
00080 #define BXSTRINGFIXED       0x801           // 2049
00081 #define BXSTRINGVARIABLE    0x802           // 2050
00082 #define BXSTRINGDELIMITED   0x804           // 2052
00083 
00084 // Comparison macros to check dataClass
00085 
00086 #define ISVOID(n) (n == BXVOID)
00087 #define ISBIT(n) ((n & BXBIT)==BXBIT)
00088 #define ISBYTE(n) ((n & BXBYTE)==BXBYTE)    //BXBYTE8,BXCHARACTER8
00089 #define ISINTEGER(n) ((n & BXINTEGER)==BXINTEGER)   //BXSHORT16,BXINTEGER32,BXLONG64,...
00090 #define ISFLOAT(n) ((n & BXFLOAT)==BXFLOAT) //BXFLOAT32,BXDOUBLE64,BXEXTENDED80,...
00091 #define ISBYTE8(n) (n==BXBYTE8)
00092 #define ISUBYTE8(n) (n==BXUBYTE8)
00093 #define ISSIGNED(n) ((n & BXUNSIGNED)==0)
00094 #define ISUNSIGNED(n) ((n & BXUNSIGNED)==BXUNSIGNED)
00095 #define ISSHORT16(n) (n==BXSHORT16)
00096 #define ISUSHORT16(n) (n==BXUSHORT16)
00097 #define ISINTEGER32(n) (n==BXINTEGER32)
00098 #define ISUINTEGER32(n) (n==BXUINTEGER32)
00099 #define ISLONG64(n) (n==BXLONG64)
00100 #define ISULONG64(n) (n==BXULONG64)
00101 #define ISFLOAT32(n) (n==BXFLOAT32)
00102 #define ISDOUBLE64(n) (n==BXDOUBLE64)
00103 #define ISEXTENDED80(n) (n==BXEXTENDED80)
00104 #define ISEXTENDED96(n) (n==BXEXTENDED96)
00105 #define ISQUADRUPLE128(n) (n==BXQUADRUPLE128)
00106 #define ISCHARACTER8(n) (n==BXCHARACTER8)
00107 #define ISUNICODE16(n) (n==BXUNICODE16)
00108 #define ISUNICODE32(n) (n==BXUNICODE32)
00109 #define ISPRIMITIVE(n) (n <= BXQUADRUPLE128)
00110 #define ISARRAY(n) ((n & BXARRAY)==BXARRAY) //FOR ALL ARRAY TYPES
00111 #define ISDATASET(n) (n==BXDATASET)
00112 #define ISSTRUCT(n) (n==BXSTRUCT)
00113 #define ISUNION(n) (n==BXUNION)
00114 #define ISARRAYFIXED(n) (n==BXARRAYFIXED)
00115 #define ISARRAYVARIABLE(n) (n==BXARRAYVARIABLE)
00116 #define ISARRAYSTREAMED(n) (n==BXARRAYSTREAMED)
00117 #define ISSTRING(n) ((n & BXSTRING)==BXSTRING)
00118 #define ISSTRINGFIXED(n) (n==BXSTRINGFIXED)
00119 #define ISSTRINGVARIABLE(n) (n==BXSTRINGVARIABLE)
00120 #define ISSTRINGDELIMITED(n) (n==BXSTRINGDELIMITED)
00121 
00122 #endif
00123 

Generated on Fri May 6 13:36:17 2005 for edikt::BinX by doxygen 1.3.3