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