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 * https://support.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 _H5FileAccPropList_H 00018 #define _H5FileAccPropList_H 00019 00020 #ifndef H5_NO_NAMESPACE 00021 namespace H5 { 00022 #endif 00023 00024 // class for file access properties 00025 class H5_DLLCPP FileAccPropList : public PropList { 00026 public: 00027 static const FileAccPropList DEFAULT; 00028 00029 // Creates a file access property list. 00030 FileAccPropList(); 00031 00032 // Modifies this property list to use the H5FD_STDIO driver 00033 void setStdio() const; 00034 00035 // Set file driver for this property list 00036 void setDriver(hid_t new_driver_id, const void *new_driver_info) const; 00037 00038 // Returns a low-level file driver identifier. 00039 hid_t getDriver() const; 00040 00041 // Sets offset for family driver. 00042 void setFamilyOffset(hsize_t offset) const; 00043 00044 // Gets offset for family driver. 00045 hsize_t getFamilyOffset() const; 00046 00047 // Modifies this file access property list to use the sec2 driver. 00048 void setSec2() const; 00049 00050 // Modifies this file access property list to use the H5FD_CORE 00051 // driver. 00052 void setCore (size_t increment, hbool_t backing_store) const; 00053 00054 // Queries H5FD_CORE driver properties. 00055 void getCore (size_t& increment, hbool_t& backing_store) const; 00056 00057 // Sets this file access properties list to the family driver. 00058 void setFamily( hsize_t memb_size, const FileAccPropList& memb_plist ) const; 00059 00060 // Returns information about the family file access property list. 00061 void getFamily(hsize_t& memb_size, FileAccPropList& memb_plist) const; 00062 FileAccPropList getFamily(hsize_t& memb_size) const; 00063 00064 // Emulates the old split file driver, 00065 void setSplit( FileAccPropList& meta_plist, FileAccPropList& raw_plist, 00066 const char* meta_ext = ".meta", const char* raw_ext = ".raw" ) const; 00067 void setSplit( FileAccPropList& meta_plist, FileAccPropList& raw_plist, 00068 const H5std_string& meta_ext, const H5std_string& raw_ext ) const; 00069 00070 // Sets the maximum size of the data sieve buffer. 00071 void setSieveBufSize(size_t bufsize) const; 00072 00073 // Returns the current settings for the data sieve buffer size 00074 // property 00075 size_t getSieveBufSize() const; 00076 00077 // Sets the minimum size of metadata block allocations. 00078 void setMetaBlockSize(hsize_t &block_size) const; 00079 00080 // Returns the current metadata block size setting. 00081 hsize_t getMetaBlockSize() const; 00082 00083 // Modifies this file access property list to use the logging driver. 00084 void setLog(const char *logfile, unsigned flags, size_t buf_size) const; 00085 void setLog(const H5std_string& logfile, unsigned flags, size_t buf_size) const; 00086 00087 // Sets alignment properties of this file access property list 00088 void setAlignment( hsize_t threshold = 1, hsize_t alignment = 1 ) const; 00089 00090 // Retrieves the current settings for alignment properties from 00091 // this property list. 00092 void getAlignment( hsize_t& threshold, hsize_t& alignment ) const; 00093 00094 // Sets data type for multi driver. 00095 void setMultiType(H5FD_mem_t dtype) const; 00096 00097 // Returns the data type property for MULTI driver. 00098 H5FD_mem_t getMultiType() const; 00099 00100 // Sets the meta data cache and raw data chunk cache parameters. 00101 void setCache( int mdc_nelmts, size_t rdcc_nelmts, size_t rdcc_nbytes, double rdcc_w0 ) const; 00102 00103 // Queries the meta data cache and raw data chunk cache parameters. 00104 void getCache( int& mdc_nelmts, size_t& rdcc_nelmts, size_t& rdcc_nbytes, double& rdcc_w0 ) const; 00105 00106 // Sets the degree for the file close behavior. 00107 void setFcloseDegree(H5F_close_degree_t degree); 00108 00109 // Returns the degree for the file close behavior. 00110 H5F_close_degree_t getFcloseDegree(); 00111 00112 // Sets garbage collecting references flag. 00113 void setGcReferences( unsigned gc_ref = 0 ) const; 00114 00115 // Returns garbage collecting references setting. 00116 unsigned getGcReferences() const; 00117 00118 // Returns this class name 00119 virtual H5std_string fromClass () const { return("FileAccPropList"); } 00120 00121 // Copy constructor: creates a copy of a FileAccPropList object. 00122 FileAccPropList( const FileAccPropList& original ); 00123 00124 // Creates a copy of an existing file access property list 00125 // using the property list id. 00126 FileAccPropList (const hid_t plist_id); 00127 00128 // Noop destructor 00129 virtual ~FileAccPropList(); 00130 }; 00131 #ifndef H5_NO_NAMESPACE 00132 } 00133 #endif 00134 #endif