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.
141 lines
5.4 KiB
C++
141 lines
5.4 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 H5File_H
|
|
#define H5File_H
|
|
|
|
namespace H5 {
|
|
|
|
/*! \class H5File
|
|
\brief Class H5File represents an HDF5 file and inherits from class Group
|
|
as file is a root group.
|
|
*/
|
|
// Inheritance: Group -> CommonFG/H5Object -> H5Location -> IdComponent
|
|
class H5_DLLCPP H5File : public Group {
|
|
public:
|
|
// Creates or opens an HDF5 file.
|
|
H5File(const char *name, unsigned int flags,
|
|
const FileCreatPropList &create_plist = FileCreatPropList::DEFAULT,
|
|
const FileAccPropList &access_plist = FileAccPropList::DEFAULT);
|
|
H5File(const H5std_string &name, unsigned int flags,
|
|
const FileCreatPropList &create_plist = FileCreatPropList::DEFAULT,
|
|
const FileAccPropList &access_plist = FileAccPropList::DEFAULT);
|
|
H5File(const char *name, unsigned int flags, const FileAccPropList &access_plist);
|
|
H5File(const H5std_string &name, unsigned int flags, const FileAccPropList &access_plist);
|
|
|
|
// Open the file
|
|
void openFile(const H5std_string &name, unsigned int flags,
|
|
const FileAccPropList &access_plist = FileAccPropList::DEFAULT);
|
|
void openFile(const char *name, unsigned int flags,
|
|
const FileAccPropList &access_plist = FileAccPropList::DEFAULT);
|
|
|
|
// Close this file.
|
|
virtual void close() override;
|
|
|
|
// Gets a copy of the access property list of this file.
|
|
FileAccPropList getAccessPlist() const;
|
|
|
|
// Gets a copy of the creation property list of this file.
|
|
FileCreatPropList getCreatePlist() const;
|
|
|
|
// Gets general information about this file.
|
|
void getFileInfo(H5F_info2_t &file_info) const;
|
|
|
|
// Returns the amount of free space in the file.
|
|
hssize_t getFreeSpace() const;
|
|
|
|
// Returns the number of opened object IDs (files, datasets, groups
|
|
// and datatypes) in the same file.
|
|
ssize_t getObjCount(unsigned types = H5F_OBJ_ALL) const;
|
|
|
|
// Retrieves a list of opened object IDs (files, datasets, groups
|
|
// and datatypes) in the same file.
|
|
void getObjIDs(unsigned types, size_t max_objs, hid_t *oid_list) const;
|
|
|
|
// Returns the pointer to the file handle of the low-level file driver.
|
|
void getVFDHandle(void **file_handle) const;
|
|
void getVFDHandle(const FileAccPropList &fapl, void **file_handle) const;
|
|
// void getVFDHandle(FileAccPropList& fapl, void **file_handle) const; // removed from 1.8.18 and 1.10.1
|
|
|
|
// Returns the file size of the HDF5 file.
|
|
hsize_t getFileSize() const;
|
|
|
|
// Returns the 'file number' of the HDF5 file.
|
|
unsigned long getFileNum() const;
|
|
|
|
// Determines if a file, specified by its name, is in HDF5 format
|
|
static bool isHdf5(const char *name);
|
|
static bool isHdf5(const H5std_string &name);
|
|
|
|
// Determines if a file, specified by its name, can be accessed as HDF5
|
|
static bool isAccessible(const char *name,
|
|
const FileAccPropList &access_plist = FileAccPropList::DEFAULT);
|
|
static bool isAccessible(const H5std_string &name,
|
|
const FileAccPropList &access_plist = FileAccPropList::DEFAULT);
|
|
|
|
// Reopens this file.
|
|
void reOpen(); // added for better name
|
|
|
|
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
|
void reopen(); // obsolete in favor of reOpen()
|
|
|
|
// Creates an H5File using an existing file id. Not recommended
|
|
// in applications.
|
|
H5File(hid_t existing_id);
|
|
|
|
#endif // DOXYGEN_SHOULD_SKIP_THIS
|
|
|
|
///\brief Returns this class name.
|
|
virtual H5std_string
|
|
fromClass() const override
|
|
{
|
|
return ("H5File");
|
|
}
|
|
|
|
// Throw file exception.
|
|
virtual void throwException(const H5std_string &func_name, const H5std_string &msg) const override;
|
|
|
|
// For CommonFG to get the file id.
|
|
virtual hid_t getLocId() const override;
|
|
|
|
// Default constructor
|
|
H5File();
|
|
|
|
// Copy constructor: same as the original H5File.
|
|
H5File(const H5File &original);
|
|
|
|
// Gets the HDF5 file id.
|
|
virtual hid_t getId() const override;
|
|
|
|
// H5File destructor.
|
|
virtual ~H5File() override;
|
|
|
|
protected:
|
|
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
|
// Sets the HDF5 file id.
|
|
virtual void p_setId(const hid_t new_id) override;
|
|
#endif // DOXYGEN_SHOULD_SKIP_THIS
|
|
|
|
private:
|
|
hid_t id; // HDF5 file id
|
|
|
|
// This function is private and contains common code between the
|
|
// constructors taking a string or a char*
|
|
void p_get_file(const char *name, unsigned int flags, const FileCreatPropList &create_plist,
|
|
const FileAccPropList &access_plist);
|
|
|
|
}; // end of H5File
|
|
} // namespace H5
|
|
|
|
#endif // H5File_H
|