#include <boost/iostreams/device/array.hpp>
#include <boost/iostreams/copy.hpp>
+#include "writeout.h"
+
#define CACHE_MODE_DISABLED 0
#define CACHE_MODE_READ 1
#define CACHE_MODE_FULL 2
double val;
};
+struct infiledesc {
+ string filename;
+ int nequi;
+ int nskip;
+ bool doVirtualEquilibration;
+};
+
class configcache{
public:
~configcache();
- configcache(const string& cacheid, const int& nequi, const int& nskip, const string& datadir, char **configmem, const int& configMemSize, const int& cachemode=CACHE_MODE_FULL);
+ configcache(const string& cacheid, const int& nequi, const int& nskip, const string& datadir, char **configmem, const int& configMemSize,
+ const int& cachemode=CACHE_MODE_FULL, writeout *out_a=NULL);
bool readConfig();
void writeConfig();
void addPara(const string& parid, const double& val=0);
void setPara(const string& parid, const double& value);
private:
+ infiledesc openFileDesc;
void finishOutFile();
int getParIndex(const string& parid);
int NEQUI;
ofstream outFile;
ifstream inFile;
+ writeout *out;
+
stringstream outFileName;
int readnum;
void fetchDataFiles();
- bool isValidInFile(const string& infile);
+ bool isValidInFile(const string& infile, infiledesc *filedesc);
- vector<string> inFiles;
+ vector<infiledesc> inFiles;
vector<parameter> Paras;
+
+ int readConfigToMem(char *tmpConfig);
};
#endif