Nektar++
Public 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 ()
 
void Close ()
 
virtual hsize_t GetNumElements ()
 
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
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)
 
LinkIterator begin ()
 
LinkIterator end ()
 

Private Member Functions

 Group (hid_t id)
 

Friends

class CanHaveGroupsDataSets
 

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 Group wrapper.

Definition at line 485 of file H5.h.

Constructor & Destructor Documentation

◆ ~Group()

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

Definition at line 670 of file H5.cpp.

671 {
672  if (m_Id != H5I_INVALID_HID)
673  {
674  Close();
675  }
676 }

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

◆ Group()

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

Definition at line 666 of file H5.cpp.

666  : Object(id)
667 {
668 }

Member Function Documentation

◆ Close()

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

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

Definition at line 678 of file H5.cpp.

679 {
680  H5_CALL(H5Gclose, (m_Id));
681  m_Id = H5I_INVALID_HID;
682 }
#define H5_CALL(func, args)
Definition: H5.h:67

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

Referenced by ~Group().

◆ GetElementNames()

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

Definition at line 691 of file H5.cpp.

692 {
693  std::vector<std::string> ret;
694  for(int i = 0; i < GetNumElements(); i++)
695  {
696  char name[50];
697  H5Gget_objname_by_idx(m_Id, (size_t)i, name, 50 );
698  ret.push_back(std::string(name));
699  }
700  return ret;
701 }
virtual hsize_t GetNumElements()
Definition: H5.cpp:684

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

◆ GetNumElements()

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

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

Definition at line 684 of file H5.cpp.

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

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

Referenced by GetElementNames().

◆ 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)

Friends And Related Function Documentation

◆ CanHaveGroupsDataSets

friend class CanHaveGroupsDataSets
friend

Definition at line 497 of file H5.h.