Files
hdf5/c++/src/H5CommonFG.h
Binh-Minh Ribler c7b27a7674 New overloaded functions and tests
Description:
    - Added VarLenType::VarLenType(const DataType& base_type)
    - Marked VarLenType::VarLenType(const DataType* base_type) deprecated
    - Added a static wrapper for H5Tdetect_class for PredType
        static bool DataType::detectClass(const PredType& pred_type, ...)
    - Removed the deprecated function Exception::printError() from code
    - Miscellaneous improvements in comments
    - Added test functions test_detect_type_class() and test_vltype()
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (jelly)
    Darwin (osx1010test)
2017-09-12 14:46:06 -05:00

98 lines
3.7 KiB
C++

// 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 COPYING file, which can be found at the root of the source code *
* distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef __CommonFG_H
#define __CommonFG_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 // __CommonFG_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.
*/