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

Unified Diff: chrome/browser/sync_file_system/remote_file_sync_service.h

Issue 11299008: Remote service state handling (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased Created 8 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/sync_file_system/remote_file_sync_service.h
diff --git a/chrome/browser/sync_file_system/remote_file_sync_service.h b/chrome/browser/sync_file_system/remote_file_sync_service.h
index 2325eb06523e08473c74a9eedb311ce26b972dd2..8fad29349af751bb30c8ceca093f29119ad58a9b 100644
--- a/chrome/browser/sync_file_system/remote_file_sync_service.h
+++ b/chrome/browser/sync_file_system/remote_file_sync_service.h
@@ -16,6 +16,34 @@ namespace sync_file_system {
class RemoteChangeProcessor;
class LocalChangeProcessor;
+enum RemoteServiceState {
+ // Remote service is up and running, or has not seen any errors yet.
+ // The consumer of this service can make new requests while the
+ // service is in this state.
+ REMOTE_SERVICE_OK,
+
+ // Remote service is temporarily unavailable due to network,
+ // authentication or some other temporary failure.
+ // This state may be automatically resolved when the underlying
+ // network condition or service condition changes.
+ // The consumer of this service can still make new requests but
+ // they may fail (with recoverable error code).
+ REMOTE_SERVICE_TEMPORARY_UNAVAILABLE,
+
+ // Remote service is temporarily unavailable due to authentication failure.
+ // This state may be automatically resolved when the authentication token
+ // has been refreshed internally (e.g. when the user signed in etc).
+ // The consumer of this service can still make new requests but
+ // they may fail (with recoverable error code).
+ REMOTE_SERVICE_AUTHENTICATION_REQUIRED,
+
+ // Remote service is disabled due to unrecoverable errors, e.g.
+ // local database corruption.
+ // Any new requests will immediately fail when the service is in
+ // this state.
+ REMOTE_SERVICE_DISABLED,
+};
+
// This class represents a backing service of the sync filesystem.
// This also maintains conflict information, i.e. a list of conflicting files
// (at least in the current design).
@@ -33,9 +61,10 @@ class RemoteFileSyncService {
// value.
virtual void OnRemoteChangeAvailable(int64 pending_changes_hint) = 0;
- // This is called when RemoteFileSyncService changes its status.
- virtual void OnRemoteSyncStatusChanged(
- fileapi::SyncStatusCode new_status) {}
+ // This is called when RemoteFileSyncService updates its state.
+ virtual void OnRemoteServiceStateUpdated(
+ RemoteServiceState state,
+ const std::string& description) {}
private:
DISALLOW_COPY_AND_ASSIGN(Observer);
@@ -49,12 +78,18 @@ class RemoteFileSyncService {
// Registers |origin| to track remote side changes for the |origin|.
// Upon completion, invokes |callback|.
+ // The caller may call this method again when the remote service state
+ // migrates to REMOTE_SERVICE_OK state if the error code returned via
+ // |callback| was retriable ones.
virtual void RegisterOriginForTrackingChanges(
const GURL& origin,
const fileapi::SyncStatusCallback& callback) = 0;
// Unregisters |origin| to track remote side changes for the |origin|.
// Upon completion, invokes |callback|.
+ // The caller may call this method again when the remote service state
+ // migrates to REMOTE_SERVICE_OK state if the error code returned via
+ // |callback| was retriable ones.
virtual void UnregisterOriginForTrackingChanges(
const GURL& origin,
const fileapi::SyncStatusCallback& callback) = 0;
« no previous file with comments | « chrome/browser/sync_file_system/drive_file_sync_util.cc ('k') | chrome/browser/sync_file_system/sync_event_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698