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 ()
 
- Protected Member Functions inherited from Nektar::LibUtilities::H5::CanHaveGroupsDataSets
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.