• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
3 // found in the LICENSE file.
4 #ifndef SYNC_PROTOCOL_SYNC_PROTOCOL_ERROR_H_
5 #define SYNC_PROTOCOL_SYNC_PROTOCOL_ERROR_H_
6 
7 #include <string>
8 
9 #include "base/values.h"
10 #include "sync/base/sync_export.h"
11 #include "sync/internal_api/public/base/model_type.h"
12 
13 namespace syncer{
14 
15 enum SyncProtocolErrorType {
16   // Success case.
17   SYNC_SUCCESS,
18 
19   // Birthday does not match that of the server.
20   NOT_MY_BIRTHDAY,
21 
22   // Server is busy. Try later.
23   THROTTLED,
24 
25   // Clear user data is being currently executed by the server.
26   CLEAR_PENDING,
27 
28   // Server cannot service the request now.
29   TRANSIENT_ERROR,
30 
31   // Server does not wish the client to retry any more until the action has
32   // been taken.
33   NON_RETRIABLE_ERROR,
34 
35   // Indicates the datatypes have been migrated and the client should resync
36   // them to get the latest progress markers.
37   MIGRATION_DONE,
38 
39   // Invalid Credential.
40   INVALID_CREDENTIAL,
41 
42   // An administrator disabled sync for this domain.
43   DISABLED_BY_ADMIN,
44 
45   // Client told to stop syncing this device and roll back local data.
46   USER_ROLLBACK,
47 
48   // The default value.
49   UNKNOWN_ERROR
50 };
51 
52 enum ClientAction {
53   // Upgrade the client to latest version.
54   UPGRADE_CLIENT,
55 
56   // Clear user data and setup sync again.
57   CLEAR_USER_DATA_AND_RESYNC,
58 
59   // Set the bit on the account to enable sync.
60   ENABLE_SYNC_ON_ACCOUNT,
61 
62   // Stop sync and restart sync.
63   STOP_AND_RESTART_SYNC,
64 
65   // Wipe this client of any sync data.
66   DISABLE_SYNC_ON_CLIENT,
67 
68   // Account is disabled by admin. Stop sync, clear prefs and show message on
69   // settings page that account is disabled.
70   STOP_SYNC_FOR_DISABLED_ACCOUNT,
71 
72   // Disable sync and roll back local model to pre-sync state.
73   DISABLE_SYNC_AND_ROLLBACK,
74 
75   // Generated by SyncRollbackManager to notify ProfileSyncService that
76   // rollback is finished.
77   ROLLBACK_DONE,
78 
79   // The default. No action.
80   UNKNOWN_ACTION
81 };
82 
83 struct SYNC_EXPORT SyncProtocolError {
84   SyncProtocolErrorType error_type;
85   std::string error_description;
86   std::string url;
87   ClientAction action;
88   ModelTypeSet error_data_types;
89   SyncProtocolError();
90   ~SyncProtocolError();
91   base::DictionaryValue* ToValue() const;
92 };
93 
94 SYNC_EXPORT const char* GetSyncErrorTypeString(SyncProtocolErrorType type);
95 SYNC_EXPORT const char* GetClientActionString(ClientAction action);
96 }  // namespace syncer
97 #endif  // SYNC_PROTOCOL_SYNC_PROTOCOL_ERROR_H_
98 
99