#include <iostream>
#include <time.h>
#include <dirent.h>
-#include <string.h>
-configcache::configcache(const string& cacheid, const int& nequi, const int& nskip, const string& datadir, char **configmem, const int& configMemSize){
+configcache::configcache(const string& cacheid, const int& nequi, const int& nskip, const string& datadir, char **configmem, const int& configMemSize, const int& cachemode){
NEQUI = nequi;
NSKIP = nskip;
DATADIR = datadir;
outBuffer = NULL;
inBuffer = NULL;
+ MODE = cachemode;
+
refetchDataFiles = false;
}
delete[] inchar;
- if( truncIn.find( getFileId(true) ) == string::npos ) return false;
+ if( truncIn.find( getFileId(true) + "_" ) == string::npos ) return false;
return true;
}
bool configcache::readConfig()
{
- if(DATADIR == "") return false;
+ if(DATADIR == "" || MODE == CACHE_MODE_DISABLED) return false;
if(refetchDataFiles){
refetchDataFiles = false;
void configcache::writeConfig()
{
- if( DATADIR == "") return;
+ if( DATADIR == "" || MODE < 2 ) return;
if(!outFile.is_open()){
time_t secstamp = time(NULL);
outFileName.str("");
- outFileName << DATADIR << "/" << secstamp << "_" << getFileId() << ".dat.tmp";
+ outFileName << DATADIR << "/" << secstamp << "_" << getFileId() << "_.dat.tmp";
outFile.open( outFileName.str().c_str(), std::ios::binary );
outBuffer = new boost::iostreams::filtering_ostreambuf;