HDF5 C++ API  1.10.1
 All Classes Namespaces Functions Variables Typedefs Friends Pages
H5FaccProp.h
1 // C++ informative line for the emacs editor: -*- C++ -*-
2 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
3  * Copyright by The HDF Group. *
4  * Copyright by the Board of Trustees of the University of Illinois. *
5  * All rights reserved. *
6  * *
7  * This file is part of HDF5. The full HDF5 copyright notice, including *
8  * terms governing use, modification, and redistribution, is contained in *
9  * the COPYING file, which can be found at the root of the source code *
10  * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. *
11  * If you do not have access to either file, you may request a copy from *
12  * help@hdfgroup.org. *
13  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
14 
15 #ifndef __H5FileAccPropList_H
16 #define __H5FileAccPropList_H
17 
18 namespace H5 {
19 
24 // Inheritance: PropList -> IdComponent
25 class H5_DLLCPP FileAccPropList : public PropList {
26  public:
28  static const FileAccPropList& DEFAULT;
29 
30  // Creates a file access property list.
32 
33  // Modifies this property list to use the H5FD_STDIO driver
34  void setStdio() const;
35 
36  // Set file driver for this property list
37  void setDriver(hid_t new_driver_id, const void *new_driver_info) const;
38 
39  // Returns a low-level file driver identifier.
40  hid_t getDriver() const;
41 
42  // Sets offset for family driver.
43  void setFamilyOffset(hsize_t offset) const;
44 
45  // Gets offset for family driver.
46  hsize_t getFamilyOffset() const;
47 
48  // Modifies this file access property list to use the sec2 driver.
49  void setSec2() const;
50 
51  // Modifies this file access property list to use the H5FD_CORE
52  // driver.
53  void setCore (size_t increment, hbool_t backing_store) const;
54 
55  // Queries H5FD_CORE driver properties.
56  void getCore (size_t& increment, hbool_t& backing_store) const;
57 
58  // Sets this file access properties list to the family driver.
59  void setFamily(hsize_t memb_size, const FileAccPropList& memb_plist) const;
60 
61  // Returns information about the family file access property list.
62  void getFamily(hsize_t& memb_size, FileAccPropList& memb_plist) const;
63  FileAccPropList getFamily(hsize_t& memb_size) const;
64 
65  // Emulates the old split file driver,
66  void setSplit(const FileAccPropList& meta_plist,
67  const FileAccPropList& raw_plist,
68  const char* meta_ext = ".meta",
69  const char* raw_ext = ".raw") const;
70  void setSplit(const FileAccPropList& meta_plist,
71  const FileAccPropList& raw_plist,
72  const H5std_string& meta_ext = ".meta",
73  const H5std_string& raw_ext = ".raw") const;
74 
75  // Sets the maximum size of the data sieve buffer.
76  void setSieveBufSize(size_t bufsize) const;
77 
78  // Returns the current settings for the data sieve buffer size
79  // property
80  size_t getSieveBufSize() const;
81 
82  // Sets the minimum size of metadata block allocations.
83  void setMetaBlockSize(hsize_t &block_size) const;
84 
85  // Returns the current metadata block size setting.
86  hsize_t getMetaBlockSize() const;
87 
88  // Modifies this file access property list to use the logging driver.
89  void setLog(const char *logfile, unsigned flags, size_t buf_size) const;
90  void setLog(const H5std_string& logfile, unsigned flags, size_t buf_size) const;
91 
92  // Sets alignment properties of this file access property list
93  void setAlignment(hsize_t threshold = 1, hsize_t alignment = 1) const;
94 
95  // Retrieves the current settings for alignment properties from
96  // this property list.
97  void getAlignment(hsize_t& threshold, hsize_t& alignment) const;
98 
99  // Sets data type for multi driver.
100  void setMultiType(H5FD_mem_t dtype) const;
101 
102  // Returns the data type property for MULTI driver.
103  H5FD_mem_t getMultiType() const;
104 
105  // Sets the meta data cache and raw data chunk cache parameters.
106  void setCache(int mdc_nelmts, size_t rdcc_nelmts, size_t rdcc_nbytes, double rdcc_w0) const;
107 
108  // Queries the meta data cache and raw data chunk cache parameters.
109  void getCache(int& mdc_nelmts, size_t& rdcc_nelmts, size_t& rdcc_nbytes, double& rdcc_w0) const;
110 
111  // Sets the degree for the file close behavior.
112  void setFcloseDegree(H5F_close_degree_t degree) const;
113 
114  // Returns the degree for the file close behavior.
115  H5F_close_degree_t getFcloseDegree() const;
116 
117  // Sets file access property list to use the H5FD_DIRECT driver.
118  void setFileAccDirect(size_t boundary, size_t block_size, size_t cbuf_size) const;
119 
120  // Retrieves information about the direct file access property list.
121  void getFileAccDirect(size_t &boundary, size_t &block_size, size_t &cbuf_size) const;
122 
123  // Sets garbage collecting references flag.
124  void setGcReferences(unsigned gc_ref = 0) const;
125 
126  // Returns garbage collecting references setting.
127  unsigned getGcReferences() const;
128 
129  // Sets bounds on versions of library format to be used when creating
130  // or writing objects.
131  void setLibverBounds(H5F_libver_t libver_low, H5F_libver_t libver_high) const;
132 
133  // Gets the current settings for the library version format bounds.
134  void getLibverBounds(H5F_libver_t& libver_low, H5F_libver_t& libver_high) const;
135 
137  virtual H5std_string fromClass () const { return("FileAccPropList"); }
138 
139  // Copy constructor: creates a copy of a FileAccPropList object.
140  FileAccPropList(const FileAccPropList& original);
141 
142  // Creates a copy of an existing file access property list
143  // using the property list id.
144  FileAccPropList (const hid_t plist_id);
145 
146  // Noop destructor
147  virtual ~FileAccPropList();
148 
149 #ifndef DOXYGEN_SHOULD_SKIP_THIS
150 
151  // Deletes the global constant, should only be used by the library
152  static void deleteConstants();
153 
154  private:
155  static FileAccPropList* DEFAULT_;
156 
157  // Creates the global constant, should only be used by the library
158  static FileAccPropList* getConstant();
159 
160 #endif // DOXYGEN_SHOULD_SKIP_THIS
161 
162 }; // end of FileAccPropList
163 } // namespace H5
164 
165 #endif // __H5FileAccPropList_H
static const FileAccPropList & DEFAULT
Default file access property list.
Definition: H5FaccProp.h:28
Class FileAccPropList inherits from PropList and provides wrappers for the HDF5 file access property ...
Definition: H5FaccProp.h:25
Class PropList inherits from IdComponent and provides wrappers for the HDF5 generic property list...
Definition: H5PropList.h:24
virtual H5std_string fromClass() const
Returns this class name.
Definition: H5FaccProp.h:137


The HDF Group Help Desk:
  Copyright by The HDF Group
and the Board of Trustees of the University of Illinois