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

Side by Side Diff: chrome/browser/sync/sessions/sync_session_context.h

Issue 3305003: New authorization framework for sync. ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 3 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
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 // SyncSessionContext encapsulates the contextual information and engine 5 // SyncSessionContext encapsulates the contextual information and engine
6 // components specific to a SyncSession. A context is accessible via 6 // components specific to a SyncSession. A context is accessible via
7 // a SyncSession so that session SyncerCommands and parts of the engine have 7 // a SyncSession so that session SyncerCommands and parts of the engine have
8 // a convenient way to access other parts. In this way it can be thought of as 8 // a convenient way to access other parts. In this way it can be thought of as
9 // the surrounding environment for the SyncSession. The components of this 9 // the surrounding environment for the SyncSession. The components of this
10 // environment are either valid or not valid for the entire context lifetime, 10 // environment are either valid or not valid for the entire context lifetime,
(...skipping 13 matching lines...) Expand all
24 #include "chrome/browser/sync/engine/model_safe_worker.h" 24 #include "chrome/browser/sync/engine/model_safe_worker.h"
25 #include "chrome/browser/sync/engine/syncer_types.h" 25 #include "chrome/browser/sync/engine/syncer_types.h"
26 #include "chrome/browser/sync/util/extensions_activity_monitor.h" 26 #include "chrome/browser/sync/util/extensions_activity_monitor.h"
27 27
28 namespace syncable { 28 namespace syncable {
29 class DirectoryManager; 29 class DirectoryManager;
30 } 30 }
31 31
32 namespace browser_sync { 32 namespace browser_sync {
33 33
34 class AuthWatcher;
35 class ConflictResolver; 34 class ConflictResolver;
36 class ModelSafeWorkerRegistrar; 35 class ModelSafeWorkerRegistrar;
37 class ServerConnectionManager; 36 class ServerConnectionManager;
38 37
39 namespace sessions { 38 namespace sessions {
40 class ScopedSessionContextConflictResolver; 39 class ScopedSessionContextConflictResolver;
41 class ScopedSessionContextSyncerEventChannel; 40 class ScopedSessionContextSyncerEventChannel;
42 41
43 class SyncSessionContext { 42 class SyncSessionContext {
44 public: 43 public:
45 SyncSessionContext(ServerConnectionManager* connection_manager, 44 SyncSessionContext(ServerConnectionManager* connection_manager,
46 AuthWatcher* auth_watcher,
47 syncable::DirectoryManager* directory_manager, 45 syncable::DirectoryManager* directory_manager,
48 ModelSafeWorkerRegistrar* model_safe_worker_registrar) 46 ModelSafeWorkerRegistrar* model_safe_worker_registrar)
49 : resolver_(NULL), 47 : resolver_(NULL),
50 syncer_event_channel_(NULL), 48 syncer_event_channel_(NULL),
51 connection_manager_(connection_manager), 49 connection_manager_(connection_manager),
52 auth_watcher_(auth_watcher),
53 directory_manager_(directory_manager), 50 directory_manager_(directory_manager),
54 registrar_(model_safe_worker_registrar), 51 registrar_(model_safe_worker_registrar),
55 extensions_activity_monitor_(new ExtensionsActivityMonitor()), 52 extensions_activity_monitor_(new ExtensionsActivityMonitor()),
56 notifications_enabled_(false) { 53 notifications_enabled_(false) {
57 } 54 }
58 55
59 ~SyncSessionContext() { 56 ~SyncSessionContext() {
60 // In unittests, there may be no UI thread, so the above will fail. 57 // In unittests, there may be no UI thread, so the above will fail.
61 if (!ChromeThread::DeleteSoon(ChromeThread::UI, FROM_HERE, 58 if (!ChromeThread::DeleteSoon(ChromeThread::UI, FROM_HERE,
62 extensions_activity_monitor_)) { 59 extensions_activity_monitor_)) {
63 delete extensions_activity_monitor_; 60 delete extensions_activity_monitor_;
64 } 61 }
65 } 62 }
66 63
67 ConflictResolver* resolver() { return resolver_; } 64 ConflictResolver* resolver() { return resolver_; }
68 ServerConnectionManager* connection_manager() { 65 ServerConnectionManager* connection_manager() {
69 return connection_manager_; 66 return connection_manager_;
70 } 67 }
71 AuthWatcher* auth_watcher() {
72 return auth_watcher_;
73 }
74 syncable::DirectoryManager* directory_manager() { 68 syncable::DirectoryManager* directory_manager() {
75 return directory_manager_; 69 return directory_manager_;
76 } 70 }
77 SyncerEventChannel* syncer_event_channel() { 71 SyncerEventChannel* syncer_event_channel() {
78 return syncer_event_channel_; 72 return syncer_event_channel_;
79 } 73 }
80 ModelSafeWorkerRegistrar* registrar() { 74 ModelSafeWorkerRegistrar* registrar() {
81 return registrar_; 75 return registrar_;
82 } 76 }
83 ExtensionsActivityMonitor* extensions_monitor() { 77 ExtensionsActivityMonitor* extensions_monitor() {
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 // extend our encapsulation boundary to scoped helpers that take care of this 112 // extend our encapsulation boundary to scoped helpers that take care of this
119 // once they are allocated. See definitions of these below. 113 // once they are allocated. See definitions of these below.
120 friend class ScopedSessionContextConflictResolver; 114 friend class ScopedSessionContextConflictResolver;
121 friend class ScopedSessionContextSyncerEventChannel; 115 friend class ScopedSessionContextSyncerEventChannel;
122 116
123 // These are installed by Syncer objects when needed and may be NULL. 117 // These are installed by Syncer objects when needed and may be NULL.
124 ConflictResolver* resolver_; 118 ConflictResolver* resolver_;
125 SyncerEventChannel* syncer_event_channel_; 119 SyncerEventChannel* syncer_event_channel_;
126 120
127 ServerConnectionManager* const connection_manager_; 121 ServerConnectionManager* const connection_manager_;
128 AuthWatcher* const auth_watcher_;
129 syncable::DirectoryManager* const directory_manager_; 122 syncable::DirectoryManager* const directory_manager_;
130 123
131 // A registrar of workers capable of processing work closures on a thread 124 // A registrar of workers capable of processing work closures on a thread
132 // that is guaranteed to be safe for model modifications. 125 // that is guaranteed to be safe for model modifications.
133 ModelSafeWorkerRegistrar* registrar_; 126 ModelSafeWorkerRegistrar* registrar_;
134 127
135 // We use this to stuff extensions activity into CommitMessages so the server 128 // We use this to stuff extensions activity into CommitMessages so the server
136 // can correlate commit traffic with extension-related bookmark mutations. 129 // can correlate commit traffic with extension-related bookmark mutations.
137 ExtensionsActivityMonitor* extensions_activity_monitor_; 130 ExtensionsActivityMonitor* extensions_activity_monitor_;
138 131
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 private: 186 private:
194 SyncSessionContext* context_; 187 SyncSessionContext* context_;
195 SyncerEventChannel* channel_; 188 SyncerEventChannel* channel_;
196 DISALLOW_COPY_AND_ASSIGN(ScopedSessionContextSyncerEventChannel); 189 DISALLOW_COPY_AND_ASSIGN(ScopedSessionContextSyncerEventChannel);
197 }; 190 };
198 191
199 } // namespace sessions 192 } // namespace sessions
200 } // namespace browser_sync 193 } // namespace browser_sync
201 194
202 #endif // CHROME_BROWSER_SYNC_SESSIONS_SYNC_SESSION_CONTEXT_H_ 195 #endif // CHROME_BROWSER_SYNC_SESSIONS_SYNC_SESSION_CONTEXT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698