1 // Copyright 2018 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef BASE_TASK_SEQUENCE_MANAGER_TASK_TIME_OBSERVER_H_ 6 #define BASE_TASK_SEQUENCE_MANAGER_TASK_TIME_OBSERVER_H_ 7 8 #include "base/base_export.h" 9 #include "base/observer_list_types.h" 10 #include "base/time/time.h" 11 12 namespace base { 13 namespace sequence_manager { 14 15 // TaskTimeObserver provides an API for observing completion of tasks. 16 class BASE_EXPORT TaskTimeObserver : public CheckedObserver { 17 public: 18 TaskTimeObserver() = default; 19 TaskTimeObserver(const TaskTimeObserver&) = delete; 20 TaskTimeObserver& operator=(const TaskTimeObserver&) = delete; 21 ~TaskTimeObserver() override; 22 23 // To be called when task is about to start. 24 virtual void WillProcessTask(TimeTicks start_time) = 0; 25 26 // To be called when task is completed. 27 virtual void DidProcessTask(TimeTicks start_time, TimeTicks end_time) = 0; 28 }; 29 30 } // namespace sequence_manager 31 } // namespace base 32 33 #endif // BASE_TASK_SEQUENCE_MANAGER_TASK_TIME_OBSERVER_H_ 34