summaryrefslogtreecommitdiffstats
path: root/c++/src/H5Attribute.h
blob: 7c509d5f1e3ee96c8fde1ac3979c2fe8382820cf (plain)
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
// C++ informative line for the emacs editor: -*- C++ -*-
#ifndef H5Attribute_H_
#define H5Attribute_H_

#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif

class Attribute : public AbstractDs {
   public:
	// Writes data to this attribute.
	void write(const DataType& mem_type, const void *buf ) const;

	// Reads data from this attribute.
	void read( const DataType& mem_type, void *buf ) const;

	// Gets a copy of the dataspace for this attribute.
	virtual DataSpace getSpace() const;

	// Gets the name of this attribute.
	ssize_t getName( size_t buf_size, string& attr_name ) const;
	string getName( size_t buf_size ) const; // returns name, not its length

	// do not inherit iterateAttrs from H5Object
	int iterateAttrs() { return 0; }

	// Used by the API to appropriately close a attribute
	virtual void p_close() const;

        // Creates a copy of an existing attribute using the attribute id
        Attribute( const hid_t attr_id );

	// Copy constructor: makes a copy of an existing Attribute object.
	Attribute( const Attribute& original );

	virtual ~Attribute();

   private:
	// This function contains the common code that is used by 
	// getTypeClass and various API functions getXxxType 
	// defined in AbstractDs for generic datatype and specific 
	// sub-types
	virtual hid_t p_getType() const;
};
#ifndef H5_NO_NAMESPACE
}
#endif
#endif