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