You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

96 lines
3.5 KiB
C++

// C++ informative line for the emacs editor: -*- C++ -*-
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* 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 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 H5CommonFG_H
#define H5CommonFG_H
namespace H5 {
// Class forwarding
class Group;
class H5File;
class ArrayType;
class VarLenType;
/*! \class CommonFG
\brief \a CommonFG is an abstract base class of H5Group.
*/
/* Note: This class is being deprecated gradually. */
class H5_DLLCPP CommonFG {
public:
// Opens a generic named datatype in this location.
DataType openDataType(const char *name) const;
DataType openDataType(const H5std_string &name) const;
// Opens a named array datatype in this location.
ArrayType openArrayType(const char *name) const;
ArrayType openArrayType(const H5std_string &name) const;
// Opens a named compound datatype in this location.
CompType openCompType(const char *name) const;
CompType openCompType(const H5std_string &name) const;
// Opens a named enumeration datatype in this location.
EnumType openEnumType(const char *name) const;
EnumType openEnumType(const H5std_string &name) const;
// Opens a named integer datatype in this location.
IntType openIntType(const char *name) const;
IntType openIntType(const H5std_string &name) const;
// Opens a named floating-point datatype in this location.
FloatType openFloatType(const char *name) const;
FloatType openFloatType(const H5std_string &name) const;
// Opens a named string datatype in this location.
StrType openStrType(const char *name) const;
StrType openStrType(const H5std_string &name) const;
// Opens a named variable length datatype in this location.
VarLenType openVarLenType(const char *name) const;
VarLenType openVarLenType(const H5std_string &name) const;
#ifndef DOXYGEN_SHOULD_SKIP_THIS
/// For subclasses, H5File and Group, to return the correct
/// object id, i.e. file or group id.
virtual hid_t getLocId() const = 0;
/// For subclasses, H5File and Group, to throw appropriate exception.
virtual void throwException(const H5std_string &func_name, const H5std_string &msg) const = 0;
// Default constructor.
CommonFG();
// Noop destructor.
virtual ~CommonFG();
protected:
virtual void p_setId(const hid_t new_id) = 0;
#endif // DOXYGEN_SHOULD_SKIP_THIS
}; // end of CommonFG
} // namespace H5
#endif // H5CommonFG_H
/***************************************************************************
Design Note
===========
September 2017:
This class used to be base class of H5File as well, until the
restructure that moved H5File to be subclass of H5Group.
*/