gambit is hosted by Hepforge, IPPP Durham
GAMBIT  v1.5.0-252-gf9a3f78
a Global And Modular Bsm Inference Tool
Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH > Class Template Reference

Wrapper object to manage a single dataset. More...

#include <DataSetInterfaceBase.hpp>

Inheritance diagram for Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >:
Collaboration diagram for Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >:

Public Member Functions

std::string get_myname () const
 
std::size_t get_dsetrank () const
 
std::size_t get_chunklength () const
 
const hsize_t * get_maxdsetdims () const
 
const hsize_t * get_chunkdims () const
 
const hsize_t * get_slicedims () const
 
unsigned long get_nextemptyslab () const
 
unsigned long dset_length () const
 
char access_mode () const
 
void reset_nextemptyslab ()
 
hsize_t * dsetdims ()
 

Protected Member Functions

hid_t get_dset_id () const
 

Protected Attributes

hid_t dset_id
 
unsigned long dsetnextemptyslab
 
unsigned long virtualwriteposition
 

Private Attributes

hid_t mylocation_id
 
std::string myname
 
std::size_t record_dims [DSETRANK]
 
hsize_t dims [DSETRANK]
 
hsize_t maxdims [DSETRANK]
 
hsize_t chunkdims [DSETRANK]
 
hsize_t slicedims [DSETRANK]
 
bool resume
 
char access
 

Static Private Attributes

static const std::size_t DSETRANK = RECORDRANK+1
 
static const hid_t hdftype_id = get_hdf5_data_type<T>::type()
 DataSetInterfaceBase class member definitions. More...
 
 DataSetInterfaceBase ()
 Constructors. More...
 
 DataSetInterfaceBase (hid_t location_id, const std::string &name, const std::size_t rdims[DSETRANK], const bool resume, const char access)
 
virtual ~DataSetInterfaceBase ()
 Do cleanup (close dataset) More...
 
hid_t createDataSet (hid_t location_id, const std::string &name, const std::size_t rdims[DSETRANK])
 Create a (chunked) dataset. More...
 
hid_t openDataSet (hid_t location_id, const std::string &name, const std::size_t rdims[DSETRANK])
 Open an existing dataset. More...
 
void closeDataSet ()
 Close an open dataset. More...
 
void extend_dset (const unsigned long i)
 Extend dataset to nearest multiple of CHUNKLENGTH above supplied length. More...
 

Detailed Description

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
class Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >

Wrapper object to manage a single dataset.

Definition at line 45 of file DataSetInterfaceBase.hpp.

Constructor & Destructor Documentation

◆ DataSetInterfaceBase() [1/2]

◆ DataSetInterfaceBase() [2/2]

template<class T , std::size_t RR, std::size_t CL>
Gambit::Printers::DataSetInterfaceBase< T, RR, CL >::DataSetInterfaceBase ( hid_t  location_id,
const std::string &  name,
const std::size_t  rdims[DSETRANK],
const bool  resume,
const char  access 
)

Definition at line 160 of file DataSetInterfaceBase.hpp.

161  : mylocation_id(location_id)
162  , myname(name)
163  , record_dims() /* doh have to copy array element by element */
164  , resume(r)
165  , access(a)
166  , dset_id(-1)
167  , dsetnextemptyslab(0)
168  {
169  if(resume)
170  {
171  dset_id = openDataSet(location_id,name,rdims);
172  }
173  else
174  {
175  dset_id = createDataSet(location_id,name,rdims);
176  }
177  if(dset_id<0)
178  {
179  std::ostringstream errmsg;
180  errmsg << "Error! Failed to attach interface to dataset '"<<this->get_myname()<<"', and problem was not caught during open or create routine! This is a bug, please fix.";
181  printer_error().raise(LOCAL_INFO, errmsg.str());
182  }
183  // copy rdims to record_dims
184  for(std::size_t i=0; i<DSETRANK; i++) { record_dims[i] = rdims[i]; }
185  }
hid_t openDataSet(hid_t location_id, const std::string &name, const std::size_t rdims[DSETRANK])
Open an existing dataset.
EXPORT_SYMBOLS error & printer_error()
Printer errors.
#define LOCAL_INFO
Definition: local_info.hpp:34
START_MODEL dNur_CMB r
hid_t createDataSet(hid_t location_id, const std::string &name, const std::size_t rdims[DSETRANK])
Create a (chunked) dataset.

◆ ~DataSetInterfaceBase()

template<class T , std::size_t RR, std::size_t CL>
Gambit::Printers::DataSetInterfaceBase< T, RR, CL >::~DataSetInterfaceBase ( )
virtual

