Nektar++
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Classes | Public Member Functions | Friends | List of all members
Nektar::LibUtilities::H5::CanHaveGroupsDataSets Class Referenceabstract

Mixin for objects that contain groups and datasets (Group and File) More...

#include <H5.h>

Inheritance diagram for Nektar::LibUtilities::H5::CanHaveGroupsDataSets:
Inheritance graph
[legend]
Collaboration diagram for Nektar::LibUtilities::H5::CanHaveGroupsDataSets:
Collaboration graph
[legend]

Classes

class  LinkIterator
 

Public Member Functions

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
 
virtual hsize_t GetNumElements ()=0
 
LinkIterator begin ()
 
LinkIterator end ()
 
- Public Member Functions inherited from Nektar::LibUtilities::H5::Object
virtual void Close ()=0
 
hid_t GetId () const
 
 operator hid_t () const
 

Friends

class key_iterator
 

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

Mixin for objects that contain groups and datasets (Group and File)

Definition at line 181 of file H5.h.

Member Function Documentation

CanHaveGroupsDataSets::LinkIterator Nektar::LibUtilities::H5::CanHaveGroupsDataSets::begin ( )

Definition at line 266 of file H5.cpp.

267 {
268  // Have to use dynamic because of virtual inheritance
270  boost::dynamic_pointer_cast<CanHaveGroupsDataSets>(shared_from_this());
271  return CanHaveGroupsDataSets::LinkIterator(thisSh);
272 }
boost::shared_ptr< CanHaveGroupsDataSets > CanHaveGroupsDataSetsSharedPtr
Definition: H5.h:94
DataSetSharedPtr Nektar::LibUtilities::H5::CanHaveGroupsDataSets::CreateDataSet ( const std::string &  name,
DataTypeSharedPtr  type,
DataSpaceSharedPtr  space,
PListSharedPtr  createPL = PList::Default(),
PListSharedPtr  accessPL = PList::Default() 
)

Definition at line 229 of file H5.cpp.

References H5_CONSTRUCT.

Referenced by CreateWriteDataSet().

234 {
235  hid_t ds;
236  H5_CONSTRUCT(ds, H5Dcreate2,
237  (m_Id, name.c_str(), type->GetId(), space->GetId(),
238  H5P_DEFAULT, createPL->GetId(), accessPL->GetId()));
239 
240  DataSetSharedPtr ans(new DataSet(ds));
241  return ans;
242 }
boost::shared_ptr< DataSet > DataSetSharedPtr
Definition: H5.h:100
#define H5_CONSTRUCT(ans, func, args)
Definition: H5.h:57
GroupSharedPtr Nektar::LibUtilities::H5::CanHaveGroupsDataSets::CreateGroup ( const std::string &  name,
PListSharedPtr  createPL = PList::Default(),
PListSharedPtr  accessPL = PList::Default() 
)

Definition at line 218 of file H5.cpp.

References H5_CONSTRUCT.

221 {
222  hid_t grp;
223  H5_CONSTRUCT(grp, H5Gcreate2, (m_Id, name.c_str(), H5P_DEFAULT,
224  createPL->GetId(), accessPL->GetId()));
225  GroupSharedPtr ans(new Group(grp));
226  return ans;
227 }
boost::shared_ptr< Group > GroupSharedPtr
Definition: FieldIOHdf5.h:50
#define H5_CONSTRUCT(ans, func, args)
Definition: H5.h:57
template<class T >
DataSetSharedPtr Nektar::LibUtilities::H5::CanHaveGroupsDataSets::CreateWriteDataSet ( const std::string &  name,
const std::vector< T > &  data,
PListSharedPtr  createPL = PList::Default(),
PListSharedPtr  accessPL = PList::Default() 
)

Definition at line 697 of file H5.h.

References CreateDataSet(), Nektar::LibUtilities::H5::DataTypeTraits< T >::GetType(), and Nektar::LibUtilities::H5::DataSpace::OneD().

702 {
704  DataSpaceSharedPtr space = DataSpace::OneD(data.size());
705  DataSetSharedPtr dataset =
706  CreateDataSet(name, type, space, createPL, accessPL);
707  dataset->Write(data);
708  return dataset;
709 }
boost::shared_ptr< DataSet > DataSetSharedPtr
Definition: H5.h:100
static DataTypeSharedPtr GetType()
Definition: H5.h:538
DataSetSharedPtr CreateDataSet(const std::string &name, DataTypeSharedPtr type, DataSpaceSharedPtr space, PListSharedPtr createPL=PList::Default(), PListSharedPtr accessPL=PList::Default())
Definition: H5.cpp:229
boost::shared_ptr< DataType > DataTypeSharedPtr
Definition: H5.h:86
boost::shared_ptr< DataSpace > DataSpaceSharedPtr
Definition: H5.h:88
static DataSpaceSharedPtr OneD(hsize_t size)
Definition: H5.cpp:403
CanHaveGroupsDataSets::LinkIterator Nektar::LibUtilities::H5::CanHaveGroupsDataSets::end ( )

Definition at line 274 of file H5.cpp.

275 {
276  // Have to use dynamic because of virtual inheritance
278  boost::dynamic_pointer_cast<CanHaveGroupsDataSets>(shared_from_this());
279  return CanHaveGroupsDataSets::LinkIterator(thisSh, GetNumElements());
280 }
boost::shared_ptr< CanHaveGroupsDataSets > CanHaveGroupsDataSetsSharedPtr
Definition: H5.h:94
virtual hsize_t Nektar::LibUtilities::H5::CanHaveGroupsDataSets::GetNumElements ( )
pure virtual
DataSetSharedPtr Nektar::LibUtilities::H5::CanHaveGroupsDataSets::OpenDataSet ( const std::string &  name,
PListSharedPtr  accessPL = PList::Default() 
) const

Definition at line 257 of file H5.cpp.

References H5_CONSTRUCT.

259 {
260  hid_t ds;
261  H5_CONSTRUCT(ds, H5Dopen2, (m_Id, name.c_str(), accessPL->GetId()));
262  DataSetSharedPtr ans(new DataSet(ds));
263  return ans;
264 }
boost::shared_ptr< DataSet > DataSetSharedPtr
Definition: H5.h:100
#define H5_CONSTRUCT(ans, func, args)
Definition: H5.h:57
GroupSharedPtr Nektar::LibUtilities::H5::CanHaveGroupsDataSets::OpenGroup ( const std::string &  name,
PListSharedPtr  accessPL = PList::Default() 
) const

Definition at line 246 of file H5.cpp.

References H5_CONSTRUCT.

Referenced by Nektar::LibUtilities::H5::File::GetNumElements().

248 {
249  hid_t grp;
250  H5_CONSTRUCT(grp, H5Gopen2, (m_Id, name.c_str(), accessPL->GetId()));
251  GroupSharedPtr ans(new Group(grp));
252  return ans;
253 }
boost::shared_ptr< Group > GroupSharedPtr
Definition: FieldIOHdf5.h:50
#define H5_CONSTRUCT(ans, func, args)
Definition: H5.h:57

Friends And Related Function Documentation

friend class key_iterator
friend

Definition at line 249 of file H5.h.