#include "base/task/sequence_manager/work_queue_sets.h"
#include <optional>
#include "base/check_op.h"
#include "base/task/sequence_manager/task_order.h"
#include "base/task/sequence_manager/work_queue.h"
namespace base {
namespace sequence_manager {
namespace internal {
WorkQueueSets::WorkQueueSets(const char* name,
Observer* observer,
const SequenceManager::Settings& settings)
: … { … }
WorkQueueSets::~WorkQueueSets() = default;
void WorkQueueSets::AddQueue(WorkQueue* work_queue, size_t set_index) { … }
void WorkQueueSets::RemoveQueue(WorkQueue* work_queue) { … }
void WorkQueueSets::ChangeSetIndex(WorkQueue* work_queue, size_t set_index) { … }
void WorkQueueSets::OnQueuesFrontTaskChanged(WorkQueue* work_queue) { … }
void WorkQueueSets::OnTaskPushedToEmptyQueue(WorkQueue* work_queue) { … }
void WorkQueueSets::OnPopMinQueueInSet(WorkQueue* work_queue) { … }
void WorkQueueSets::OnQueueBlocked(WorkQueue* work_queue) { … }
std::optional<WorkQueueAndTaskOrder>
WorkQueueSets::GetOldestQueueAndTaskOrderInSet(size_t set_index) const { … }
#if DCHECK_IS_ON()
std::optional<WorkQueueAndTaskOrder>
WorkQueueSets::GetRandomQueueAndTaskOrderInSet(size_t set_index) const { … }
#endif
bool WorkQueueSets::IsSetEmpty(size_t set_index) const { … }
#if DCHECK_IS_ON() || !defined(NDEBUG)
bool WorkQueueSets::ContainsWorkQueueForTest(
const WorkQueue* work_queue) const { … }
#endif
void WorkQueueSets::CollectSkippedOverLowerPriorityTasks(
const internal::WorkQueue* selected_work_queue,
std::vector<const Task*>* result) const { … }
}
}
}