00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifdef USE_HDF5
00037 #ifndef _HDF5DATAWRITER_H
00038 #define _HDF5DATAWRITER_H
00039
00040 #include "HDF5WriterBase.h"
00041
00042 class HDF5DataWriter: public HDF5WriterBase
00043 {
00044 public:
00045 HDF5DataWriter();
00046 virtual ~HDF5DataWriter();
00047 void setFlushLimit(unsigned int limit);
00048 unsigned int getFlushLimit() const;
00049
00050 void process(const Eref &e, ProcPtr p);
00051 void reinit(const Eref &e, ProcPtr p);
00052 virtual void flush();
00053 static const Cinfo* initCinfo();
00054 protected:
00055 unsigned int flushLimit_;
00056
00057
00058 vector <ObjId> src_;
00059 vector <vector < double > > data_;
00060 vector <string> func_;
00061 vector <hid_t> datasets_;
00062 unsigned long steps_;
00063 hid_t getDataset(string path);
00064 hid_t createDataset(hid_t parent, string name);
00065 herr_t appendToDataset(hid_t dataset, const vector<double>& data);
00066 };
00067 #endif // _HDF5DATAWRITER_H
00068 #endif // USE_HDF5
00069
00070
00071