void UserQueue::addQI(QueueItemPtr& qi, const HintedUser& aUser, bool aIsBadSource /*false*/) noexcept{ if (qi->getPriority() == QueueItem::HIGHEST) { auto& l = userPrioQueue[aUser.user]; l.insert(upper_bound(l.begin(), l.end(), qi, QueueItem::SizeSortOrder()), qi); } BundlePtr bundle = qi->getBundle(); if (bundle) { aUser.user->addQueued(qi->getSize()); if (bundle->addUserQueue(qi, aUser, aIsBadSource)) { addBundle(bundle, aUser); } else { dcassert(userBundleQueue.find(aUser.user) != userBundleQueue.end()); } } }
void UserQueue::addQI(QueueItemPtr& qi, const HintedUser& aUser, bool newBundle /*false*/, bool isBadSource /*false*/) { if (qi->getPriority() == QueueItem::HIGHEST) { auto& l = userPrioQueue[aUser.user]; l.insert(upper_bound(l.begin(), l.end(), qi, QueueItem::SizeSortOrder()), qi); } BundlePtr bundle = qi->getBundle(); if (bundle) { if (bundle->addUserQueue(qi, aUser, isBadSource)) { addBundle(bundle, aUser); if (!newBundle) { QueueManager::getInstance()->fire(QueueManagerListener::BundleSources(), bundle); } } else { dcassert(userBundleQueue.find(aUser.user) != userBundleQueue.end()); } } }