1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
// 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_
|