int nequi;
int nskip;
bool doVirtualEquilibration;
+ bool extended;
};
class configcache{
~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, writeout *out_a=NULL);
- bool readConfig();
+ int readConfig(vector<unsigned long> *excludeFileHashes=NULL);
void writeConfig();
void addPara(const string& parid, const double& val=0);
void setPara(const string& parid, const double& value);
-
+ void writeHeader(const string& headerid, const char *header, long unsigned int size);
+ void * getHeader(const string& headerid);
+ string getOutFileName() { return outFileName.str(); }
+ string getInFileName() { return DATADIR + "/" + openFileDesc.filename; }
+ static unsigned long hash(const string& str);
+
private:
infiledesc openFileDesc;
void finishOutFile();
vector<parameter> Paras;
- int readConfigToMem(char *tmpConfig);
+ int readDataToMem(char *tmpData, long unsigned int dataSize);
+
+ void openOutFile();
+
+ int readHeader();
+
+ bool headerWritten;
+
+ int readFullBlock(char *tmpData, long unsigned int dataSize);
+
+ vector< pair<unsigned long, void *> > headerStore;
+
+ void deleteHeaderStore();
+
+ bool readAllHeaders();
};
#endif