Nektar++
Public Member Functions | Static Public Member Functions | Private Member Functions | List of all members
Nektar::LibUtilities::H5::File Class Reference

HDF5 file wrapper. More...

#include <H5.h>

Inheritance diagram for Nektar::LibUtilities::H5::File:
[legend]

Public Member Functions

 ~File ()
 
void Close ()
 
virtual hsize_t GetNumElements ()
 
- Public Member Functions inherited from Nektar::LibUtilities::H5::CanHaveGroupsDataSets
GroupSharedPtr CreateGroup (const std::string &name, PListSharedPtr createPL=PList::Default(), PListSharedPtr accessPL=PList::Default())
 
DataSetSharedPtr CreateDataSet (const std::string &name, DataTypeSharedPtr type, DataSpaceSharedPtr space, PListSharedPtr createPL=PList::Default(), PListSharedPtr accessPL=PList::Default())
 
template<class T >
DataSetSharedPtr CreateWriteDataSet (const std::string &name, const std::vector< T > &data, PListSharedPtr createPL=PList::Default(), PListSharedPtr accessPL=PList::Default())
 
GroupSharedPtr OpenGroup (const std::string &name, PListSharedPtr accessPL=PList::Default()) const
 
DataSetSharedPtr OpenDataSet (const std::string &name, PListSharedPtr accessPL=PList::Default()) const
 
bool ContainsDataSet (std::string nm)
 
LinkIterator begin ()
 
LinkIterator end ()
 
- Public Member Functions inherited from Nektar::LibUtilities::H5::Object
hid_t GetId () const
 
 operator hid_t () const
 

Static Public Member Functions

static FileSharedPtr Create (const std::string &filename, unsigned mode, PListSharedPtr createPL=PList::Default(), PListSharedPtr accessPL=PList::Default())
 
static FileSharedPtr Open (const std::string &filename, unsigned mode, PListSharedPtr accessPL=PList::Default())
 

Private Member Functions

 File (hid_t id)
 

Additional Inherited Members

- Protected Member Functions inherited from Nektar::LibUtilities::H5::Object
 Object ()
 
 Object (hid_t id)
 
virtual ~Object ()
 
- Protected Attributes inherited from Nektar::LibUtilities::H5::Object
hid_t m_Id
 

Detailed Description

HDF5 file wrapper.

Definition at line 466 of file H5.h.

Constructor & Destructor Documentation

◆ ~File()

Nektar::LibUtilities::H5::File::~File ( )

Definition at line 648 of file H5.cpp.

649 {
650  if (m_Id != H5I_INVALID_HID)
651  {
652  Close();
653  }
654 }

References Close(), and Nektar::LibUtilities::H5::Object::m_Id.

◆ File()

Nektar::LibUtilities::H5::File::File ( hid_t  id)
private

Definition at line 629 of file H5.cpp.

629  : Object(id)
630 {
631 }

Referenced by Create(), and Open().

Member Function Documentation

◆ Close()

void Nektar::LibUtilities::H5::File::Close ( )
virtual

Implements Nektar::LibUtilities::H5::Object.

Definition at line 656 of file H5.cpp.

657 {
658  H5_CALL(H5Fclose, (m_Id));
659  m_Id = H5I_INVALID_HID;
660 }
#define H5_CALL(func, args)
Definition: H5.h:67

References H5_CALL, and Nektar::LibUtilities::H5::Object::m_Id.

Referenced by ~File().

◆ Create()

FileSharedPtr Nektar::LibUtilities::H5::File::Create ( const std::string &  filename,
unsigned  mode,
PListSharedPtr  createPL = PList::Default(),
PListSharedPtr  accessPL = PList::Default() 
)
static

Definition at line 632 of file H5.cpp.

634 {
635  hid_t id;
636  H5_CONSTRUCT(id, H5Fcreate, (filename.c_str(), mode, createPL->GetId(),
637  accessPL->GetId()));
638  return FileSharedPtr(new File(id));
639 }
#define H5_CONSTRUCT(ans, func, args)
Definition: H5.h:56
std::shared_ptr< File > FileSharedPtr
Definition: H5.h:100

References File(), and H5_CONSTRUCT.

Referenced by Nektar::LibUtilities::FieldIOHdf5::v_Write().

◆ GetNumElements()

hsize_t Nektar::LibUtilities::H5::File::GetNumElements ( )
virtual

Implements Nektar::LibUtilities::H5::CanHaveGroupsDataSets.

Definition at line 661 of file H5.cpp.

662 {
663  GroupSharedPtr root = OpenGroup("/");
664  return root->GetNumElements();
665 }
GroupSharedPtr OpenGroup(const std::string &name, PListSharedPtr accessPL=PList::Default()) const
Definition: H5.cpp:247
std::shared_ptr< Group > GroupSharedPtr
Definition: FieldIOHdf5.h:49

References Nektar::LibUtilities::H5::CanHaveGroupsDataSets::OpenGroup().

◆ Open()

FileSharedPtr Nektar::LibUtilities::H5::File::Open ( const std::string &  filename,
unsigned  mode,
PListSharedPtr  accessPL = PList::Default() 
)
static

Definition at line 640 of file H5.cpp.

642 {
643  hid_t id;
644  H5_CONSTRUCT(id, H5Fopen, (filename.c_str(), mode, accessPL->GetId()));
645  return FileSharedPtr(new File(id));
646 }

References File(), and H5_CONSTRUCT.

Referenced by Nektar::LibUtilities::FieldIOHdf5::v_Write().