void CachingChannel::getMessages(std::vector<Poco::Message>& msg, int offset, int numEntries) const { msg.clear(); Messages::const_iterator it = _cache.begin(); while (offset > 0 && it != _cache.end()) ++it; while (numEntries > 0 && it != _cache.end()) { msg.push_back(*it); ++it; } }
void CSMDoc::Operation::executeStage() { Messages messages; while (mCurrentStage!=mStages.end()) { if (mCurrentStep>=mCurrentStage->second) { mCurrentStep = 0; ++mCurrentStage; } else { try { mCurrentStage->first->perform (mCurrentStep++, messages); } catch (const std::exception& e) { emit reportMessage (CSMWorld::UniversalId(), e.what(), "", mType); abort(); } ++mCurrentStepTotal; break; } } emit progress (mCurrentStepTotal, mTotalSteps ? mTotalSteps : 1, mType); for (Messages::Iterator iter (messages.begin()); iter!=messages.end(); ++iter) emit reportMessage (iter->mId, iter->mMessage, iter->mHint, mType); if (mCurrentStage==mStages.end()) exit(); }