HDF5 C++ API Reference Manual |
00001 // C++ informative line for the emacs editor: -*- C++ -*- 00002 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00003 * Copyright by The HDF Group. * 00004 * Copyright by the Board of Trustees of the University of Illinois. * 00005 * All rights reserved. * 00006 * * 00007 * This file is part of HDF5. The full HDF5 copyright notice, including * 00008 * terms governing use, modification, and redistribution, is contained in * 00009 * the files COPYING and Copyright.html. COPYING can be found at the root * 00010 * of the source code distribution tree; Copyright.html can be found at the * 00011 * root level of an installed copy of the electronic HDF5 document set and * 00012 * is linked from the top-level documents page. It can also be found at * 00013 * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * 00014 * access to either file, you may request a copy from help@hdfgroup.org. * 00015 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 00016 00017 // PredType holds the definition of all the HDF5 predefined datatypes. 00018 // These types can only be made copy of, not created by H5Tcreate or 00019 // closed by H5Tclose. They are treated as constants. 00021 00022 #ifndef _H5PredType_H 00023 #define _H5PredType_H 00024 00025 #ifndef H5_NO_NAMESPACE 00026 namespace H5 { 00027 #endif 00028 00029 class H5_DLLCPP PredType : public AtomType { 00030 public: 00031 // Returns this class name 00032 virtual H5std_string fromClass () const { return("PredType"); } 00033 00034 // Makes a copy of the predefined type and stores the new 00035 // id in the left hand side object. 00036 PredType& operator=( const PredType& rhs ); 00037 00038 // Copy constructor - makes copy of the original object 00039 PredType( const PredType& original ); 00040 00041 // Noop destructor 00042 virtual ~PredType(); 00043 00044 // Declaration of predefined types; their definition is in H5PredType.cpp 00045 static const PredType STD_I8BE; 00046 static const PredType STD_I8LE; 00047 static const PredType STD_I16BE; 00048 static const PredType STD_I16LE; 00049 static const PredType STD_I32BE; 00050 static const PredType STD_I32LE; 00051 static const PredType STD_I64BE; 00052 static const PredType STD_I64LE; 00053 static const PredType STD_U8BE; 00054 static const PredType STD_U8LE; 00055 static const PredType STD_U16BE; 00056 static const PredType STD_U16LE; 00057 static const PredType STD_U32BE; 00058 static const PredType STD_U32LE; 00059 static const PredType STD_U64BE; 00060 static const PredType STD_U64LE; 00061 static const PredType STD_B8BE; 00062 static const PredType STD_B8LE; 00063 static const PredType STD_B16BE; 00064 static const PredType STD_B16LE; 00065 static const PredType STD_B32BE; 00066 static const PredType STD_B32LE; 00067 static const PredType STD_B64BE; 00068 static const PredType STD_B64LE; 00069 static const PredType STD_REF_OBJ; 00070 static const PredType STD_REF_DSETREG; 00071 00072 static const PredType C_S1; 00073 static const PredType FORTRAN_S1; 00074 00075 static const PredType IEEE_F32BE; 00076 static const PredType IEEE_F32LE; 00077 static const PredType IEEE_F64BE; 00078 static const PredType IEEE_F64LE; 00079 00080 static const PredType UNIX_D32BE; 00081 static const PredType UNIX_D32LE; 00082 static const PredType UNIX_D64BE; 00083 static const PredType UNIX_D64LE; 00084 00085 static const PredType INTEL_I8; 00086 static const PredType INTEL_I16; 00087 static const PredType INTEL_I32; 00088 static const PredType INTEL_I64; 00089 static const PredType INTEL_U8; 00090 static const PredType INTEL_U16; 00091 static const PredType INTEL_U32; 00092 static const PredType INTEL_U64; 00093 static const PredType INTEL_B8; 00094 static const PredType INTEL_B16; 00095 static const PredType INTEL_B32; 00096 static const PredType INTEL_B64; 00097 static const PredType INTEL_F32; 00098 static const PredType INTEL_F64; 00099 00100 static const PredType ALPHA_I8; 00101 static const PredType ALPHA_I16; 00102 static const PredType ALPHA_I32; 00103 static const PredType ALPHA_I64; 00104 static const PredType ALPHA_U8; 00105 static const PredType ALPHA_U16; 00106 static const PredType ALPHA_U32; 00107 static const PredType ALPHA_U64; 00108 static const PredType ALPHA_B8; 00109 static const PredType ALPHA_B16; 00110 static const PredType ALPHA_B32; 00111 static const PredType ALPHA_B64; 00112 static const PredType ALPHA_F32; 00113 static const PredType ALPHA_F64; 00114 00115 static const PredType MIPS_I8; 00116 static const PredType MIPS_I16; 00117 static const PredType MIPS_I32; 00118 static const PredType MIPS_I64; 00119 static const PredType MIPS_U8; 00120 static const PredType MIPS_U16; 00121 static const PredType MIPS_U32; 00122 static const PredType MIPS_U64; 00123 static const PredType MIPS_B8; 00124 static const PredType MIPS_B16; 00125 static const PredType MIPS_B32; 00126 static const PredType MIPS_B64; 00127 static const PredType MIPS_F32; 00128 static const PredType MIPS_F64; 00129 00130 static const PredType NATIVE_CHAR; 00131 static const PredType NATIVE_SCHAR; 00132 static const PredType NATIVE_UCHAR; 00133 static const PredType NATIVE_SHORT; 00134 static const PredType NATIVE_USHORT; 00135 static const PredType NATIVE_INT; 00136 static const PredType NATIVE_UINT; 00137 static const PredType NATIVE_LONG; 00138 static const PredType NATIVE_ULONG; 00139 static const PredType NATIVE_LLONG; 00140 static const PredType NATIVE_ULLONG; 00141 static const PredType NATIVE_FLOAT; 00142 static const PredType NATIVE_DOUBLE; 00143 static const PredType NATIVE_LDOUBLE; 00144 static const PredType NATIVE_B8; 00145 static const PredType NATIVE_B16; 00146 static const PredType NATIVE_B32; 00147 static const PredType NATIVE_B64; 00148 static const PredType NATIVE_OPAQUE; 00149 static const PredType NATIVE_HSIZE; 00150 static const PredType NATIVE_HSSIZE; 00151 static const PredType NATIVE_HERR; 00152 static const PredType NATIVE_HBOOL; 00153 00154 static const PredType NATIVE_INT8; 00155 static const PredType NATIVE_UINT8; 00156 static const PredType NATIVE_INT16; 00157 static const PredType NATIVE_UINT16; 00158 static const PredType NATIVE_INT32; 00159 static const PredType NATIVE_UINT32; 00160 static const PredType NATIVE_INT64; 00161 static const PredType NATIVE_UINT64; 00162 00163 // LEAST types 00164 #if H5_SIZEOF_INT_LEAST8_T != 0 00165 static const PredType NATIVE_INT_LEAST8; 00166 #endif /* H5_SIZEOF_INT_LEAST8_T */ 00167 #if H5_SIZEOF_UINT_LEAST8_T != 0 00168 static const PredType NATIVE_UINT_LEAST8; 00169 #endif /* H5_SIZEOF_UINT_LEAST8_T */ 00170 00171 #if H5_SIZEOF_INT_LEAST16_T != 0 00172 static const PredType NATIVE_INT_LEAST16; 00173 #endif /* H5_SIZEOF_INT_LEAST16_T */ 00174 #if H5_SIZEOF_UINT_LEAST16_T != 0 00175 static const PredType NATIVE_UINT_LEAST16; 00176 #endif /* H5_SIZEOF_UINT_LEAST16_T */ 00177 00178 #if H5_SIZEOF_INT_LEAST32_T != 0 00179 static const PredType NATIVE_INT_LEAST32; 00180 #endif /* H5_SIZEOF_INT_LEAST32_T */ 00181 #if H5_SIZEOF_UINT_LEAST32_T != 0 00182 static const PredType NATIVE_UINT_LEAST32; 00183 #endif /* H5_SIZEOF_UINT_LEAST32_T */ 00184 00185 #if H5_SIZEOF_INT_LEAST64_T != 0 00186 static const PredType NATIVE_INT_LEAST64; 00187 #endif /* H5_SIZEOF_INT_LEAST64_T */ 00188 #if H5_SIZEOF_UINT_LEAST64_T != 0 00189 static const PredType NATIVE_UINT_LEAST64; 00190 #endif /* H5_SIZEOF_UINT_LEAST64_T */ 00191 00192 // FAST types 00193 #if H5_SIZEOF_INT_FAST8_T != 0 00194 static const PredType NATIVE_INT_FAST8; 00195 #endif /* H5_SIZEOF_INT_FAST8_T */ 00196 #if H5_SIZEOF_UINT_FAST8_T != 0 00197 static const PredType NATIVE_UINT_FAST8; 00198 #endif /* H5_SIZEOF_UINT_FAST8_T */ 00199 00200 #if H5_SIZEOF_INT_FAST16_T != 0 00201 static const PredType NATIVE_INT_FAST16; 00202 #endif /* H5_SIZEOF_INT_FAST16_T */ 00203 #if H5_SIZEOF_UINT_FAST16_T != 0 00204 static const PredType NATIVE_UINT_FAST16; 00205 #endif /* H5_SIZEOF_UINT_FAST16_T */ 00206 00207 #if H5_SIZEOF_INT_FAST32_T != 0 00208 static const PredType NATIVE_INT_FAST32; 00209 #endif /* H5_SIZEOF_INT_FAST32_T */ 00210 #if H5_SIZEOF_UINT_FAST32_T != 0 00211 static const PredType NATIVE_UINT_FAST32; 00212 #endif /* H5_SIZEOF_UINT_FAST32_T */ 00213 00214 #if H5_SIZEOF_INT_FAST64_T != 0 00215 static const PredType NATIVE_INT_FAST64; 00216 #endif /* H5_SIZEOF_INT_FAST64_T */ 00217 #if H5_SIZEOF_UINT_FAST64_T != 0 00218 static const PredType NATIVE_UINT_FAST64; 00219 #endif /* H5_SIZEOF_UINT_FAST64_T */ 00220 00221 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00222 // These dummy functions do not inherit from DataType - they'll 00223 // throw a DataTypeIException if invoked. 00224 void commit( H5File& loc, const H5std_string& name ); 00225 void commit( H5File& loc, const char* name ); 00226 void commit( H5Object& loc, const H5std_string& name ); 00227 void commit( H5Object& loc, const char* name ); 00228 bool committed(); 00229 #endif // DOXYGEN_SHOULD_SKIP_THIS 00230 00231 private: 00232 // added this to work around the atexit/global destructor problem 00233 // temporarily - it'll prevent the use of atexit to clean up 00234 static const PredType NotAtexit; // not working yet 00235 00236 protected: 00237 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00238 // Default constructor 00239 PredType(); 00240 00241 // Creates a pre-defined type using an HDF5 pre-defined constant 00242 PredType( const hid_t predtype_id ); // used by the library only 00243 00244 #endif // DOXYGEN_SHOULD_SKIP_THIS 00245 00246 }; 00247 #ifndef H5_NO_NAMESPACE 00248 } 00249 #endif 00250 #endif