#include <sstream>
#include <ostream>
-#include <boost/iostreams/filtering_streambuf.hpp>
-#include <boost/iostreams/stream.hpp>
-#include <boost/iostreams/filter/bzip2.hpp>
-#include <boost/iostreams/device/array.hpp>
-#include <boost/iostreams/copy.hpp>
-
-#define CACHE_MODE_DISABLED 0
-#define CACHE_MODE_READ 1
-#define CACHE_MODE_FULL 2
+#define CACHE_MODE_OO 0
+#define CACHE_MODE_RO 1
+#define CACHE_MODE_WO 2
+#define CACHE_MODE_RW 3
using namespace std;
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);
- void readConfig(bool& readnewconfig, int& nequileft, vector<unsigned long> *excludeFileHashes=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);
void setPara(const string& parid, const double& value);
int inFilesLeft() { return inFiles.size(); }
char* getConfigMem() { return configMem; }
int getConfigSize() { return configSize; }
+ bool isOutFileOpen () { return outFile.is_open(); }
+ void finishOutFile();
private:
+ struct iobuffers;
+ iobuffers *ioBuffers;
+
ostream* log;
infiledesc openFileDesc;
- void finishOutFile();
int getParIndex(const string& parid);
int NEQUI;
int NSKIP;
int readnum;
- boost::iostreams::filtering_istreambuf *inBuffer;
- boost::iostreams::filtering_ostreambuf *outBuffer;
-
int inSize;
int configSize;