00001 /* 00002 //-------------------------------------------------------------------------- 00003 // BesODMGTypes.h 00004 // 00005 // File and Version Information: 00006 // $Id: BesODMGTypes.h,v 1.2 2009/12/23 02:59:56 zhangy Exp $ 00007 // 00008 // Description: 00009 // Typedefs of ODMG d_* platform-invariant types for use in code 00010 // compiled without Objectivity. (Objectivity will otherwise define 00011 // these types itself.) 00012 // 00013 // Environment: 00014 // Software developed for the Bes Detector at the SLAC B-Factory. 00015 // 00016 // Author List: 00017 // Dirk Duellman, RD45 Originator 00018 // David Quarrie Brought into Bes, bug fixes 00019 // Gregory Dubois-Felsmann Moved to Bes/BesODMGTypes.h 00020 // 00021 // Copyright Information: 00022 // Copyright (C) 1997 California Institute of Technology et al. 00023 // 00024 // History: 00025 // Migration for BESIII MDC 00026 // 00027 //-------------------------------------------------------------------------- 00028 */ 00029 00030 #ifndef BESODMGTYPES_H 00031 #define BESODMGTYPES_H 00032 00033 /* 00034 // Original RD45 header: 00035 // -*- Mode: C++ -*- 00036 // ODMGTypes.h -- define ODMG types based on C++ types 00037 // created on Thu Apr 4 13:17:51 1996 00038 // by Dirk Duellmann 00039 // 00040 // Brought into HepODBMS/odbms/HepODMGTypes.h by David Quarrie 00041 // (Id: HepODMGTypes.h,v 1.5 1997/12/22 15:56:57 quarrie Exp ) 00042 // 00043 // Copied from HEAD of HepODBMS (V00-00-07 plus RCSv1.5 of this file) 00044 // by Gregory Dubois-Felsmann to package Bes, to implement common 00045 // platform-invariant-size types for DataFlow. 00046 // 00047 // Comments changed to C style as a step toward making it useful in that 00048 // language, too, but *this has not been otherwise tested*. 00049 // 00050 // d_Char and d_Octet changed from "signed char" to "char" to conform 00051 // more precisely with Objectivity definitions. This does mean that 00052 // their signedness can vary from platform to platform, but this is 00053 // better than having the type of d_Char depend on whether Objectivity 00054 // is included in a build or not. 00055 */ 00056 00057 /* It is only legitimate to define these types if Objectivity has */ 00058 /* not itself been set up by including "oo.h". oo.h defines all */ 00059 /* the types below as macros (not typedefs). The use of typedefs */ 00060 /* here comes from RD45. */ 00061 00062 #ifndef OO_H 00063 00064 /* Switch over architectures */ 00065 00066 #if defined(__DECCXX) || defined(__alpha__) 00067 00068 /* DEC Unix (C++ or g++) */ 00069 00070 typedef signed short int d_Short; 00071 typedef signed int d_Long; 00072 typedef unsigned short int d_UShort; 00073 typedef unsigned int d_ULong; 00074 typedef float d_Float; 00075 typedef double d_Double; 00076 typedef char d_Char; 00077 typedef char d_Octet; 00078 typedef unsigned char d_Boolean; 00079 typedef unsigned char uint8; 00080 00081 #else 00082 00083 /* All other architectures */ 00084 00085 /* This is no longer needed with the aCC compiler on HPs. */ 00086 /* No other Bes platforms had this property. */ 00087 /* #ifdef Hep_NO_SIGNED_KEYWORD */ 00088 /* / * hp compiler does not know about the signed keyword * / */ 00089 /* #define signed */ 00090 /* #endif */ 00091 00092 00093 typedef signed short d_Short; 00094 typedef signed int d_Long; 00095 typedef unsigned short d_UShort; 00096 typedef unsigned int d_ULong; 00097 typedef float d_Float; 00098 typedef double d_Double; 00099 typedef char d_Char; 00100 typedef char d_Octet; 00101 typedef unsigned char d_Boolean; 00102 typedef unsigned char uint8; 00103 00104 00105 /* #ifdef Hep_NO_SIGNED_KEYWORD */ 00106 /* / * hp compiler does not know about the signed keyword * / */ 00107 /* #undef signed */ 00108 /* #endif */ 00109 00110 00111 /* End of architecture selection */ 00112 #endif 00113 00114 /* End of check on OO_H */ 00115 #endif 00116 00117 /* End of BESODMGTYPES_H */ 00118 #endif