#include <sstream>
#include <ostream>
-#define CACHE_MODE_DISABLED 0
-#define CACHE_MODE_READ 1
-#define CACHE_MODE_FULL 2
+#include "datread.h"
+
+#define CACHE_MODE_OO 0
+#define CACHE_MODE_RO 1
+#define CACHE_MODE_WO 2
+#define CACHE_MODE_RW 3
using namespace std;
int nequi;
int nskip;
bool extended;
+ bool superextended;
};
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, ostream *_log=NULL);
+ const int& cachemode=CACHE_MODE_RW, ostream *_log=NULL);
void readConfig(bool *readnewconfig, int *nequileft, vector<unsigned long> *excludeFileHashes=NULL);
void writeConfig(int actnequi);
void addPara(const string& parid, const double& val=0);
string getOutFileName() { return outFileName.str(); }
string getInFileName() { return DATADIR + "/" + openFileDesc.filename; }
static unsigned long hash(const string& str);
- void closeInFile() { inFile.close(); }
+ void closeInFile() { dataReader->closeFile(); }
int inFilesLeft() { return inFiles.size(); }
char* getConfigMem() { return configMem; }
int getConfigSize() { return configSize; }
string DATADIR;
string CACHEID;
int MODE;
- string getFileId(int actnequi, const bool& shortid=false);
+ string getFileId(int actnequi, const bool& superextended=true, const bool& shortid=false);
ofstream outFile;
- ifstream inFile;
stringstream outFileName;
vector<parameter> Paras;
- int readDataToMem(char *tmpData, long unsigned int dataSize);
-
void openOutFile(int actnequi);
int readHeader();
bool headerWritten;
- int readFullBlock(char *tmpData, long unsigned int dataSize);
-
- vector< pair<unsigned long, void *> > headerStore;
-
- void deleteHeaderStore();
-
bool readAllHeaders();
vector<infiledesc>::iterator getNextInfile(vector<unsigned long> *excludeFileHashes);
int nequileft_internal;
bool doVirtualEquilibration, firstUsedConfig;
+
+ string paraString();
+
+ datread *dataReader;
};
#endif