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

Side by Side Diff: chrome/browser/sync_file_system/task_logger.h

Issue 291403004: [SyncFS] Add TaskLogger and wire up it. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix Created 6 years, 6 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
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 CHROME_BROWSER_SYNC_FILE_SYSTEM_TASK_LOGGER_H_
6 #define CHROME_BROWSER_SYNC_FILE_SYSTEM_TASK_LOGGER_H_
7
8 #include <deque>
9 #include <string>
10
11 #include "base/memory/scoped_ptr.h"
12 #include "base/memory/weak_ptr.h"
13 #include "base/observer_list.h"
14 #include "base/time/time.h"
15
16 namespace sync_file_system {
17
18 class TaskLogger : public base::SupportsWeakPtr<TaskLogger> {
19 public:
20 struct TaskLog {
21 base::TimeDelta duration;
22 std::string type;
23 std::string summary;
24 std::vector<std::string> details;
25
26 TaskLog();
27 ~TaskLog();
28 };
29
30 class Observer {
31 public:
32 virtual void OnLogRecorded(const TaskLog& task_log) = 0;
33
34 protected:
35 Observer() {}
36 virtual ~Observer() {}
37
38 private:
39 DISALLOW_COPY_AND_ASSIGN(Observer);
40 };
41
42 TaskLogger();
43 ~TaskLogger();
44
45 void RecordLog(scoped_ptr<TaskLog> log);
46 void ClearLog();
47
48 void AddObserver(Observer* observer);
49 void RemoveObserver(Observer* observer);
50
51 const std::deque<TaskLog*>& GetLog() const;
52
53 private:
54 std::deque<TaskLog*> log_history_;
55
56 ObserverList<Observer> observers_;
57
58 DISALLOW_COPY_AND_ASSIGN(TaskLogger);
59 };
60
61 } // namespace sync_file_system
62
63 #endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_TASK_LOGGER_H_
OLDNEW
« no previous file with comments | « chrome/browser/sync_file_system/sync_file_system_service_factory.cc ('k') | chrome/browser/sync_file_system/task_logger.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698