// Copyright 2018 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef BASE_UPDATEABLE_SEQUENCED_TASK_RUNNER_H_ #define BASE_UPDATEABLE_SEQUENCED_TASK_RUNNER_H_ #include "base/sequenced_task_runner.h" #include "base/task/task_traits.h" namespace base { // A SequencedTaskRunner whose posted tasks' priorities can be updated. class BASE_EXPORT UpdateableSequencedTaskRunner : public SequencedTaskRunner { public: UpdateableSequencedTaskRunner(const UpdateableSequencedTaskRunner&) = delete; UpdateableSequencedTaskRunner& operator=( const UpdateableSequencedTaskRunner&) = delete; // Updates the priority for tasks posted through this TaskRunner to // |priority|. virtual void UpdatePriority(TaskPriority priority) = 0; protected: UpdateableSequencedTaskRunner() = default; ~UpdateableSequencedTaskRunner() override = default; }; } // namespace base #endif // BASE_UPDATEABLE_SEQUENCED_TASK_RUNNER_H_