HDF5 C++ API  1.8.12
 All Classes Namespaces Files Functions Variables Typedefs Macros Pages
H5CommonFG.h
Go to the documentation of this file.
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 files COPYING and Copyright.html. COPYING can be found at the root *
10  * of the source code distribution tree; Copyright.html can be found at the *
11  * root level of an installed copy of the electronic HDF5 document set and *
12  * is linked from the top-level documents page. It can also be found at *
13  * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
14  * access to either file, you may request a copy from help@hdfgroup.org. *
15  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
16 
17 #ifndef __CommonFG_H
18 #define __CommonFG_H
19 
20 #ifndef H5_NO_NAMESPACE
21 namespace H5 {
22 #endif
23 
24 // Class forwarding
25 class Group;
26 class H5File;
27 class ArrayType;
28 class VarLenType;
29 
35 class H5_DLLCPP CommonFG {
36  public:
37  // Creates a new group at this location which can be a file
38  // or another group.
39  Group createGroup(const char* name, size_t size_hint = 0) const;
40  Group createGroup(const H5std_string& name, size_t size_hint = 0) const;
41 
42  // Opens an existing group in a location which can be a file
43  // or another group.
44  Group openGroup(const char* name) const;
45  Group openGroup(const H5std_string& name) const;
46 
47  // Creates a new dataset at this location.
48  DataSet createDataSet(const char* name, const DataType& data_type, const DataSpace& data_space, const DSetCreatPropList& create_plist = DSetCreatPropList::DEFAULT) const;
49  DataSet createDataSet(const H5std_string& name, const DataType& data_type, const DataSpace& data_space, const DSetCreatPropList& create_plist = DSetCreatPropList::DEFAULT) const;
50 
51  // Opens an existing dataset at this location.
52  DataSet openDataSet(const char* name) const;
53  DataSet openDataSet(const H5std_string& name) const;
54 
55  // Returns the value of a symbolic link.
56  H5std_string getLinkval(const char* link_name, size_t size=0) const;
57  H5std_string getLinkval(const H5std_string& link_name, size_t size=0) const;
58 
59  // Returns the number of objects in this group.
60  hsize_t getNumObjs() const;
61 
62  // Retrieves the name of an object in this group, given the
63  // object's index.
64  H5std_string getObjnameByIdx(hsize_t idx) const;
65  ssize_t getObjnameByIdx(hsize_t idx, char* name, size_t size) const;
66  ssize_t getObjnameByIdx(hsize_t idx, H5std_string& name, size_t size) const;
67 
68 #ifndef H5_NO_DEPRECATED_SYMBOLS
69  // Returns the type of an object in this group, given the
70  // object's index.
71  H5G_obj_t getObjTypeByIdx(hsize_t idx) const;
72  H5G_obj_t getObjTypeByIdx(hsize_t idx, char* type_name) const;
73  H5G_obj_t getObjTypeByIdx(hsize_t idx, H5std_string& type_name) const;
74 
75  // Returns information about an HDF5 object, given by its name,
76  // at this location.
77  void getObjinfo(const char* name, hbool_t follow_link, H5G_stat_t& statbuf) const;
78  void getObjinfo(const H5std_string& name, hbool_t follow_link, H5G_stat_t& statbuf) const;
79  void getObjinfo(const char* name, H5G_stat_t& statbuf) const;
80  void getObjinfo(const H5std_string& name, H5G_stat_t& statbuf) const;
81 
82  // Iterates over the elements of this group - not implemented in
83  // C++ style yet.
84  int iterateElems(const char* name, int *idx, H5G_iterate_t op, void *op_data);
85  int iterateElems(const H5std_string& name, int *idx, H5G_iterate_t op, void *op_data);
86 #endif /* H5_NO_DEPRECATED_SYMBOLS */
87 
88  // Creates a link of the specified type from new_name to current_name;
89  // both names are interpreted relative to the specified location id.
90  void link(H5L_type_t link_type, const char* curr_name, const char* new_name) const;
91  void link(H5L_type_t link_type, const H5std_string& curr_name, const H5std_string& new_name) const;
92 
93  // Removes the specified name at this location.
94  void unlink(const char* name) const;
95  void unlink(const H5std_string& name) const;
96 
97  // Mounts the file 'child' onto this location.
98  void mount(const char* name, H5File& child, PropList& plist) const;
99  void mount(const H5std_string& name, H5File& child, PropList& plist) const;
100 
101  // Unmounts the file named 'name' from this parent location.
102  void unmount(const char* name) const;
103  void unmount(const H5std_string& name) const;
104 
105  // Renames an object at this location.
106  void move(const char* src, const char* dst) const;
107  void move(const H5std_string& src, const H5std_string& dst) const;
108 
109  // Opens a generic named datatype in this location.
110  DataType openDataType(const char* name) const;
111  DataType openDataType(const H5std_string& name) const;
112 
113  // Opens a named array datatype in this location.
114  ArrayType openArrayType(const char* name) const;
115  ArrayType openArrayType(const H5std_string& name) const;
116 
117  // Opens a named compound datatype in this location.
118  CompType openCompType(const char* name) const;
119  CompType openCompType(const H5std_string& name) const;
120 
121  // Opens a named enumeration datatype in this location.
122  EnumType openEnumType(const char* name) const;
123  EnumType openEnumType(const H5std_string& name) const;
124 
125  // Opens a named integer datatype in this location.
126  IntType openIntType(const char* name) const;
127  IntType openIntType(const H5std_string& name) const;
128 
129  // Opens a named floating-point datatype in this location.
130  FloatType openFloatType(const char* name) const;
131  FloatType openFloatType(const H5std_string& name) const;
132 
133  // Opens a named string datatype in this location.
134  StrType openStrType(const char* name) const;
135  StrType openStrType(const H5std_string& name) const;
136 
137  // Opens a named variable length datatype in this location.
138  VarLenType openVarLenType(const char* name) const;
139  VarLenType openVarLenType(const H5std_string& name) const;
140 
141 #ifndef DOXYGEN_SHOULD_SKIP_THIS
142  virtual hid_t getLocId() const = 0;
145 
146 
148  virtual void throwException(const H5std_string& func_name, const H5std_string& msg) const = 0;
149 
150  // Default constructor.
151  CommonFG();
152 
153  // Noop destructor.
154  virtual ~CommonFG();
155 #endif // DOXYGEN_SHOULD_SKIP_THIS
156 
157 }; // end of CommonFG declaration
158 
159 #ifndef H5_NO_NAMESPACE
160 }
161 #endif
162 #endif // __CommonFG_H
163 
Class PropList provides operations for generic property lists.
Definition: H5PropList.h:25
Class DataSpace operates on HDF5 dataspaces.
Definition: H5DataSpace.h:25
CompType is a derivative of a DataType and operates on HDF5 compound datatypes.
Definition: H5CompType.h:28
Class DataSet operates on HDF5 datasets.
Definition: H5DataSet.h:31
static const DSetCreatPropList DEFAULT
Constant for dataset creation default property.
Definition: H5DcreatProp.h:34
Class H5File represents an HDF5 file.
Definition: H5File.h:29
Class DSetCreatPropList represents the dataset creation property list.
Definition: H5DcreatProp.h:31
Class Group represents an HDF5 group.
Definition: H5Group.h:29
Class EnumType operates on HDF5 enum datatypes.
Definition: H5EnumType.h:25
Class IntType operates on HDF5 integer datatype.
Definition: H5IntType.h:25
Class FloatType operates on HDF5 floating point datatype.
Definition: H5FloatType.h:25
Class CommonFG is an abstract base class of H5File and H5Group.
Definition: H5CommonFG.h:35
#define H5std_string
Definition: H5Exception.h:29
Class StrType operates on HDF5 string datatypes.
Definition: H5StrType.h:25
VarLenType operates on the HDF5 C's Variable-length Datatypes.
Definition: H5VarLenType.h:28
Class DataType provides generic operations on HDF5 datatypes.
Definition: H5DataType.h:34
Class ArrayType inherits from DataType and provides wrappers for the HDF5's Array Datatypes...
Definition: H5ArrayType.h:28