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

Side by Side Diff: chrome/browser/sync/engine/all_status.h

Issue 2075012: Replace changes_channel with an observer list. (Closed)
Patch Set: Ready for checkin Created 10 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
« no previous file with comments | « no previous file | chrome/browser/sync/engine/all_status.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2009 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 // The AllStatus object watches various sync engine components and aggregates 5 // The AllStatus object watches various sync engine components and aggregates
6 // the status of all of them into one place. 6 // the status of all of them into one place.
7 7
8 #ifndef CHROME_BROWSER_SYNC_ENGINE_ALL_STATUS_H_ 8 #ifndef CHROME_BROWSER_SYNC_ENGINE_ALL_STATUS_H_
9 #define CHROME_BROWSER_SYNC_ENGINE_ALL_STATUS_H_ 9 #define CHROME_BROWSER_SYNC_ENGINE_ALL_STATUS_H_
10 10
11 #include <map> 11 #include <map>
12 12
13 #include "base/atomicops.h" 13 #include "base/atomicops.h"
14 #include "base/lock.h" 14 #include "base/lock.h"
15 #include "base/scoped_ptr.h" 15 #include "base/scoped_ptr.h"
16 #include "chrome/browser/sync/util/channel.h"
16 #include "chrome/common/deprecated/event_sys.h" 17 #include "chrome/common/deprecated/event_sys.h"
17 18
18 namespace browser_sync { 19 namespace browser_sync {
19 20
20 class ScopedStatusLockWithNotify; 21 class ScopedStatusLockWithNotify;
21 class ServerConnectionManager; 22 class ServerConnectionManager;
22 class Syncer; 23 class Syncer;
23 class SyncerThread; 24 class SyncerThread;
24 struct AllStatusEvent; 25 struct AllStatusEvent;
25 struct AuthWatcherEvent; 26 struct AuthWatcherEvent;
26 struct ServerConnectionEvent; 27 struct ServerConnectionEvent;
27 struct SyncerEvent; 28 struct SyncerEvent;
28 29
29 class AllStatus { 30 class AllStatus : public ChannelEventHandler<SyncerEvent> {
30 friend class ScopedStatusLockWithNotify; 31 friend class ScopedStatusLockWithNotify;
31 public: 32 public:
32 typedef EventChannel<AllStatusEvent, Lock> Channel; 33 typedef EventChannel<AllStatusEvent, Lock> Channel;
33 34
34 // Status of the entire sync process distilled into a single enum. 35 // Status of the entire sync process distilled into a single enum.
35 enum SyncStatus { 36 enum SyncStatus {
36 // Can't connect to server, but there are no pending changes in 37 // Can't connect to server, but there are no pending changes in
37 // our local dataase. 38 // our local dataase.
38 OFFLINE, 39 OFFLINE,
39 // Can't connect to server, and there are pending changes in our 40 // Can't connect to server, and there are pending changes in our
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 91
91 AllStatus(); 92 AllStatus();
92 ~AllStatus(); 93 ~AllStatus();
93 94
94 void WatchConnectionManager(ServerConnectionManager* conn_mgr); 95 void WatchConnectionManager(ServerConnectionManager* conn_mgr);
95 void HandleServerConnectionEvent(const ServerConnectionEvent& event); 96 void HandleServerConnectionEvent(const ServerConnectionEvent& event);
96 97
97 void HandleAuthWatcherEvent(const AuthWatcherEvent& event); 98 void HandleAuthWatcherEvent(const AuthWatcherEvent& event);
98 99
99 void WatchSyncerThread(SyncerThread* syncer_thread); 100 void WatchSyncerThread(SyncerThread* syncer_thread);
100 void HandleSyncerEvent(const SyncerEvent& event); 101 void HandleChannelEvent(const SyncerEvent& event);
101 102
102 // Returns a string description of the SyncStatus (currently just the ascii 103 // Returns a string description of the SyncStatus (currently just the ascii
103 // version of the enum). Will LOG(FATAL) if the status us out of range. 104 // version of the enum). Will LOG(FATAL) if the status us out of range.
104 static const char* GetSyncStatusString(SyncStatus status); 105 static const char* GetSyncStatusString(SyncStatus status);
105 106
106 Channel* channel() const { return channel_; } 107 Channel* channel() const { return channel_; }
107 108
108 Status status() const; 109 Status status() const;
109 110
110 // DDOS avoidance function. The argument and return value is in seconds 111 // DDOS avoidance function. The argument and return value is in seconds
(...skipping 16 matching lines...) Expand all
127 Status CalcSyncing() const; 128 Status CalcSyncing() const;
128 Status CalcSyncing(const SyncerEvent& event) const; 129 Status CalcSyncing(const SyncerEvent& event) const;
129 Status CreateBlankStatus() const; 130 Status CreateBlankStatus() const;
130 131
131 // Examines status to see what has changed, updates old_status in place. 132 // Examines status to see what has changed, updates old_status in place.
132 int CalcStatusChanges(Status* old_status); 133 int CalcStatusChanges(Status* old_status);
133 134
134 Status status_; 135 Status status_;
135 Channel* const channel_; 136 Channel* const channel_;
136 scoped_ptr<EventListenerHookup> conn_mgr_hookup_; 137 scoped_ptr<EventListenerHookup> conn_mgr_hookup_;
137 scoped_ptr<EventListenerHookup> syncer_thread_hookup_; 138 scoped_ptr<ChannelHookup<SyncerEvent> > syncer_thread_hookup_;
138 scoped_ptr<EventListenerHookup> diskfull_hookup_; 139 scoped_ptr<EventListenerHookup> diskfull_hookup_;
139 scoped_ptr<EventListenerHookup> talk_mediator_hookup_; 140 scoped_ptr<EventListenerHookup> talk_mediator_hookup_;
140 141
141 mutable Lock mutex_; // Protects all data members. 142 mutable Lock mutex_; // Protects all data members.
142 DISALLOW_COPY_AND_ASSIGN(AllStatus); 143 DISALLOW_COPY_AND_ASSIGN(AllStatus);
143 }; 144 };
144 145
145 struct AllStatusEvent { 146 struct AllStatusEvent {
146 enum { // A bit mask of which members have changed. 147 enum { // A bit mask of which members have changed.
147 SHUTDOWN = 0x0000, 148 SHUTDOWN = 0x0000,
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 void NotifyOverQuota(); 187 void NotifyOverQuota();
187 protected: 188 protected:
188 AllStatusEvent event_; 189 AllStatusEvent event_;
189 AllStatus* const allstatus_; 190 AllStatus* const allstatus_;
190 StatusNotifyPlan plan_; 191 StatusNotifyPlan plan_;
191 }; 192 };
192 193
193 } // namespace browser_sync 194 } // namespace browser_sync
194 195
195 #endif // CHROME_BROWSER_SYNC_ENGINE_ALL_STATUS_H_ 196 #endif // CHROME_BROWSER_SYNC_ENGINE_ALL_STATUS_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/sync/engine/all_status.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698