| OLD | NEW |
| 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 #include "base/task_scheduler/task_traits.h" | 5 #include "base/task_scheduler/task_traits.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <ostream> | 9 #include <ostream> |
| 10 | 10 |
| 11 #include "base/logging.h" |
| 12 |
| 11 namespace base { | 13 namespace base { |
| 12 | 14 |
| 13 // Do not rely on defaults hard-coded below beyond the guarantees described in | 15 // Do not rely on defaults hard-coded below beyond the guarantees described in |
| 14 // the header; anything else is subject to change. Tasks should explicitly | 16 // the header; anything else is subject to change. Tasks should explicitly |
| 15 // request defaults if the behavior is critical to the task. | 17 // request defaults if the behavior is critical to the task. |
| 16 TaskTraits::TaskTraits() | 18 TaskTraits::TaskTraits() |
| 17 : with_file_io_(false), | 19 : with_file_io_(false), |
| 18 priority_(TaskPriority::BACKGROUND), | 20 priority_(TaskPriority::BACKGROUND), |
| 19 shutdown_behavior_(TaskShutdownBehavior::SKIP_ON_SHUTDOWN) {} | 21 shutdown_behavior_(TaskShutdownBehavior::SKIP_ON_SHUTDOWN) {} |
| 20 | 22 |
| 21 TaskTraits::~TaskTraits() = default; | 23 TaskTraits::~TaskTraits() = default; |
| 22 | 24 |
| 23 TaskTraits& TaskTraits::WithFileIO() { | 25 TaskTraits& TaskTraits::WithFileIO() { |
| 24 with_file_io_ = true; | 26 with_file_io_ = true; |
| 25 return *this; | 27 return *this; |
| 26 } | 28 } |
| 27 | 29 |
| 28 TaskTraits& TaskTraits::WithPriority(TaskPriority priority) { | 30 TaskTraits& TaskTraits::WithPriority(TaskPriority priority) { |
| 29 priority_ = priority; | 31 priority_ = priority; |
| 30 return *this; | 32 return *this; |
| 31 } | 33 } |
| 32 | 34 |
| 33 TaskTraits& TaskTraits::WithShutdownBehavior( | 35 TaskTraits& TaskTraits::WithShutdownBehavior( |
| 34 TaskShutdownBehavior shutdown_behavior) { | 36 TaskShutdownBehavior shutdown_behavior) { |
| 35 shutdown_behavior_ = shutdown_behavior; | 37 shutdown_behavior_ = shutdown_behavior; |
| 36 return *this; | 38 return *this; |
| 37 } | 39 } |
| 38 | 40 |
| 39 std::ostream& operator<<(std::ostream& os, const TaskPriority& task_priority) { | 41 const char* TaskPriorityToString(TaskPriority task_priority) { |
| 40 switch (task_priority) { | 42 switch (task_priority) { |
| 41 case TaskPriority::BACKGROUND: | 43 case TaskPriority::BACKGROUND: |
| 42 os << "BACKGROUND"; | 44 return "BACKGROUND"; |
| 43 break; | |
| 44 case TaskPriority::USER_VISIBLE: | 45 case TaskPriority::USER_VISIBLE: |
| 45 os << "USER_VISIBLE"; | 46 return "USER_VISIBLE"; |
| 46 break; | |
| 47 case TaskPriority::USER_BLOCKING: | 47 case TaskPriority::USER_BLOCKING: |
| 48 os << "USER_BLOCKING"; | 48 return "USER_BLOCKING"; |
| 49 break; | |
| 50 } | 49 } |
| 50 NOTREACHED(); |
| 51 return ""; |
| 52 } |
| 53 |
| 54 const char* TaskShutdownBehaviorToString( |
| 55 TaskShutdownBehavior shutdown_behavior) { |
| 56 switch (shutdown_behavior) { |
| 57 case TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN: |
| 58 return "CONTINUE_ON_SHUTDOWN"; |
| 59 case TaskShutdownBehavior::SKIP_ON_SHUTDOWN: |
| 60 return "SKIP_ON_SHUTDOWN"; |
| 61 case TaskShutdownBehavior::BLOCK_SHUTDOWN: |
| 62 return "BLOCK_SHUTDOWN"; |
| 63 } |
| 64 NOTREACHED(); |
| 65 return ""; |
| 66 } |
| 67 |
| 68 const char* ExecutionModeToString(ExecutionMode execution_mode) { |
| 69 switch (execution_mode) { |
| 70 case ExecutionMode::PARALLEL: |
| 71 return "PARALLEL"; |
| 72 case ExecutionMode::SEQUENCED: |
| 73 return "SEQUENCED"; |
| 74 case ExecutionMode::SINGLE_THREADED: |
| 75 return "SINGLE_THREADED"; |
| 76 } |
| 77 NOTREACHED(); |
| 78 return ""; |
| 79 } |
| 80 |
| 81 std::ostream& operator<<(std::ostream& os, const TaskPriority& task_priority) { |
| 82 os << TaskPriorityToString(task_priority); |
| 51 return os; | 83 return os; |
| 52 } | 84 } |
| 53 | 85 |
| 54 std::ostream& operator<<(std::ostream& os, | 86 std::ostream& operator<<(std::ostream& os, |
| 55 const TaskShutdownBehavior& shutdown_behavior) { | 87 const TaskShutdownBehavior& shutdown_behavior) { |
| 56 switch (shutdown_behavior) { | 88 os << TaskShutdownBehaviorToString(shutdown_behavior); |
| 57 case TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN: | |
| 58 os << "CONTINUE_ON_SHUTDOWN"; | |
| 59 break; | |
| 60 case TaskShutdownBehavior::SKIP_ON_SHUTDOWN: | |
| 61 os << "SKIP_ON_SHUTDOWN"; | |
| 62 break; | |
| 63 case TaskShutdownBehavior::BLOCK_SHUTDOWN: | |
| 64 os << "BLOCK_SHUTDOWN"; | |
| 65 break; | |
| 66 } | |
| 67 return os; | 89 return os; |
| 68 } | 90 } |
| 69 | 91 |
| 92 std::ostream& operator<<(std::ostream& os, |
| 93 const ExecutionMode& execution_mode) { |
| 94 os << ExecutionModeToString(execution_mode); |
| 95 return os; |
| 96 } |
| 97 |
| 70 } // namespace base | 98 } // namespace base |
| OLD | NEW |