| // Copyright 2012 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| #ifndef COMPONENTS_SYNC_ENGINE_SYNC_PROTOCOL_ERROR_H_ |
| #define COMPONENTS_SYNC_ENGINE_SYNC_PROTOCOL_ERROR_H_ |
| |
| #include <memory> |
| #include <string> |
| |
| #include "components/sync/base/data_type.h" |
| |
| namespace syncer { |
| |
| enum SyncProtocolErrorType { |
| // Success case. |
| SYNC_SUCCESS, |
| |
| // Birthday does not match that of the server. |
| NOT_MY_BIRTHDAY, |
| |
| // Server is busy. Try later. |
| THROTTLED, |
| |
| // Server cannot service the request now. |
| TRANSIENT_ERROR, |
| |
| // Indicates the datatypes have been migrated and the client should resync |
| // them to get the latest progress markers. |
| MIGRATION_DONE, |
| |
| // An administrator disabled sync for this domain. |
| DISABLED_BY_ADMIN, |
| |
| // Some of servers are busy. Try later with busy servers. |
| PARTIAL_FAILURE, |
| |
| // Returned when server detects that this client's data is obsolete. Client |
| // should reset local data and restart syncing. |
| CLIENT_DATA_OBSOLETE, |
| |
| // Returned when the server detects that the encryption state (Nigori, |
| // keystore keys) has been reset/overridden, which means the local |
| // Nigori-related state is obsolete and should be cleared. |
| ENCRYPTION_OBSOLETE, |
| |
| // The default value. |
| UNKNOWN_ERROR, |
| |
| // Below are commit specific values (corresponds to |
| // CommitResponse::ResponseType). |
| // At least one of the entities had conflict. |
| CONFLICT, |
| |
| // Server reports that the request was malformed. |
| INVALID_MESSAGE |
| }; |
| |
| enum ClientAction { |
| // Upgrade the client to latest version. |
| UPGRADE_CLIENT, |
| |
| // Wipe this client of any sync data. |
| DISABLE_SYNC_ON_CLIENT, |
| |
| // Account is disabled by admin. Stop sync, clear prefs and show message on |
| // settings page that account is disabled. |
| STOP_SYNC_FOR_DISABLED_ACCOUNT, |
| |
| // Generated in response to CLIENT_DATA_OBSOLETE error. SyncServiceImpl |
| // should stop sync engine, delete the data and restart sync engine. |
| RESET_LOCAL_SYNC_DATA, |
| |
| // The default. No action. |
| UNKNOWN_ACTION |
| }; |
| |
| struct SyncProtocolError { |
| SyncProtocolErrorType error_type = UNKNOWN_ERROR; |
| std::string error_description; |
| ClientAction action = UNKNOWN_ACTION; |
| DataTypeSet error_data_types; |
| }; |
| |
| const char* GetSyncErrorTypeString(SyncProtocolErrorType type); |
| const char* GetClientActionString(ClientAction action); |
| |
| } // namespace syncer |
| |
| #endif // COMPONENTS_SYNC_ENGINE_SYNC_PROTOCOL_ERROR_H_ |