Do cleanup (close dataset)

Definition at line 189 of file DataSetInterfaceBase.hpp.

Referenced by Gambit::Printers::DataSetInterfaceBase< uint, 0, CHUNKLENGTH >::dsetdims().

190  {
191  // TODO: Having problems with copied objects sharing dataset identifiers, and closing datasets prematurely on each other.
192  // To fix, will probably need to have a fancy copy constructor or something. Or wrap datasets in an
193  // object which itself has a fancy copy constructor. For now, just leave dataset resources lying around,
194  // probably won't cause any issues.
195  // Or could explicity tell interface to close datasets before the objects are destroyed.
196  //if(this->dset_id>=0)
197  //{
198  // herr_t status = H5Dclose(this->dset_id);
199  // if(status<0)
200  // {
201  // logger() << LogTags::printers << LogTags::err <<LogTags::repeat_to_cerr<< LOCAL_INFO << ": Error destructing DataSetInterfaceBase! Failed to close wrapped dataset! (H5Dclose failed). No exception thrown because this will behave badly when throw from a destructor. (dataset name: "<<myname<<")"<<EOM;
202  // }
203  //}
204  }
Here is the caller graph for this function:

Member Function Documentation

◆ access_mode()

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
char Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::access_mode ( ) const
inline

Definition at line 112 of file DataSetInterfaceBase.hpp.

◆ closeDataSet()

template<class T , std::size_t RR, std::size_t CL>
void Gambit::Printers::DataSetInterfaceBase< T, RR, CL >::closeDataSet ( )

Close an open dataset.

Release resources associated with the underlying dataset.

Definition at line 208 of file DataSetInterfaceBase.hpp.

Referenced by Gambit::Printers::DataSetInterfaceBase< uint, 0, CHUNKLENGTH >::dsetdims(), Gambit::Printers::VertexBufferNumeric1D_HDF5< T, CHUNKLENGTH >::finalise(), and Gambit::Printers::HDF5Reader::~HDF5Reader().

209  {
210  if(this->dset_id>=0)
211  {
212  herr_t status = H5Dclose(this->dset_id);
213  if(status<0)
214  {
215  std::ostringstream errmsg;
216  errmsg << "Error closing dataset (with name: \""<<this->get_myname()<<"\") in HDF5 file. H5Dclose failed.";
217  printer_error().raise(LOCAL_INFO, errmsg.str());
218  }
219  }
220  }
EXPORT_SYMBOLS error & printer_error()
Printer errors.
#define LOCAL_INFO
Definition: local_info.hpp:34
Here is the caller graph for this function:

◆ createDataSet()

template<class T , std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
hid_t Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::createDataSet ( hid_t  location_id,
const std::string &  name,
const std::size_t  rdims[DSETRANK] 
)

Create a (chunked) dataset.

Definition at line 224 of file DataSetInterfaceBase.hpp.

Referenced by Gambit::Printers::DataSetInterfaceBase< uint, 0, CHUNKLENGTH >::dsetdims().

