H5DxferProp.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 _H5DSetMemXferPropList_H
00018 #define _H5DSetMemXferPropList_H
00019 
00020 #ifndef H5_NO_NAMESPACE
00021 namespace H5 {
00022 #endif
00023 
00024 class H5_DLLCPP DSetMemXferPropList : public PropList {
00025    public:
00026         static const DSetMemXferPropList DEFAULT;
00027 
00028         // Creates a dataset memory and transfer property list.
00029         DSetMemXferPropList();
00030 
00031         // Sets type conversion and background buffers.
00032         void setBuffer( size_t size, void* tconv, void* bkg ) const;
00033 
00034         // Reads buffer settings.
00035         size_t getBuffer( void** tconv, void** bkg ) const;
00036 
00037         // Sets B-tree split ratios for a dataset transfer property list.
00038         void setBtreeRatios( double left, double middle, double right ) const;
00039 
00040         // Gets B-tree split ratios for a dataset transfer property list.
00041         void getBtreeRatios( double& left, double& middle, double& right ) const;
00042 
00043         // Sets the dataset transfer property list status to TRUE or FALSE.
00044         void setPreserve( bool status ) const;
00045 
00046         // Checks status of the dataset transfer property list.
00047         bool getPreserve() const;
00048 
00049         // Sets an exception handling callback for datatype conversion.
00050         void setTypeConvCB( H5T_conv_except_func_t op, void *user_data) const;
00051 
00052         // Gets the exception handling callback for datatype conversion.
00053         void getTypeConvCB( H5T_conv_except_func_t *op, void **user_data) const;
00054 
00055         // Sets the memory manager for variable-length datatype
00056         // allocation in H5Dread and H5Dvlen_reclaim.
00057         void setVlenMemManager( H5MM_allocate_t alloc, void* alloc_info,
00058                                 H5MM_free_t free, void* free_info ) const;
00059 
00060         // alloc and free are set to NULL, indicating that system
00061         // malloc and free are to be used.
00062         void setVlenMemManager() const;
00063 
00064         // Gets the memory manager for variable-length datatype
00065         // allocation in H5Dread and H5Tvlen_reclaim.
00066         void getVlenMemManager( H5MM_allocate_t& alloc, void** alloc_info,
00067                                 H5MM_free_t& free, void** free_info ) const;
00068 
00069         // Sets the data transfer property list for the multi-file driver.
00070         void setMulti(const hid_t *memb_dxpl);
00071 
00072         // Returns multi-file data transfer property list information.
00073         void getMulti(hid_t *memb_dxpl);
00074 
00075         // Sets the size of a contiguous block reserved for small data.
00076         void setSmallDataBlockSize(hsize_t size);
00077 
00078         // Returns the current small data block size setting.
00079         hsize_t getSmallDataBlockSize();
00080 
00081         // Sets number of I/O vectors to be read/written in hyperslab I/O.
00082         void setHyperVectorSize(size_t vector_size);
00083 
00084         // Returns the number of I/O vectors to be read/written in
00085         // hyperslab I/O.
00086         size_t getHyperVectorSize();
00087 
00088         // Enables or disables error-detecting for a dataset reading
00089         // process.
00090         void setEDCCheck(H5Z_EDC_t check);
00091 
00092         // Determines whether error-detection is enabled for dataset reads.
00093         H5Z_EDC_t getEDCCheck();
00094 
00096         virtual H5std_string fromClass () const { return("DSetMemXferPropList"); }
00097 
00098         // Copy constructor: makes a copy of a DSetMemXferPropList object.
00099         DSetMemXferPropList(const DSetMemXferPropList& orig);
00100 
00101         // Creates a copy of an existing dataset memory and transfer
00102         // property list using the property list id.
00103         DSetMemXferPropList(const hid_t plist_id);
00104 
00105         // Noop destructor
00106         virtual ~DSetMemXferPropList();
00107 };
00108 #ifndef H5_NO_NAMESPACE
00109 }
00110 #endif
00111 #endif