Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(191)

Side by Side Diff: base/task_scheduler/sequence_sort_key.h

Issue 1701343003: TaskScheduler [13] TaskSchedulerImpl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@s_6_threadpool
Patch Set: auto -> std::unique_ptr<TaskSchedulerImpl> Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef BASE_TASK_SCHEDULER_SEQUENCE_SORT_KEY_H_ 5 #ifndef BASE_TASK_SCHEDULER_SEQUENCE_SORT_KEY_H_
6 #define BASE_TASK_SCHEDULER_SEQUENCE_SORT_KEY_H_ 6 #define BASE_TASK_SCHEDULER_SEQUENCE_SORT_KEY_H_
7 7
8 #include "base/base_export.h" 8 #include "base/base_export.h"
9 #include "base/task_scheduler/task_traits.h" 9 #include "base/task_scheduler/task_traits.h"
10 #include "base/time/time.h" 10 #include "base/time/time.h"
11 11
12 namespace base { 12 namespace base {
13 namespace internal { 13 namespace internal {
14 14
15 // An immutable but assignable representation of the priority of a Sequence. 15 // An immutable but assignable representation of the priority of a Sequence.
16 class BASE_EXPORT SequenceSortKey final { 16 class BASE_EXPORT SequenceSortKey final {
17 public: 17 public:
18 SequenceSortKey(TaskPriority priority, TimeTicks next_task_sequenced_time); 18 SequenceSortKey(TaskPriority priority, TimeTicks next_task_sequenced_time);
19 19
20 TaskPriority priority() const { return priority_; }
21
20 bool operator<(const SequenceSortKey& other) const; 22 bool operator<(const SequenceSortKey& other) const;
21 bool operator>(const SequenceSortKey& other) const { return other < *this; } 23 bool operator>(const SequenceSortKey& other) const { return other < *this; }
22 24
23 bool operator==(const SequenceSortKey& other) const { 25 bool operator==(const SequenceSortKey& other) const {
24 return priority_ == other.priority_ && 26 return priority_ == other.priority_ &&
25 next_task_sequenced_time_ == other.next_task_sequenced_time_; 27 next_task_sequenced_time_ == other.next_task_sequenced_time_;
26 } 28 }
27 bool operator!=(const SequenceSortKey& other) const { 29 bool operator!=(const SequenceSortKey& other) const {
28 return !(other == *this); 30 return !(other == *this);
29 }; 31 };
30 32
31 private: 33 private:
32 // The private section allows this class to keep its immutable property while 34 // The private section allows this class to keep its immutable property while
33 // being copy-assignable (i.e. instead of making its members const). 35 // being copy-assignable (i.e. instead of making its members const).
34 36
35 // Highest task priority in the sequence at the time this sort key was 37 // Highest task priority in the sequence at the time this sort key was
36 // created. 38 // created.
37 TaskPriority priority_; 39 TaskPriority priority_;
38 40
39 // Sequenced time of the next task to run in the sequence at the time this 41 // Sequenced time of the next task to run in the sequence at the time this
40 // sort key was created. 42 // sort key was created.
41 TimeTicks next_task_sequenced_time_; 43 TimeTicks next_task_sequenced_time_;
42 }; 44 };
43 45
44 } // namespace internal 46 } // namespace internal
45 } // namespace base 47 } // namespace base
46 48
47 #endif // BASE_TASK_SCHEDULER_SEQUENCE_SORT_KEY_H_ 49 #endif // BASE_TASK_SCHEDULER_SEQUENCE_SORT_KEY_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698