225  {
226  // I'd like to declare rdims as rdims[RECORDRANK], but apparantly zero length arrays are not allowed,
227  // so this would not compile in the RECORDRANK=0 case, which I need. Irritating.
228 
229  // Compute initial dataspace and chunk dimensions
230  dims[0] = 0; //1*CHUNKLENGTH; // Start off with space for 1 chunk
231  maxdims[0] = H5S_UNLIMITED; // No upper limit on number of records allowed in dataset
232  chunkdims[0] = CHUNKLENGTH;
233  slicedims[0] = 1; // Dimensions of a single record in the data space
234  std::size_t loopsize = RECORDRANK; // Just tricking the compiler so it doesn't complain in the RECORDRANK=0 case.
235  for(std::size_t i=0; i<loopsize; i++)
236  {
237  // Set other dimensions to match record size
238  dims[i+1] = rdims[i];
239  maxdims[i+1] = rdims[i];
240  chunkdims[i+1] = rdims[i];
241  slicedims[i+1] = rdims[i];
242  }
243 
244  // Create the data space
245  //H5::DataSpace dspace(DSETRANK, dims, maxdims);
246  hid_t dspace_id = H5Screate_simple(DSETRANK, dims, maxdims);
247  if(dspace_id<0)
248  {
249  std::ostringstream errmsg;
250  errmsg << "Error creating dataset (with name: \""<<name<<"\") in HDF5 file. H5Screate_simple failed.";
251  printer_error().raise(LOCAL_INFO, errmsg.str());
252  }
253 
254  // Object containing dataset creation parameters
255  //H5::DSetCreatPropList cparms;
256  //cparms.setChunk(DSETRANK, chunkdims);
257  hid_t cparms_id = H5Pcreate(H5P_DATASET_CREATE);
258  if(cparms_id<0)
259  {
260  std::ostringstream errmsg;
261  errmsg << "Error creating dataset (with name: \""<<name<<"\") in HDF5 file. H5Pcreate failed.";
262  printer_error().raise(LOCAL_INFO, errmsg.str());
263  }
264 
265  herr_t status = H5Pset_chunk(cparms_id, DSETRANK, chunkdims);
266  if(status<0)
267  {
268  std::ostringstream errmsg;
269  errmsg << "Error creating dataset (with name: \""<<name<<"\") in HDF5 file. H5Pset_chunk failed.";
270  printer_error().raise(LOCAL_INFO, errmsg.str());
271  }
272 
273  // Check if location id is invalid
274  if(location_id==-1)
275  {
276  std::ostringstream errmsg;
277  errmsg << "Error! Tried to create hdf5 dataset (with name: \""<<myname<<"\") at undefined location (location_id was -1). Please check that calling code supplied a valid location handle. This is a bug, please report it.";
278  printer_error().raise(LOCAL_INFO, errmsg.str());
279  }
280 
281  // Create the dataset
282  hid_t output_dset_id;
283  output_dset_id = H5Dcreate2(location_id, name.c_str(), hdftype_id, dspace_id, H5P_DEFAULT, cparms_id, H5P_DEFAULT);
284  //output = location->createDataSet( name.c_str(), hdf_dtype.type(), dspace, cparms);
285  if(output_dset_id<0)
286  {
287  std::ostringstream errmsg;
288  errmsg << "Error creating dataset (with name: \""<<myname<<"\") in HDF5 file. Dataset with same name may already exist";
289  printer_error().raise(LOCAL_INFO, errmsg.str());
290  }
291  return output_dset_id;
292  }
EXPORT_SYMBOLS error & printer_error()
Printer errors.
#define LOCAL_INFO
Definition: local_info.hpp:34
static const hid_t hdftype_id
DataSetInterfaceBase class member definitions.
Here is the caller graph for this function:

◆ dset_length()

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
unsigned long Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::dset_length ( ) const
inline

◆ dsetdims()

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
hsize_t* Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::dsetdims ( )
inline

Definition at line 119 of file DataSetInterfaceBase.hpp.

119 { return dims; }

◆ extend_dset()

template<class T , std::size_t RR, std::size_t CHUNKLENGTH>
void Gambit::Printers::DataSetInterfaceBase< T, RR, CHUNKLENGTH >::extend_dset ( const unsigned long  i)

Extend dataset to nearest multiple of CHUNKLENGTH above supplied length.

Definition at line 382 of file DataSetInterfaceBase.hpp.

Referenced by Gambit::Printers::DataSetInterfaceBase< uint, 0, CHUNKLENGTH >::dsetdims(), and Gambit::Printers::VertexBufferNumeric1D_HDF5< T, CHUNKLENGTH >::RA_write_to_disk().

383  {
384  std::size_t current_length = this->dsetdims()[0];
385  if( min_length > current_length )
386  {
387  // Extend the dataset to the nearest multiple of CHUNKLENGTH above min_length,
388  // unless min_length is itself a multiple of CHUNKLENGTH.
389  std::size_t remainder = min_length % CHUNKLENGTH;
390  std::size_t newlength;
391  if(remainder==0) { newlength = min_length; }
392  else { newlength = min_length - remainder + CHUNKLENGTH; }
393  #ifdef HDF5_DEBUG
394  std::cout << "Requested min_length ("<<min_length<<") larger than current dataset length ("<<current_length<<") (dset name="<<this->get_myname()<<")" << std::endl
395  << "Extending dataset to newlength="<<newlength<<std::endl;
396  #endif
397  this->dsetdims()[0] = newlength;
398  //this->my_dataset.extend( this->dsetdims() );
399  herr_t status = H5Dset_extent( this->get_dset_id(), this->dsetdims());
400  if(status<0)
401  {
402  std::cout<<this->get_dset_id()<<std::endl;
403  std::ostringstream errmsg;
404  errmsg << "Failed to extend dataset (with name: \""<<myname<<"\") from length "<<current_length<<" to length "<<newlength<<"!";
405  printer_error().raise(LOCAL_INFO, errmsg.str());
406  }
407  }
408  }
EXPORT_SYMBOLS error & printer_error()
Printer errors.
#define LOCAL_INFO
Definition: local_info.hpp:34
Here is the caller graph for this function:

