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

Side by Side Diff: sync/internal_api/public/sync_manager.h

Issue 1545553003: Switch to standard integer types in sync/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 #ifndef SYNC_INTERNAL_API_PUBLIC_SYNC_MANAGER_H_ 5 #ifndef SYNC_INTERNAL_API_PUBLIC_SYNC_MANAGER_H_
6 #define SYNC_INTERNAL_API_PUBLIC_SYNC_MANAGER_H_ 6 #define SYNC_INTERNAL_API_PUBLIC_SYNC_MANAGER_H_
7 7
8 #include <stdint.h>
9
8 #include <string> 10 #include <string>
9 #include <vector> 11 #include <vector>
10 12
11 #include "base/basictypes.h"
12 #include "base/callback.h" 13 #include "base/callback.h"
13 #include "base/files/file_path.h" 14 #include "base/files/file_path.h"
14 #include "base/memory/ref_counted.h" 15 #include "base/memory/ref_counted.h"
15 #include "base/memory/scoped_ptr.h" 16 #include "base/memory/scoped_ptr.h"
16 #include "base/memory/scoped_vector.h" 17 #include "base/memory/scoped_vector.h"
17 #include "base/task_runner.h" 18 #include "base/task_runner.h"
18 #include "base/threading/thread_checker.h" 19 #include "base/threading/thread_checker.h"
19 #include "google_apis/gaia/oauth2_token_service.h" 20 #include "google_apis/gaia/oauth2_token_service.h"
20 #include "sync/base/sync_export.h" 21 #include "sync/base/sync_export.h"
21 #include "sync/internal_api/public/base/invalidation_interface.h" 22 #include "sync/internal_api/public/base/invalidation_interface.h"
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 // 2. Updates to existing items with synced parents & predecessors. 111 // 2. Updates to existing items with synced parents & predecessors.
111 // 3. New items with synced parents & predecessors. 112 // 3. New items with synced parents & predecessors.
112 // 4. Items with parents & predecessors in |changes|. 113 // 4. Items with parents & predecessors in |changes|.
113 // 5. Repeat #4 until all items are in |changes|. 114 // 5. Repeat #4 until all items are in |changes|.
114 // 115 //
115 // Thus, an implementation of OnChangesApplied should be able to 116 // Thus, an implementation of OnChangesApplied should be able to
116 // process the change records in the order without having to worry about 117 // process the change records in the order without having to worry about
117 // forward dependencies. But since deletions come before reparent 118 // forward dependencies. But since deletions come before reparent
118 // operations, a delete may temporarily orphan a node that is 119 // operations, a delete may temporarily orphan a node that is
119 // updated later in the list. 120 // updated later in the list.
120 virtual void OnChangesApplied( 121 virtual void OnChangesApplied(ModelType model_type,
121 ModelType model_type, 122 int64_t model_version,
122 int64 model_version, 123 const BaseTransaction* trans,
123 const BaseTransaction* trans, 124 const ImmutableChangeRecordList& changes) = 0;
124 const ImmutableChangeRecordList& changes) = 0;
125 125
126 // OnChangesComplete gets called when the TransactionComplete event is 126 // OnChangesComplete gets called when the TransactionComplete event is
127 // posted (after OnChangesApplied finishes), after the transaction lock 127 // posted (after OnChangesApplied finishes), after the transaction lock
128 // and the change channel mutex are released. 128 // and the change channel mutex are released.
129 // 129 //
130 // The purpose of this function is to support processors that require 130 // The purpose of this function is to support processors that require
131 // split-transactions changes. For example, if a model processor wants to 131 // split-transactions changes. For example, if a model processor wants to
132 // perform blocking I/O due to a change, it should calculate the changes 132 // perform blocking I/O due to a change, it should calculate the changes
133 // while holding the transaction lock (from within OnChangesApplied), buffer 133 // while holding the transaction lock (from within OnChangesApplied), buffer
134 // those changes, let the transaction fall out of scope, and then commit 134 // those changes, let the transaction fall out of scope, and then commit
(...skipping 19 matching lines...) Expand all
154 // TODO(sync, long-term): Ideally, ChangeDelegate/Observer would 154 // TODO(sync, long-term): Ideally, ChangeDelegate/Observer would
155 // be passed a transformed version of EntryKernelMutation instead 155 // be passed a transformed version of EntryKernelMutation instead
156 // of a transaction that would have to be used to look up the 156 // of a transaction that would have to be used to look up the
157 // changed nodes. That is, ChangeDelegate::OnChangesApplied() 157 // changed nodes. That is, ChangeDelegate::OnChangesApplied()
158 // would still be called under the transaction, but all the needed 158 // would still be called under the transaction, but all the needed
159 // data will be passed down. 159 // data will be passed down.
160 // 160 //
161 // Even more ideally, we would have sync semantics such that we'd 161 // Even more ideally, we would have sync semantics such that we'd
162 // be able to apply changes without being under a transaction. 162 // be able to apply changes without being under a transaction.
163 // But that's a ways off... 163 // But that's a ways off...
164 virtual void OnChangesApplied( 164 virtual void OnChangesApplied(ModelType model_type,
165 ModelType model_type, 165 int64_t write_transaction_id,
166 int64 write_transaction_id, 166 const ImmutableChangeRecordList& changes) = 0;
167 const ImmutableChangeRecordList& changes) = 0;
168 167
169 virtual void OnChangesComplete(ModelType model_type) = 0; 168 virtual void OnChangesComplete(ModelType model_type) = 0;
170 169
171 protected: 170 protected:
172 virtual ~ChangeObserver(); 171 virtual ~ChangeObserver();
173 }; 172 };
174 173
175 // An interface the embedding application implements to receive 174 // An interface the embedding application implements to receive
176 // notifications from the SyncManager. Register an observer via 175 // notifications from the SyncManager. Register an observer via
177 // SyncManager::AddObserver. All methods are called only on the 176 // SyncManager::AddObserver. All methods are called only on the
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 // 398 //
400 // This is an asynchronous operation that requires interaction with the sync 399 // This is an asynchronous operation that requires interaction with the sync
401 // server. The operation will automatically be retried with backoff until it 400 // server. The operation will automatically be retried with backoff until it
402 // completes successfully or sync is shutdown. 401 // completes successfully or sync is shutdown.
403 virtual void ClearServerData(const ClearServerDataCallback& callback) = 0; 402 virtual void ClearServerData(const ClearServerDataCallback& callback) = 0;
404 }; 403 };
405 404
406 } // namespace syncer 405 } // namespace syncer
407 406
408 #endif // SYNC_INTERNAL_API_PUBLIC_SYNC_MANAGER_H_ 407 #endif // SYNC_INTERNAL_API_PUBLIC_SYNC_MANAGER_H_
OLDNEW
« no previous file with comments | « sync/internal_api/public/sessions/sync_session_snapshot.cc ('k') | sync/internal_api/public/sync_manager_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698