Changeset 4a33f6


Ignore:
Timestamp:
May 5, 2016, 5:14:19 PM (10 years ago)
Author:
Frederik Heber <heber@…>
Children:
35e83a
Parents:
8c076a
git-author:
Frederik Heber <heber@…> (05/05/16 13:54:14)
git-committer:
Frederik Heber <heber@…> (05/05/16 17:14:19)
Message:

FragmentationResultContainer when written and inside QtGui is used in locked mode.

Location:
src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • src/Actions/FragmentationAction/AnalyseFragmentationResultsAction.cpp

    r8c076a r4a33f6  
    560560
    561561  /// if file is given, parse from file into ResultsContainer
    562   FragmentationResultContainer& container = FragmentationResultContainer::getInstance();
    563   if (!params.resultsfile.get().empty()) {
    564     boost::filesystem::path resultsfile = params.resultsfile.get();
    565     if (boost::filesystem::exists(resultsfile)) {
    566       LOG(1, "INFO: Parsing results from " << resultsfile.string() << ".");
    567       std::ifstream returnstream(resultsfile.string().c_str());
    568       if (returnstream.good()) {
    569         boost::archive::text_iarchive ia(returnstream);
    570         ia >> container;
     562  {
     563    AtomicInstance<FragmentationResultContainer> container = FragmentationResultContainer::getLockedInstance();
     564    if (!params.resultsfile.get().empty()) {
     565      boost::filesystem::path resultsfile = params.resultsfile.get();
     566      if (boost::filesystem::exists(resultsfile)) {
     567        LOG(1, "INFO: Parsing results from " << resultsfile.string() << ".");
     568        std::ifstream returnstream(resultsfile.string().c_str());
     569        if (returnstream.good()) {
     570          boost::archive::text_iarchive ia(returnstream);
     571          ia >> *container;
     572        }
     573      } else {
     574        ELOG(1, "Given file" << resultsfile.string() << " does not exist.");
    571575      }
    572     } else {
    573       ELOG(1, "Given file" << resultsfile.string() << " does not exist.");
    574     }
    575   }
    576 
     576    }
     577  }
    577578  /// get data and keysets from ResultsContainer
     579  const FragmentationResultContainer& container = FragmentationResultContainer::getConstInstance();
    578580  const std::map<JobId_t, MPQCData> &shortrangedata = container.getShortRangeResults();
    579581  const KeySetsContainer &keysets = container.getKeySets();
     
    595597  printReceivedShortResultsPerIndex(shortrangeresults);
    596598  // add summed results to container
    597   container.addShortRangeSummedResults(shortrangeresults.getSummedShortRangeResults());
     599  {
     600    AtomicInstance<FragmentationResultContainer> container = FragmentationResultContainer::getLockedInstance();
     601    (*container).addShortRangeSummedResults(shortrangeresults.getSummedShortRangeResults());
     602  }
    598603
    599604  /// now do we need to calculate the cycle contribution
  • src/Actions/FragmentationAction/ClearFragmentationResultsAction.cpp

    r8c076a r4a33f6  
    5151ActionState::ptr FragmentationClearFragmentationResultsAction::performCall() {
    5252
    53   FragmentationResultContainer::getInstance().clear();
     53  {
     54    AtomicInstance<FragmentationResultContainer> container = FragmentationResultContainer::getLockedInstance();
     55    (*container).clear();
     56  }
    5457
    55   if (FragmentationResultContainer::getInstance().getShortRangeResults().empty()) {
     58  if (FragmentationResultContainer::getConstInstance().getShortRangeResults().empty()) {
    5659    LOG(1, "STATUS: Fragmentation results cleared.");
    5760    return Action::success;
  • src/Actions/FragmentationAction/FragmentationAction.cpp

    r8c076a r4a33f6  
    220220        cyclekeys.insert(temp_cycle, order);
    221221      }
    222       FragmentationResultContainer::getInstance().addCycles(cyclekeys);
     222      {
     223        AtomicInstance<FragmentationResultContainer> container = FragmentationResultContainer::getLockedInstance();
     224         (*container). addCycles(cyclekeys);
     225      }
    223226    }
    224227    // Create graph and insert into TotalGraph
  • src/Actions/FragmentationAction/FragmentationAutomationAction.cpp

    r8c076a r4a33f6  
    119119  // TODO: Have io_service run in second thread and merge with current again eventually
    120120
    121   FragmentationResultContainer &container =
    122       FragmentationResultContainer::getInstance();
    123121  const KeySetsContainer& keysets = FragmentJobQueue::getInstance().getKeySets();
    124122  const KeySetsContainer& forcekeysets = FragmentJobQueue::getInstance().getFullKeySets();
     
    343341    }
    344342  }
    345   container.addFullResults(keysets, forcekeysets, shortrangedata, longrangedata);
     343  {
     344    AtomicInstance<FragmentationResultContainer> container =
     345        FragmentationResultContainer::getLockedInstance();
     346    (*container).addFullResults(keysets, forcekeysets, shortrangedata, longrangedata);
     347  }
    346348  } else {
    347     container.addShortRangeResults(keysets, forcekeysets, shortrangedata);
     349    AtomicInstance<FragmentationResultContainer> container =
     350        FragmentationResultContainer::getLockedInstance();
     351    (*container).addShortRangeResults(keysets, forcekeysets, shortrangedata);
    348352  }
    349353#else
    350   container.addShortRangeResults(keysets, forcekeysets, shortrangedata);
     354  {
     355    AtomicInstance<FragmentationResultContainer> container =
     356        FragmentationResultContainer::getLockedInstance();
     357    (*container).addShortRangeResults(keysets, forcekeysets, shortrangedata);
     358  }
    351359#endif
    352360
     
    359367    std::ofstream returnstream(resultsfile.string().c_str());
    360368    if (returnstream.good()) {
     369      const FragmentationResultContainer& container =
     370          FragmentationResultContainer::getConstInstance();
    361371      boost::archive::text_oarchive oa(returnstream);
    362372      oa << container;
  • src/UIElements/Views/Qt4/QtFragmentList.cpp

    r8c076a r4a33f6  
    101101{
    102102  clearing = true;
    103   FragmentationResultContainer &fragments =
    104       FragmentationResultContainer::getInstance();
     103
     104  const AtomicInstance<FragmentationResultContainer> fragments =
     105      FragmentationResultContainer::getLockedInstance();
    105106
    106107  // clear everything
     
    110111
    111112  size_t count = 0;
    112   const IndexSetContainer keysets(fragments.getKeySets());
    113   const FragmentationResultContainer::shortrangedata_t &shortrange = fragments.getShortRangeResults();
    114   const FragmentationShortRangeResults::summedshortrange_t &summedshortrange = fragments.getShortRangeSummedResults();
     113  const IndexSetContainer keysets((*fragments).getKeySets());
     114  const FragmentationResultContainer::shortrangedata_t &shortrange = (*fragments).getShortRangeResults();
     115  const FragmentationShortRangeResults::summedshortrange_t &summedshortrange = (*fragments).getShortRangeSummedResults();
    115116  IndexSetContainer::Container_t::const_iterator keyiter = keysets.getContainer().begin();
    116117  FragmentationResultContainer::shortrangedata_t::const_iterator resultiter = shortrange.begin();
Note: See TracChangeset for help on using the changeset viewer.