X-Git-Url: http://git.treefish.org/~alex/phys/latlib.git/blobdiff_plain/f46daea04f594f9f386ac6514733ec1eff860462..36bc55ceb7b62569c7604f28b3e53bc2e42cf0ce:/hypercache.cpp diff --git a/hypercache.cpp b/hypercache.cpp index 03a20f8..7b3f470 100644 --- a/hypercache.cpp +++ b/hypercache.cpp @@ -60,50 +60,36 @@ string hypercache::fileOfPath(const string& dressedfile) { return dressedfile.substr(dressedfile.find_last_of("\\/")+1); } -int hypercache::readC() { - int readret; +void hypercache::readC(bool& readnewconfig, int& nequileft) { + C->readConfig(readnewconfig, nequileft, &parentConfigs); - readret = C->readConfig(&parentConfigs); - - if ( readret == -1 ) + if ( nequileft < 0 ) activeCFile = fileOfPath(C->getInFileName()); else activeCFile = ""; - - return readret; -} - -int hypercache::read1CForEqui() { - int readret = C->readConfig(NULL); - C->closeInFile(); - return readret; } -void hypercache::writeC() { - C->writeConfig(); +void hypercache::writeC(int actnequi) { + C->writeConfig(actnequi); activeCFile = fileOfPath( C->getOutFileName().substr( 0, C->getOutFileName().length()-4 ) ); } -void hypercache::writeO(int obsid) { +void hypercache::writeO(int obsid, int actnequi) { if ( activeCFile != "" ) { unsigned long afilehash = configcache::hash(activeCFile); - Os[obsid]->writeHeader("concurrent_cfile", (char*)(&afilehash), sizeof(unsigned long)); + Os[obsid]->writeHeader("concurrent_cfile", (char*)(&afilehash), sizeof(unsigned long), actnequi); } - Os[obsid]->writeConfig(); + Os[obsid]->writeConfig(actnequi); } -int hypercache::readO(int obsid) { - int readret; - - readret = Os[obsid]->readConfig(); +void hypercache::readO(int obsid, bool& readnewconfig, int& nequileft) { + Os[obsid]->readConfig(readnewconfig, nequileft); - if ( readret == -1 ) { + if ( nequileft < 0 ) { unsigned long *parentconfig = (unsigned long*)Os[obsid]->getHeader("concurrent_cfile"); if ( parentconfig != NULL ) addParentConfig(parentconfig); } - - return readret; } void hypercache::addParentConfig(const unsigned long *parentconfig) {