1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
// This may look like C code, but it is really -*- C++ -*-
// CommonFG is a protocol class. Its existence is simply to provide the
// common services that are provided by H5File and Group. The file or
// group in the context of this class is referred to as 'location'.
#ifndef _CommonFG_H
#define _CommonFG_H
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
class Group;
class H5File;
class CommonFG {
public:
// Creates a new group at this location which can be a file or another group.
Group createGroup( const string& name, size_t size_hint = 0 ) const;
Group createGroup( const char* name, size_t size_hint = 0 ) const;
// Opens an existing group in a location which can be a file or another group
Group openGroup( const string& name ) const;
Group openGroup( const char* name ) const;
// Creates a new dataset at this location.
DataSet createDataSet( const string& name, const DataType& data_type, const DataSpace& data_space, const DSetCreatPropList& create_plist = DSetCreatPropList::DEFAULT ) const;
DataSet createDataSet( const char* name, const DataType& data_type, const DataSpace& data_space, const DSetCreatPropList& create_plist = DSetCreatPropList::DEFAULT ) const;
// Opens an existing dataset at this location.
DataSet openDataSet( const string& name ) const;
DataSet openDataSet( const char* name ) const;
// Creates a link of the specified type from new_name to current_name;
// both names are interpreted relative to the specified location id
void link( H5G_link_t link_type, const string& curr_name, const string& new_name ) const;
void link( H5G_link_t link_type, const char* curr_name, const char* new_name ) const;
// Removes the specified name at this location.
void unlink( const string& name ) const;
void unlink( const char* name ) const;
// Get id of the location, either group or file - pure virtual so
// the subclass can get the correct id
virtual hid_t getLocId() const = 0;
// Renames an object at this location.
void move( const string& src, const string& dst ) const;
void move( const char* src, const char* dst ) const;
// Returns information about an HDF5 object, given by its name,
// at this location.
void getObjinfo( const string& name, hbool_t follow_link, H5G_stat_t& statbuf ) const;
void getObjinfo( const char* name, hbool_t follow_link, H5G_stat_t& statbuf ) const;
// Returns the name of the HDF5 object that the symbolic link points to.
string getLinkval( const string& name, size_t size ) const;
string getLinkval( const char* name, size_t size ) const;
// Sets the comment for an HDF5 object specified by its name
void setComment( const string& name, const string& comment ) const;
void setComment( const char* name, const char* comment ) const;
// Retrieves comment for the HDF5 object specified by its name
string getComment( const string& name, size_t bufsize ) const;
string getComment( const char* name, size_t bufsize ) const;
// Mounts the file 'child' onto this location
void mount( const string& name, H5File& child, PropList& plist ) const;
void mount( const char* name, H5File& child, PropList& plist) const;
// Unmounts the file named 'name' from this parent location
void unmount( const string& name ) const;
void unmount( const char* name ) const;
// Iterates over the elements of this group - not implemented in
// C++ style yet
int iterateElems( const string& name, int *idx, H5G_iterate_t op, void *op_data );
int iterateElems( const char* name, int *idx, H5G_iterate_t op, void *op_data );
// Opens a generic named datatype in this location
DataType openDataType( const string& name ) const;
DataType openDataType( const char* name ) const;
// Opens a named enumeration datatype in this location
EnumType openEnumType( const string& name ) const;
EnumType openEnumType( const char* name ) const;
// Opens a named compound datatype in this location
CompType openCompType( const string& name ) const;
CompType openCompType( const char* name ) const;
// Opens a named integer datatype in this location
IntType openIntType( const string& name ) const;
IntType openIntType( const char* name ) const;
// Opens a named floating-point datatype in this location
FloatType openFloatType( const string& name ) const;
FloatType openFloatType( const char* name ) const;
// Opens a named string datatype in this location
StrType openStrType( const string& name ) const;
StrType openStrType( const char* name ) const;
// for H5File and Group to throw appropriate exception
virtual void throwException() const = 0;
CommonFG();
virtual ~CommonFG();
private:
// Common code for member functions openXxxType
hid_t p_openDataType( const char* name ) const;
}; // end of CommonFG declaration
#ifndef H5_NO_NAMESPACE
}
#endif
#endif
|