]> git.treefish.org Git - phys/latlib.git/commitdiff
...
authorAlex Schmidt <alex@treefish.org>
Thu, 20 Jun 2013 07:29:33 +0000 (09:29 +0200)
committerAlex Schmidt <alex@treefish.org>
Thu, 20 Jun 2013 07:29:33 +0000 (09:29 +0200)
configcache.cpp
configcache.h
hypercache.cpp
hypercache.h
o815/o815.cpp

index 0cabc9d5e7e677b4c06487bba398098581330393..62519a4c7fea105d43fae0af6a448f1cf3cab7d0 100644 (file)
@@ -174,11 +174,9 @@ void * configcache::getHeader(const string& headerid) {
   return NULL;
 }
 
-/* returns number of equilibration-steps left with new read configuration 
-   or zero if no new configuration was read */
-void configcache::readConfig(bool& readnewconfig, int& nequileft, vector<unsigned long> *excludeFileHashes)
+void configcache::readConfig(bool *readnewconfig, int *nequileft, vector<unsigned long> *excludeFileHashes)
 {
-  readnewconfig = false;
+  *readnewconfig = false;
 
   if(DATADIR == "" || MODE == CACHE_MODE_DISABLED) return;
 
@@ -193,8 +191,8 @@ void configcache::readConfig(bool& readnewconfig, int& nequileft, vector<unsigne
       int iDidVirtualSkips;
 
       if( (!inFile.is_open()) && inFileIt == inFiles.end() ) {
-       if (readnewconfig)
-         nequileft = nequileft_internal;
+       if (*readnewconfig)
+         *nequileft = nequileft_internal;
        return;
       }
 
@@ -231,7 +229,7 @@ void configcache::readConfig(bool& readnewconfig, int& nequileft, vector<unsigne
              else if ( (NEQUI-openFileDesc.nequi) - (iDidVirtualSkips+1)*openFileDesc.nskip < nequileft_internal ) {
                memcpy(configMem, tmpConfig, configSize);
                nequileft_internal = NEQUI - openFileDesc.nequi - (iDidVirtualSkips+1)*openFileDesc.nskip;
-               readnewconfig = true;
+               *readnewconfig = true;
                firstUsedConfig = false;
              }
            }
@@ -240,7 +238,7 @@ void configcache::readConfig(bool& readnewconfig, int& nequileft, vector<unsigne
          if( readFullBlock(tmpConfig, configSize) == configSize && inFile.is_open() )
            {
              memcpy(configMem, tmpConfig, configSize);
-             readnewconfig = true;
+             *readnewconfig = true;
              if (firstUsedConfig) {
                firstUsedConfig = false;
                if (openFileDesc.nequi < NEQUI)
@@ -249,7 +247,7 @@ void configcache::readConfig(bool& readnewconfig, int& nequileft, vector<unsigne
                  nequileft_internal = NEQUI - openFileDesc.nequi;
              }
              nequileft_internal -= openFileDesc.nskip;
-             nequileft = nequileft_internal;
+             *nequileft = nequileft_internal;
              return;
            }
          else {
index 5e48cbf06bf39fabc957a0b34a753acba240b0c7..727d1bd325007845bc06bef38b4e0cabcc1a8652 100644 (file)
@@ -36,7 +36,7 @@ class configcache{
   ~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);
+  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);
index 4ec63396a31ca52e0f6bfed38ba8248b5f10795d..fd2bbcb26f33b8229901c3e02ae917f8e8970286 100644 (file)
@@ -74,7 +74,7 @@ string hypercache::fileOfPath(const string& dressedfile) {
 bool hypercache::readC() {
   bool readAtLeastOneConfig;
 
-  C->readConfig(readAtLeastOneConfig, nequileft, &parentConfigs);
+  C->readConfig(&readAtLeastOneConfig, &nequileft, &parentConfigs);
 
   if ( nequileft < 0 && readAtLeastOneConfig )
     activeCFile = fileOfPath(C->getInFileName());
@@ -93,7 +93,7 @@ bool hypercache::readC() {
       int nequileftReadConfig_ex;
 
       memcpy (tmpconfig, C->getConfigMem(), C->getConfigSize());
-      C->readConfig(readnewconfig_ex, nequileftReadConfig_ex, NULL);
+      C->readConfig(&readnewconfig_ex, &nequileftReadConfig_ex, NULL);
 
       if (! readnewconfig_ex) {
        *log << "HYPERCACHE: No more excluded config-files for possible equilibration available." << endl << flush;
@@ -118,7 +118,6 @@ bool hypercache::readC() {
 
   /* storing most equilibrated config */
   if ( nequileft < mostEquilibratedConfig.first && readAtLeastOneConfig ) {
-    //*log << "HYPERCACHE: Storing a copy of so far most equilibrated config with nequileft = " << nequileft << endl << flush;
     mostEquilibratedConfig.first = nequileft;
     memcpy(mostEquilibratedConfig.second, C->getConfigMem(), C->getConfigSize());
   }
@@ -128,7 +127,6 @@ bool hypercache::readC() {
     *log << "HYPERCACHE: Injecting back most equilibrated stored config with nequileft = " << mostEquilibratedConfig.first << endl << flush;
     nequileft = mostEquilibratedConfig.first;
     memcpy(C->getConfigMem(), mostEquilibratedConfig.second, C->getConfigSize());
-    //readAtLeastOneConfig = false;
   }
 
   return readAtLeastOneConfig;
@@ -157,10 +155,10 @@ void hypercache::writeO(int obsid) {
   lastWrittenObsEquis = NEQUI-nequileft-NSKIP;
 }
 
-void hypercache::readO(int obsid, bool& readnewconfig, int& nequileft) {
-  Os[obsid]->readConfig(readnewconfig, nequileft);
+void hypercache::readO(int obsid, bool *readNewObsConfig, int *nequiObsLeft) {
+  Os[obsid]->readConfig(readNewObsConfig, nequiObsLeft);
 
-  if ( nequileft < 0 ) {
+  if ( *readNewObsConfig && *nequiObsLeft < 0 ) {
     unsigned long *parentconfig = (unsigned long*)Os[obsid]->getHeader("concurrent_cfile");
     if ( parentconfig != NULL )
       addParentConfig(parentconfig);
index efb97fa686bd6cdbd8d5205a702df682b9437faa..c5f548af3b8c579d41c25f53fa37956e5fcd807a 100644 (file)
@@ -26,7 +26,7 @@ class hypercache {
   
   static void addPara(const string& parid, const double& val=0);
   static void setPara(const string& parid, const double& value);
-  static void readO(int obsid, bool& readnewconfig, int& nequileft);
+  static void readO(int obsid, bool *readNewObsConfig, int *nequiObsLeft);
   static bool readC();
   static void writeO(int obsid);
   static void writeC();
index 3511d80b163472ce8232e7fc032b9552b0d26719..5271370da3c865f56f6568472cc6908b0cc2bdf6 100644 (file)
@@ -141,7 +141,7 @@ void o815::mainLoop() {
        bool readnewObs;
        int nequileftNewObs;
        
-       hypercache::readO( (*obsit)->ocid, readnewObs, nequileftNewObs );
+       hypercache::readO( (*obsit)->ocid, &readnewObs, &nequileftNewObs );
 
        if ( readnewObs && nequileftNewObs < 0 ) {
          (*obsit)->meas(true);