| // 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_ |