HDF5 C++ API Reference Manual

- Main Page
- Namespaces
- Classes
- Files
- Examples

- File List
- File Members

# H5PredType.h

Go to the documentation of this file.

    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