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

#include <H5.h>

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

Public Member Functions

 ~DataSet ()
 
void Close ()
 
DataSpaceSharedPtr GetSpace () const
 
template<class T >
void Write (const std::vector< T > &data)
 
template<class T >
void Write (const std::vector< T > &data, DataSpaceSharedPtr filespace, PListSharedPtr dxpl=PList::Default())
 
template<class T >
void Read (std::vector< T > &data)
 
template<class T >
void Read (std::vector< T > &data, DataSpaceSharedPtr filespace, PListSharedPtr dxpl=PList::Default())
 
- 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
 

Private Member Functions

 DataSet (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

Definition at line 455 of file H5.h.

Constructor & Destructor Documentation

Nektar::LibUtilities::H5::DataSet::~DataSet ( )

Definition at line 612 of file H5.cpp.

References Close().

613 {
614  Close();
615 }
Nektar::LibUtilities::H5::DataSet::DataSet ( hid_t  id)
private

Definition at line 608 of file H5.cpp.

608  : Object(id)
609 {
610 }

Member Function Documentation

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

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

Definition at line 617 of file H5.cpp.

References H5_CALL.

Referenced by ~DataSet().

618 {
619  H5_CALL(H5Dclose, (m_Id));
620  m_Id = H5I_INVALID_HID;
621 }
#define H5_CALL(func, args)
Definition: H5.h:68
DataSpaceSharedPtr Nektar::LibUtilities::H5::DataSet::GetSpace ( ) const

Definition at line 623 of file H5.cpp.

Referenced by Read().

624 {
625  return DataSpaceSharedPtr(new DataSpace(H5Dget_space(m_Id)));
626 }
boost::shared_ptr< DataSpace > DataSpaceSharedPtr
Definition: H5.h:88
template<class T >
void Nektar::LibUtilities::H5::DataSet::Read ( std::vector< T > &  data)
inline

Definition at line 484 of file H5.h.

References ASSERTL0, GetSpace(), Nektar::LibUtilities::H5::DataTypeTraits< T >::GetType(), H5_CALL, and Nektar::LibUtilities::H5::Object::m_Id.

485  {
487  DataSpaceSharedPtr space = GetSpace();
488  ASSERTL0(H5Sget_simple_extent_ndims(space->GetId()) == 1,
489  "vector data not 1D");
490  hsize_t len, maxdim;
491  H5Sget_simple_extent_dims(space->GetId(), &len, &maxdim);
492 
493  data.resize(len);
494 
495  H5_CALL(
496  H5Dread,
497  (m_Id, mem_t->GetId(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &data[0]));
498  }
#define H5_CALL(func, args)
Definition: H5.h:68
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:198
static DataTypeSharedPtr GetType()
Definition: H5.h:538
boost::shared_ptr< DataType > DataTypeSharedPtr
Definition: H5.h:86
boost::shared_ptr< DataSpace > DataSpaceSharedPtr
Definition: H5.h:88
DataSpaceSharedPtr GetSpace() const
Definition: H5.cpp:623
template<class T >
void Nektar::LibUtilities::H5::DataSet::Read ( std::vector< T > &  data,
DataSpaceSharedPtr  filespace,
PListSharedPtr  dxpl = PList::Default() 
)
inline

Definition at line 500 of file H5.h.

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

503  {
505  hsize_t len;
506  len = H5Sget_select_npoints(filespace->GetId());
507 
508  data.resize(len);
509 
510  DataSpaceSharedPtr memspace = DataSpace::OneD(len);
511  H5Dread(m_Id,
512  mem_t->GetId(),
513  memspace->GetId(),
514  filespace->GetId(),
515  dxpl->GetId(),
516  &data[0]);
517  }
static DataTypeSharedPtr GetType()
Definition: H5.h:538
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
template<class T >
void Nektar::LibUtilities::H5::DataSet::Write ( const std::vector< T > &  data)
inline

Definition at line 462 of file H5.h.

References Nektar::LibUtilities::H5::DataTypeTraits< T >::GetType(), H5_CALL, and Nektar::LibUtilities::H5::Object::m_Id.

463  {
465  H5_CALL(
466  H5Dwrite,
467  (m_Id, mem_t->GetId(), H5S_ALL, H5S_ALL, H5P_DEFAULT, &data[0]));
468  }
#define H5_CALL(func, args)
Definition: H5.h:68
static DataTypeSharedPtr GetType()
Definition: H5.h:538
boost::shared_ptr< DataType > DataTypeSharedPtr
Definition: H5.h:86
template<class T >
void Nektar::LibUtilities::H5::DataSet::Write ( const std::vector< T > &  data,
DataSpaceSharedPtr  filespace,
PListSharedPtr  dxpl = PList::Default() 
)
inline

Definition at line 470 of file H5.h.

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

473  {
475  DataSpaceSharedPtr memspace = DataSpace::OneD(data.size());
476 
477  H5Dwrite(m_Id,
478  mem_t->GetId(),
479  memspace->GetId(),
480  filespace->GetId(),
481  dxpl->GetId(),
482  &data[0]);
483  }
static DataTypeSharedPtr GetType()
Definition: H5.h:538
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

Friends And Related Function Documentation

friend class CanHaveGroupsDataSets
friend

Definition at line 521 of file H5.h.