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 __H5ObjCreatPropList_H
16 #define __H5ObjCreatPropList_H
17 
18 namespace H5 {
19 
20 /*! \class ObjCreatPropList
21     \brief Class ObjCreatPropList inherits from PropList and provides
22     wrappers for the HDF5 file create property list.
23 */
24 //  Inheritance: PropList -> IdComponent
25 class H5_DLLCPP ObjCreatPropList : public PropList {
26    public:
27         ///\brief Default object creation property list.
28         static const ObjCreatPropList& DEFAULT;
29 
30         // Creates a object creation property list.
31         ObjCreatPropList();
32 
33         // Sets attribute storage phase change thresholds.
34         void setAttrPhaseChange(unsigned max_compact = 8, unsigned min_dense = 6) const;
35 
36         // Gets attribute storage phase change thresholds.
37         void getAttrPhaseChange(unsigned& max_compact, unsigned& min_dense) const;
38 
39         // Sets tracking and indexing of attribute creation order.
40         void setAttrCrtOrder(unsigned crt_order_flags) const;
41 
42         // Gets tracking and indexing settings for attribute creation order.
43         unsigned getAttrCrtOrder() const;
44 
45 
46         ///\brief Returns this class name.
fromClass()47         virtual H5std_string fromClass () const { return("ObjCreatPropList"); }
48 
49         // Copy constructor: creates a copy of a ObjCreatPropList object.
50         ObjCreatPropList(const ObjCreatPropList& original);
51 
52         // Creates a copy of an existing object creation property list
53         // using the property list id.
54         ObjCreatPropList (const hid_t plist_id);
55 
56         // Noop destructor
57         virtual ~ObjCreatPropList();
58 
59 #ifndef DOXYGEN_SHOULD_SKIP_THIS
60 
61         // Deletes the global constant, should only be used by the library
62         static void deleteConstants();
63 
64     private:
65         static ObjCreatPropList* DEFAULT_;
66 
67         // Creates the global constant, should only be used by the library
68         static ObjCreatPropList* getConstant();
69 
70 #endif // DOXYGEN_SHOULD_SKIP_THIS
71 
72 }; // end of ObjCreatPropList
73 } // namespace H5
74 
75 #endif // __H5ObjCreatPropList_H
76