H5FaccProp.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 _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 #ifdef H5_HAVE_STREAM // for Stream Virtual File Driver
00071         // Modifies this file access property list to use the Stream driver.
00072         void setStream(H5FD_stream_fapl_t &fapl) const;
00073 
00074         // Retrieves the streaming I/O driver settings
00075         H5FD_stream_fapl_t getStream() const;
00076 #endif
00077 
00078         // Sets the maximum size of the data sieve buffer.
00079         void setSieveBufSize(size_t bufsize) const;
00080 
00081         // Returns the current settings for the data sieve buffer size
00082         // property
00083         size_t getSieveBufSize() const;
00084 
00085         // Sets the minimum size of metadata block allocations.
00086         void setMetaBlockSize(hsize_t &block_size) const;
00087 
00088         // Returns the current metadata block size setting.
00089         hsize_t getMetaBlockSize() const;
00090 
00091         // Modifies this file access property list to use the logging driver.
00092         void setLog(const char *logfile, unsigned flags, size_t buf_size) const;
00093         void setLog(const H5std_string& logfile, unsigned flags, size_t buf_size) const;
00094 
00095         // Sets alignment properties of this file access property list
00096         void setAlignment( hsize_t threshold = 1, hsize_t alignment = 1 ) const;
00097 
00098         // Retrieves the current settings for alignment properties from
00099         // this property list.
00100         void getAlignment( hsize_t& threshold, hsize_t& alignment ) const;
00101 
00102         // Sets data type for multi driver.
00103         void setMultiType(H5FD_mem_t dtype) const;
00104 
00105         // Returns the data type property for MULTI driver.
00106         H5FD_mem_t getMultiType() const;
00107 
00108         // Sets the meta data cache and raw data chunk cache parameters.
00109         void setCache( int mdc_nelmts, size_t rdcc_nelmts, size_t rdcc_nbytes, double rdcc_w0 ) const;
00110 
00111         // Queries the meta data cache and raw data chunk cache parameters.
00112         void getCache( int& mdc_nelmts, size_t& rdcc_nelmts, size_t& rdcc_nbytes, double& rdcc_w0 ) const;
00113 
00114         // Sets the degree for the file close behavior.
00115         void setFcloseDegree(H5F_close_degree_t degree);
00116 
00117         // Returns the degree for the file close behavior.
00118         H5F_close_degree_t getFcloseDegree();
00119 
00120         // Sets garbage collecting references flag.
00121         void setGcReferences( unsigned gc_ref = 0 ) const;
00122 
00123         // Returns garbage collecting references setting.
00124         unsigned getGcReferences() const;
00125 
00127         virtual H5std_string fromClass () const { return("FileAccPropList"); }
00128 
00129         // Copy constructor: creates a copy of a FileAccPropList object.
00130         FileAccPropList( const FileAccPropList& original );
00131 
00132         // Creates a copy of an existing file access property list
00133         // using the property list id.
00134         FileAccPropList (const hid_t plist_id);
00135 
00136         // Noop destructor
00137         virtual ~FileAccPropList();
00138 };
00139 #ifndef H5_NO_NAMESPACE
00140 }
00141 #endif
00142 #endif