Nektar++
Public Member Functions | Protected Member Functions | Private Member Functions | Friends | List of all members
Nektar::LibUtilities::H5::Group Class Reference

HDF5 Group wrapper. More...

#include <H5.h>

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

Public Member Functions

 ~Group ()
 
std::vector< std::string > GetElementNames ()
 
CanHaveAttributesSharedPtr operator[] (hsize_t idx)
 
CanHaveAttributesSharedPtr operator[] (const std::string &key)
 
- Public Member Functions inherited from Nektar::LibUtilities::H5::CanHaveAttributes
AttributeSharedPtr CreateAttribute (const std::string &name, DataTypeSharedPtr type, DataSpaceSharedPtr space)
 
AttributeSharedPtr OpenAttribute (const std::string &name)
 
template<class T >
void SetAttribute (const std::string &name, const T &value)
 
template<class T >
void SetAttribute (const std::string &name, const std::vector< T > &value)
 
template<class T >
void GetAttribute (const std::string &name, T &value)
 
template<class T >
void GetAttribute (const std::string &name, std::vector< T > &value)
 
int GetNumAttr () const
 
AttrIterator attr_begin ()
 
AttrIterator attr_end ()
 
- Public Member Functions inherited from Nektar::LibUtilities::H5::Object
void Close ()
 
hid_t GetId () const
 
 operator hid_t () const
 
- 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)
 
hsize_t GetNumElements ()
 

Protected Member Functions

virtual void v_Close () override
 
virtual hsize_t v_GetNumElements () override
 
- Protected Member Functions inherited from Nektar::LibUtilities::H5::Object
 Object ()
 
 Object (hid_t id)
 
virtual ~Object ()
 
virtual void v_Close ()=0
 
- Protected Member Functions inherited from Nektar::LibUtilities::H5::CanHaveGroupsDataSets
virtual hsize_t v_GetNumElements ()=0
 
LinkIterator begin ()
 
LinkIterator end ()
 

Private Member Functions

 Group (hid_t id)
 

Friends

class CanHaveGroupsDataSets
 

Additional Inherited Members

- Protected Attributes inherited from Nektar::LibUtilities::H5::Object
hid_t m_Id
 

Detailed Description

HDF5 Group wrapper.

Definition at line 492 of file H5.h.

Constructor & Destructor Documentation

◆ ~Group()

Nektar::LibUtilities::H5::Group::~Group ( )

Definition at line 672 of file H5.cpp.

673{
674 if (m_Id != H5I_INVALID_HID)
675 {
676 Close();
677 }
678}

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

◆ Group()

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

Definition at line 668 of file H5.cpp.

668 : Object(id)
669{
670}

Member Function Documentation

◆ GetElementNames()

std::vector< std::string > Nektar::LibUtilities::H5::Group::GetElementNames ( )

Definition at line 693 of file H5.cpp.

694{
695 std::vector<std::string> ret;
696 for (int i = 0; i < GetNumElements(); i++)
697 {
698 char name[50];
699 H5Gget_objname_by_idx(m_Id, (size_t)i, name, 50);
700 ret.push_back(std::string(name));
701 }
702 return ret;
703}

References Nektar::LibUtilities::H5::CanHaveGroupsDataSets::GetNumElements(), Nektar::LibUtilities::H5::Object::m_Id, and CellMLToNektar.pycml::name.

◆ operator[]() [1/2]

CanHaveAttributesSharedPtr Nektar::LibUtilities::H5::Group::operator[] ( const std::string &  key)

◆ operator[]() [2/2]

CanHaveAttributesSharedPtr Nektar::LibUtilities::H5::Group::operator[] ( hsize_t  idx)

◆ v_Close()

void Nektar::LibUtilities::H5::Group::v_Close ( )
overrideprotectedvirtual

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

Definition at line 680 of file H5.cpp.

681{
682 H5_CALL(H5Gclose, (m_Id));
683 m_Id = H5I_INVALID_HID;
684}
#define H5_CALL(func, args)
Definition: H5.h:64

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

◆ v_GetNumElements()

hsize_t Nektar::LibUtilities::H5::Group::v_GetNumElements ( )
overrideprotectedvirtual

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

Definition at line 686 of file H5.cpp.

687{
688 H5G_info_t info;
689 H5_CALL(H5Gget_info, (m_Id, &info));
690 return info.nlinks;
691}

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

Friends And Related Function Documentation

◆ CanHaveGroupsDataSets

friend class CanHaveGroupsDataSets
friend

Definition at line 506 of file H5.h.