◆ get_chunkdims()

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
const hsize_t* Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::get_chunkdims ( ) const
inline

Definition at line 108 of file DataSetInterfaceBase.hpp.

108 { return chunkdims; }

◆ get_chunklength()

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
std::size_t Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::get_chunklength ( ) const
inline

Definition at line 106 of file DataSetInterfaceBase.hpp.

106 { return CHUNKLENGTH; }

◆ get_dset_id()

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
hid_t Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::get_dset_id ( ) const
inlineprotected

Definition at line 80 of file DataSetInterfaceBase.hpp.

81  {
82  if(this->dset_id<0)
83  {
84  std::ostringstream errmsg;
85  errmsg << "Error getting handle for dataset with name: \""<<get_myname()<<"\". Handle id is invalid. Dataset wrapping has failed to occur correctly, and problems should have been detected before this, so this is a bug; please fix.";
86  printer_error().raise(LOCAL_INFO, errmsg.str());
87  }
88  return this->dset_id;
89  }
EXPORT_SYMBOLS error & printer_error()
Printer errors.
#define LOCAL_INFO
Definition: local_info.hpp:34

◆ get_dsetrank()

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
std::size_t Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::get_dsetrank ( ) const
inline

Definition at line 105 of file DataSetInterfaceBase.hpp.

105 { return DSETRANK; }

◆ get_maxdsetdims()

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
const hsize_t* Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::get_maxdsetdims ( ) const
inline

Definition at line 107 of file DataSetInterfaceBase.hpp.

107 { return maxdims; }

◆ get_myname()

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
std::string Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::get_myname ( ) const
inline

Definition at line 104 of file DataSetInterfaceBase.hpp.

Referenced by Gambit::Printers::DataSetInterfaceBase< uint, 0, CHUNKLENGTH >::get_dset_id().

Here is the caller graph for this function:

◆ get_nextemptyslab()

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
unsigned long Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::get_nextemptyslab ( ) const
inline

Definition at line 110 of file DataSetInterfaceBase.hpp.

Referenced by Gambit::Printers::VertexBufferNumeric1D_HDF5< T, CHUNKLENGTH >::update_dset_head_pos().

Here is the caller graph for this function:

◆ get_slicedims()

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
const hsize_t* Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::get_slicedims ( ) const
inline

Definition at line 109 of file DataSetInterfaceBase.hpp.

109 { return slicedims; }

◆ openDataSet()

template<class T , std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
hid_t Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::openDataSet ( hid_t  location_id,
const std::string &  name,
const std::size_t  rdims[DSETRANK] 
)

Open an existing dataset.

Open an existing dataset It is assumed that we are resuming a run and therefore know what format this dataset should have.

Definition at line 297 of file DataSetInterfaceBase.hpp.

Referenced by Gambit::Printers::DataSetInterfaceBase< uint, 0, CHUNKLENGTH >::dsetdims().

