H5FloatType.h

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 #ifndef _H5FloatType_H
00018 #define _H5FloatType_H
00019 
00020 #ifndef H5_NO_NAMESPACE
00021 namespace H5 {
00022 #endif
00023 
00024 class H5_DLLCPP FloatType : public AtomType {
00025    public:
00026         // Creates a floating-point type using a predefined type
00027         FloatType( const PredType& pred_type );
00028 
00029         // Gets the floating-point datatype of the specified dataset
00030         FloatType( const DataSet& dataset );
00031 
00032         // Retrieves the exponent bias of a floating-point type.
00033         size_t getEbias() const;
00034 
00035         // Sets the exponent bias of a floating-point type.
00036         void setEbias( size_t ebias ) const;
00037 
00038         // Retrieves floating point datatype bit field information.
00039         void getFields( size_t& spos, size_t& epos, size_t& esize, size_t& mpos, size_t& msize ) const;
00040 
00041         // Sets locations and sizes of floating point bit fields.
00042         void setFields( size_t spos, size_t epos, size_t esize, size_t mpos, size_t msize ) const;
00043 
00044         // Retrieves the internal padding type for unused bits in floating-point datatypes.
00045         H5T_pad_t getInpad( H5std_string& pad_string ) const;
00046 
00047         // Fills unused internal floating point bits.
00048         void setInpad( H5T_pad_t inpad ) const;
00049 
00050         // Retrieves mantissa normalization of a floating-point datatype.
00051         H5T_norm_t getNorm( H5std_string& norm_string ) const;
00052 
00053         // Sets the mantissa normalization of a floating-point datatype.
00054         void setNorm( H5T_norm_t norm ) const;
00055 
00057         virtual H5std_string fromClass () const { return("FloatType"); }
00058 
00059         // Default constructor
00060         FloatType();
00061 
00062         // Creates a floating-point datatype using an existing id
00063         FloatType( const hid_t existing_id );
00064 
00065         // Copy constructor: makes a copy of the original FloatType object.
00066         FloatType( const FloatType& original );
00067 
00068         // Noop destructor.
00069         virtual ~FloatType();
00070 };
00071 #ifndef H5_NO_NAMESPACE
00072 }
00073 #endif
00074 #endif