#include <string>
#include <fstream>
#include <sstream>
+#include <ostream>
#include <boost/iostreams/filtering_streambuf.hpp>
#include <boost/iostreams/stream.hpp>
#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
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, writeout *out_a=NULL);
- bool readConfig(vector<string> *excludefiles=NULL);
+ const int& cachemode=CACHE_MODE_FULL, ostream *_log=NULL);
+ 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);
string getOutFileName() { return outFileName.str(); }
string getInFileName() { return DATADIR + "/" + openFileDesc.filename; }
static unsigned long hash(const string& str);
+ void closeInFile() { inFile.close(); }
+ int inFilesLeft() { return inFiles.size(); }
private:
+ ostream* log;
infiledesc openFileDesc;
void finishOutFile();
int getParIndex(const string& parid);
ofstream outFile;
ifstream inFile;
- writeout *out;
-
stringstream outFileName;
int readnum;
void deleteHeaderStore();
bool readAllHeaders();
+
+ vector<infiledesc>::iterator getNextInfile(vector<unsigned long> *excludeFileHashes);
};
#endif