libSplash
DataCollector.hpp
1 
46 #ifndef DATACOLLECTOR_HPP
47 #define DATACOLLECTOR_HPP
48 
49 #include <stdint.h>
50 
51 #include "splash/CollectionType.hpp"
52 #include "splash/Dimensions.hpp"
53 #include "splash/Selection.hpp"
54 #include "splash/AttributeInfo.hpp"
55 #include "splash/core/DCDataSet.hpp"
56 #include "splash/core/splashMacros.hpp"
57 
58 namespace splash
59 {
60 
62  {
63  public:
64 
69  {
70  FAT_CREATE, FAT_READ, FAT_READ_MERGED, FAT_WRITE
71  };
72 
76  typedef struct _FileCreationAttr
77  {
78 
80  fileAccType(FAT_CREATE),
81  mpiSize(1, 1, 1),
82  mpiPosition(0, 0, 0),
83  enableCompression(false)
84  {
85 
86  }
87 
92 
97 
102 
108 
112  typedef struct _DCEntry
113  {
117  std::string name;
122  } DCEntry;
123 
131  {
132  attr.enableCompression = false;
133  attr.fileAccType = FAT_CREATE;
134  attr.mpiPosition.set(0, 0, 0);
135  attr.mpiSize.set(1, 1, 1);
136  }
137 
141  virtual ~DataCollector()
142  {
143  };
144 
151  virtual void open(
152  const char *filename,
153  FileCreationAttr& attr) = 0;
154 
160  virtual void close() = 0;
161 
165  virtual int32_t getMaxID() = 0;
166 
171  virtual void getMPISize(Dimensions& mpiSize) = 0;
172 
181  virtual void getEntryIDs(int32_t *ids, size_t *count) = 0;
182 
192  virtual void getEntriesForID(int32_t id, DCEntry *entries, size_t *count) = 0;
193 
204  virtual void write(int32_t id,
205  const CollectionType& type,
206  uint32_t ndims,
207  const Selection select,
208  const char* name,
209  const void* buf) = 0;
210 
223  virtual void append(int32_t id,
224  const CollectionType& type,
225  size_t count,
226  const char *name,
227  const void *buf) = 0;
228 
245  virtual void append(int32_t id,
246  const CollectionType& type,
247  size_t count,
248  size_t offset,
249  size_t stride,
250  const char *name,
251  const void *buf) = 0;
252 
261  virtual void remove(int32_t id) = 0;
262 
269  virtual void remove(int32_t id,
270  const char *name) = 0;
271 
281  virtual void createReference(int32_t srcID,
282  const char *srcName,
283  int32_t dstID,
284  const char *dstName) = 0;
285 
298  virtual void createReference(int32_t srcID,
299  const char *srcName,
300  int32_t dstID,
301  const char *dstName,
302  Dimensions count,
303  Dimensions offset,
304  Dimensions stride) = 0;
305 
319  int32_t id,
320  const char *name,
321  Dimensions *mpiPosition = NULL) = 0;
322 
332  SPLASH_DEPRECATED("Use safer readGlobalAttributeInfo")
333  virtual void readGlobalAttribute(
334  const char *name,
335  void* buf,
336  Dimensions *mpiPosition = NULL) = 0;
337 
345  virtual void writeGlobalAttribute(const CollectionType& type,
346  const char *name,
347  const void* buf) = 0;
348 
358  virtual void writeGlobalAttribute(const CollectionType& type,
359  const char *name,
360  uint32_t ndims,
361  const Dimensions dims,
362  const void* buf) = 0;
363 
378  virtual AttributeInfo readAttributeInfo(int32_t id,
379  const char *dataName,
380  const char *attrName,
381  Dimensions *mpiPosition = NULL) = 0;
382 
395  SPLASH_DEPRECATED("Use safer readAttributeInfo")
396  virtual void readAttribute(int32_t id,
397  const char *dataName,
398  const char *attrName,
399  void *buf,
400  Dimensions *mpiPosition = NULL) = 0;
401 
413  virtual void writeAttribute(int32_t id,
414  const CollectionType& type,
415  const char *dataName,
416  const char *attrName,
417  const void *buf) = 0;
418 
431  virtual void writeAttribute(int32_t id,
432  const CollectionType& type,
433  const char *dataName,
434  const char *attrName,
435  uint32_t ndims,
436  const Dimensions dims,
437  const void *buf) = 0;
438 
449  virtual void read(int32_t id,
450  const char* name,
451  Dimensions &sizeRead,
452  void* buf) = 0;
453 
466  virtual void read(int32_t id,
467  const char* name,
468  const Dimensions dstBuffer,
469  const Dimensions dstOffset,
470  Dimensions &sizeRead,
471  void* buf) = 0;
472 
486  virtual CollectionType* readMeta(int32_t id,
487  const char* name,
488  const Dimensions dstBuffer,
489  const Dimensions dstOffset,
490  Dimensions &sizeRead) = 0;
491  };
492 
493 }
494 
495 #endif /* DATACOLLECTOR_HPP */
virtual void createReference(int32_t srcID, const char *srcName, int32_t dstID, const char *dstName)=0
virtual void open(const char *filename, FileCreationAttr &attr)=0
virtual int32_t getMaxID()=0
virtual void readAttribute(int32_t id, const char *dataName, const char *attrName, void *buf, Dimensions *mpiPosition=NULL)=0
static void initFileCreationAttr(FileCreationAttr &attr)
void set(hsize_t x, hsize_t y, hsize_t z)
Definition: Dimensions.hpp:230
CollectionType * colType
std::string name
virtual void append(int32_t id, const CollectionType &type, size_t count, const char *name, const void *buf)=0
virtual CollectionType * readMeta(int32_t id, const char *name, const Dimensions dstBuffer, const Dimensions dstOffset, Dimensions &sizeRead)=0
virtual void writeGlobalAttribute(const CollectionType &type, const char *name, const void *buf)=0
virtual void getEntryIDs(int32_t *ids, size_t *count)=0
virtual void read(int32_t id, const char *name, Dimensions &sizeRead, void *buf)=0
virtual void writeAttribute(int32_t id, const CollectionType &type, const char *dataName, const char *attrName, const void *buf)=0
virtual void write(int32_t id, const CollectionType &type, uint32_t ndims, const Selection select, const char *name, const void *buf)=0
virtual void readGlobalAttribute(const char *name, void *buf, Dimensions *mpiPosition=NULL)=0
virtual void getEntriesForID(int32_t id, DCEntry *entries, size_t *count)=0
struct splash::DataCollector::_FileCreationAttr FileCreationAttr
virtual void close()=0
virtual void getMPISize(Dimensions &mpiSize)=0
virtual AttributeInfo readAttributeInfo(int32_t id, const char *dataName, const char *attrName, Dimensions *mpiPosition=NULL)=0
virtual AttributeInfo readGlobalAttributeInfo(int32_t id, const char *name, Dimensions *mpiPosition=NULL)=0
struct splash::DataCollector::_DCEntry DCEntry