diff options
Diffstat (limited to 'c++/src/H5Attribute.h')
| -rw-r--r-- | c++/src/H5Attribute.h | 154 |
1 files changed, 72 insertions, 82 deletions
diff --git a/c++/src/H5Attribute.h b/c++/src/H5Attribute.h index f57b922..6851e1a 100644 --- a/c++/src/H5Attribute.h +++ b/c++/src/H5Attribute.h @@ -1,116 +1,106 @@ // C++ informative line for the emacs editor: -*- C++ -*- /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * * All rights reserved. * * * * This file is part of HDF5. The full HDF5 copyright notice, including * * terms governing use, modification, and redistribution, is contained in * - * the files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * + * the COPYING file, which can be found at the root of the source code * + * distribution tree, or in https://www.hdfgroup.org/licenses. * + * If you do not have access to either file, you may request a copy from * + * help@hdfgroup.org. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -#ifndef __H5Attribute_H -#define __H5Attribute_H +#ifndef H5Attribute_H +#define H5Attribute_H -#ifndef H5_NO_NAMESPACE namespace H5 { -#endif /*! \class Attribute \brief Class Attribute operates on HDF5 attributes. An attribute has many characteristics similar to a dataset, thus both Attribute and DataSet are derivatives of AbstractDs. Attribute also - inherits from IdComponent because an attribute is an HDF5 component that - is identified by an identifier. + inherits from H5Location because an attribute can be used to specify + a location. */ -class H5_DLLCPP Attribute : public AbstractDs, public IdComponent { - public: - // Closes this attribute. - virtual void close(); +// Inheritance: multiple H5Location/AbstractDs -> IdComponent +class H5_DLLCPP Attribute : public AbstractDs, public H5Location { + public: + // Copy constructor: same as the original Attribute. + Attribute(const Attribute &original); - // Gets the name of the file, in which this attribute belongs. - H5std_string getFileName() const; + // Default constructor + Attribute(); - // Gets the name of this attribute. - ssize_t getName(char* attr_name, size_t buf_size = 0) const; - H5std_string getName(size_t len) const; - H5std_string getName() const; - ssize_t getName(H5std_string& attr_name, size_t len = 0) const; - // The overloaded function below is replaced by the one above and it - // is kept for backward compatibility purpose. - ssize_t getName( size_t buf_size, H5std_string& attr_name ) const; + // Creates a copy of an existing attribute using the attribute id + Attribute(const hid_t attr_id); - // Gets a copy of the dataspace for this attribute. - virtual DataSpace getSpace() const; + // Closes this attribute. + virtual void close() override; - // Returns the amount of storage size required for this attribute. - virtual hsize_t getStorageSize() const; + // Gets the name of this attribute. + ssize_t getName(char *attr_name, size_t buf_size = 0) const; + H5std_string getName(size_t len) const; + H5std_string getName() const; + ssize_t getName(H5std_string &attr_name, size_t len = 0) const; + // The overloaded function below is replaced by the one above and it + // is kept for backward compatibility purpose. + ssize_t getName(size_t buf_size, H5std_string &attr_name) const; - // Returns the in memory size of this attribute's data. - virtual size_t getInMemDataSize() const; + // Gets a copy of the dataspace for this attribute. + virtual DataSpace getSpace() const override; - // Reads data from this attribute. - void read( const DataType& mem_type, void *buf ) const; - void read( const DataType& mem_type, H5std_string& strg ) const; + // Returns the amount of storage size required for this attribute. + virtual hsize_t getStorageSize() const override; - // Writes data to this attribute. - void write(const DataType& mem_type, const void *buf ) const; - void write(const DataType& mem_type, const H5std_string& strg ) const; + // Returns the in memory size of this attribute's data. + virtual size_t getInMemDataSize() const override; - // Flushes all buffers associated with the file specified by this - // attribute to disk. - void flush( H5F_scope_t scope ) const; + // Reads data from this attribute. + void read(const DataType &mem_type, void *buf) const; + void read(const DataType &mem_type, H5std_string &strg) const; - ///\brief Returns this class name. - virtual H5std_string fromClass () const { return("Attribute"); } + // Writes data to this attribute. + void write(const DataType &mem_type, const void *buf) const; + void write(const DataType &mem_type, const H5std_string &strg) const; - // Creates a copy of an existing attribute using the attribute id - Attribute( const hid_t attr_id ); + ///\brief Returns this class name. + virtual H5std_string + fromClass() const override + { + return ("Attribute"); + } - // Copy constructor: makes a copy of an existing Attribute object. - Attribute( const Attribute& original ); + // Gets the attribute id. + virtual hid_t getId() const override; - // Default constructor - Attribute(); + // Destructor: properly terminates access to this attribute. + virtual ~Attribute() override; - // Gets the attribute id. - virtual hid_t getId() const; - - // Destructor: properly terminates access to this attribute. - virtual ~Attribute(); - - protected: #ifndef DOXYGEN_SHOULD_SKIP_THIS - // Sets the attribute id. - virtual void p_setId(const hid_t new_id); + protected: + // Sets the attribute id. + virtual void p_setId(const hid_t new_id) override; #endif // DOXYGEN_SHOULD_SKIP_THIS - private: - hid_t id; // HDF5 attribute id - - // 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_get_type() const; - - // Reads variable or fixed len strings from this attribute. - void p_read_variable_len(const DataType& mem_type, H5std_string& strg) const; - void p_read_fixed_len(const DataType& mem_type, H5std_string& strg) const; - - // do not inherit H5Object::iterateAttrs - int iterateAttrs() { return 0; } - - // do not inherit H5Object::renameAttr - void renameAttr() {} -}; -#ifndef H5_NO_NAMESPACE -} -#endif -#endif // __H5Attribute_H + private: + hid_t id; // HDF5 attribute id + + // 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_get_type() const override; + + // Reads variable or fixed len strings from this attribute. + void p_read_variable_len(const DataType &mem_type, H5std_string &strg) const; + void p_read_fixed_len(const DataType &mem_type, H5std_string &strg) const; + + // Friend function to set Attribute id. For library use only. + friend void f_Attribute_setId(Attribute *attr, hid_t new_id); + +}; // end of Attribute +} // namespace H5 + +#endif // H5Attribute_H |