298  {
299  // Open the dataset
300  hid_t out_dset_id = H5Dopen2(location_id, name.c_str(), H5P_DEFAULT);
301  if(out_dset_id<0)
302  {
303  std::ostringstream errmsg;
304  errmsg << "Error opening existing dataset (with name: \""<<name<<"\") in HDF5 file. H5Dopen2 failed." << std::endl
305  << "You may have a corrupt hdf5 file from a previous run. Try using -r, or deleting the old output.";
306  printer_error().raise(LOCAL_INFO, errmsg.str());
307  }
308 
309  // Get dataspace of the dataset.
310  //H5::DataSpace dataspace = dataset.getSpace();
311  hid_t dspace_id = H5Dget_space(out_dset_id);
312  if(dspace_id<0)
313  {
314  std::ostringstream errmsg;
315  errmsg << "Error opening existing dataset (with name: \""<<name<<"\") in HDF5 file. H5Dget_space failed.";
316  printer_error().raise(LOCAL_INFO, errmsg.str());
317  }
318 
319  // Get the number of dimensions in the dataspace.
320  //int rank = dataspace.getSimpleExtentNdims();
321  int rank = H5Sget_simple_extent_ndims(dspace_id);
322  if(rank<0)
323  {
324  std::ostringstream errmsg;
325  errmsg << "Error opening existing dataset (with name: \""<<name<<"\") in HDF5 file. H5Sget_simple_extent_ndims failed.";
326  printer_error().raise(LOCAL_INFO, errmsg.str());
327  }
328  if(rank!=DSETRANK)
329  {
330  std::ostringstream errmsg;
331  errmsg << "Error while accessing existing dataset (with name: \""<<myname<<"\") in HDF5 file. Rank of dataset ("<<rank<<") does not match the expected rank ("<<DSETRANK<<").";
332  printer_error().raise(LOCAL_INFO, errmsg.str());
333  }
334 
335  // Get the dimension size of each dimension in the dataspace
336  // now that we know ndims matches DSETRANK.
337  hsize_t dims_out[DSETRANK];
338  //int ndims = dataspace.getSimpleExtentDims( dims_out, NULL);
339  int ndims = H5Sget_simple_extent_dims(dspace_id, dims_out, NULL);
340  if(ndims<0)
341  {
342  std::ostringstream errmsg;
343  errmsg << "Error while accessing existing dataset (with name: \""<<myname<<"\") in HDF5 file. Failed to retrieve dataset extents (H5Sget_simple_extent_dims failed).";
344  printer_error().raise(LOCAL_INFO, errmsg.str());
345  }
346 
347  // Update parameters to match dataset contents
348  // Compute initial dataspace and chunk dimensions
349  dims[0] = dims_out[0]; // Set to match existing data
350  maxdims[0] = H5S_UNLIMITED; // No upper limit on number of records allowed in dataset
351  chunkdims[0] = CHUNKLENGTH;
352  slicedims[0] = 1; // Dimensions of a single record in the data space
353  std::size_t loopsize = RECORDRANK; // Just tricking the compiler so it doesn't complain in the RECORDRANK=0 case.
354  for(std::size_t i=0; i<loopsize; i++)
355  {
356  // Set other dimensions to match record size
357  dims[i+1] = rdims[i];
358  maxdims[i+1] = rdims[i];
359  chunkdims[i+1] = rdims[i];
360  slicedims[i+1] = rdims[i];
361 
362  // Check that record size matches the existing dataset
363  if(dims[i+1] != dims_out[i+1])
364  {
365  std::ostringstream errmsg;
366  errmsg << "Error while accessing existing dataset (with name: \""<<myname<<"\") in HDF5 file. Size of dimension "<<i+1<<" ("<<dims_out[i+1]<<") does not match the expected size ("<<dims[i+1]<<")";
367  printer_error().raise(LOCAL_INFO, errmsg.str());
368  }
369  }
370 
371  // Update the variables which control where the next write will occur
372  // Index of first element in next target hyperslab (assumes that
373  // existing dataset has been written up to a complete chunk)
374  dsetnextemptyslab = dims[0];
375 
376  return out_dset_id;
377  }
EXPORT_SYMBOLS error & printer_error()
Printer errors.
#define LOCAL_INFO
Definition: local_info.hpp:34
Here is the caller graph for this function:

◆ reset_nextemptyslab()

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
void Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::reset_nextemptyslab ( )
inline

Definition at line 115 of file DataSetInterfaceBase.hpp.

Referenced by Gambit::Printers::VertexBufferNumeric1D_HDF5< T, CHUNKLENGTH >::reset().

Here is the caller graph for this function:

Member Data Documentation

◆ access

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
char Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::access
private

◆ chunkdims

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
hsize_t Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::chunkdims[DSETRANK]
private

◆ dims

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
hsize_t Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::dims[DSETRANK]
private

◆ dset_id

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
hid_t Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::dset_id
protected

◆ dsetnextemptyslab

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
unsigned long Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::dsetnextemptyslab
protected

◆ DSETRANK

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
const std::size_t Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::DSETRANK = RECORDRANK+1
staticprivate

◆ hdftype_id

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
const hid_t Gambit::Printers::DataSetInterfaceBase< T, RR, CL >::hdftype_id = get_hdf5_data_type<T>::type()
staticprotected

DataSetInterfaceBase class member definitions.

Definition at line 74 of file DataSetInterfaceBase.hpp.

◆ maxdims

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
hsize_t Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::maxdims[DSETRANK]
private

◆ mylocation_id

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
hid_t Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::mylocation_id
private

Definition at line 49 of file DataSetInterfaceBase.hpp.

◆ myname

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
std::string Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::myname
private

◆ record_dims

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
std::size_t Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::record_dims[DSETRANK]
private

Definition at line 56 of file DataSetInterfaceBase.hpp.

◆ resume

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
bool Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::resume
private

Definition at line 65 of file DataSetInterfaceBase.hpp.

◆ slicedims

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
hsize_t Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::slicedims[DSETRANK]
private

◆ virtualwriteposition

template<class T, std::size_t RECORDRANK, std::size_t CHUNKLENGTH>
unsigned long Gambit::Printers::DataSetInterfaceBase< T, RECORDRANK, CHUNKLENGTH >::virtualwriteposition
protected

Definition at line 100 of file DataSetInterfaceBase.hpp.


The documentation for this class was generated from the following file: