1// Copyright (c) 2013 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_SYNC_SERVICE_STATE_H_
6#define CHROME_BROWSER_SYNC_FILE_SYSTEM_SYNC_SERVICE_STATE_H_
7
8namespace sync_file_system {
9
10// This enum is translated into syncFileSystem.ServiceStatus
11// (defined in chrome/common/extensions/api/sync_file_system.idl).
12// When you update this enum please consider updating the other enum in IDL.
13enum SyncServiceState {
14  // The sync service is up and running, or has not seen any errors yet.
15  // The consumer of this service can make new requests while the
16  // service is in this state.
17  SYNC_SERVICE_RUNNING,
18
19  // The sync service is not synchronizing files because the remote service
20  // needs to be authenticated by the user to proceed.
21  // This state may be automatically resolved when the underlying
22  // network condition or service condition changes.
23  // The consumer of this service can still make new requests but
24  // they may fail (with recoverable error code).
25  SYNC_SERVICE_AUTHENTICATION_REQUIRED,
26
27  // The sync service is not synchronizing files because the remote service
28  // is (temporarily) unavailable due to some recoverable errors, e.g.
29  // network is offline, the remote service is down or not
30  // reachable etc. More details should be given by |description| parameter
31  // in OnSyncStateUpdated (which could contain service-specific details).
32  SYNC_SERVICE_TEMPORARY_UNAVAILABLE,
33
34  // The sync service is disabled by configuration change or due to some
35  // unrecoverable errors, e.g. local database corruption.
36  // Any new requests will immediately fail when the service is in
37  // this state.
38  SYNC_SERVICE_DISABLED,
39};
40
41}  // namespace sync_file_system
42
43#endif  // CHROME_BROWSER_SYNC_FILE_SYSTEM_SYNC_SERVICE_STATE_H_
44