double val;
};
+struct infiledesc {
+ string filename;
+ int nequi;
+ int nskip;
+ bool doVirtualEquilibration;
+ bool extended;
+};
+
class configcache{
public:
~configcache();
void writeConfig();
void addPara(const string& parid, const double& val=0);
void setPara(const string& parid, const double& value);
+ void writeHeader(const string& headerid, char *header, long unsigned int size);
+ void * getHeader(const string& headerid);
private:
- string openFileName;
+ infiledesc openFileDesc;
void finishOutFile();
int getParIndex(const string& parid);
int NEQUI;
void fetchDataFiles();
- bool isValidInFile(const string& infile);
+ bool isValidInFile(const string& infile, infiledesc *filedesc);
- vector<string> inFiles;
+ vector<infiledesc> inFiles;
vector<parameter> Paras;
+
+ int readDataToMem(char *tmpData, long unsigned int dataSize);
+
+ void openOutFile();
+
+ int readHeader();
+
+ bool headerWritten;
+
+ int readFullBlock(char *tmpData, long unsigned int dataSize);
+
+ static unsigned long hash(const string& str);
+
+ vector< pair<unsigned long, void *> > headerStore;
+
+ void deleteHeaderStore();
+
+ bool readAllHeaders();
};
#endif