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.
5 #ifndef SYNC_INTERNAL_API_PUBLIC_UTIL_SYNCER_ERROR_H_
6 #define SYNC_INTERNAL_API_PUBLIC_UTIL_SYNCER_ERROR_H_
8 #include "sync/base/sync_export.h"
12 // This enum describes all the ways a SyncerCommand can fail.
14 // SyncerCommands do many different things, but they share a common function
15 // signature. This enum, the return value for all SyncerCommands, must be able
16 // to describe any possible failure for all SyncerComand.
18 // For convenience, functions which are invoked only by SyncerCommands may also
19 // return a SyncerError. It saves us having to write a conversion function, and
20 // it makes refactoring easier.
21 enum SYNC_EXPORT_PRIVATE SyncerError {
22 UNSET = 0, // Default value.
23 CANNOT_DO_WORK, // A model worker could not process a work item.
25 NETWORK_CONNECTION_UNAVAILABLE, // Connectivity failure.
26 NETWORK_IO_ERROR, // Response buffer read error.
27 SYNC_SERVER_ERROR, // Non auth HTTP error.
28 SYNC_AUTH_ERROR, // HTTP auth error.
30 // Based on values returned by server. Most are defined in sync.proto.
31 SERVER_RETURN_INVALID_CREDENTIAL,
32 SERVER_RETURN_UNKNOWN_ERROR,
33 SERVER_RETURN_THROTTLED,
34 SERVER_RETURN_TRANSIENT_ERROR,
35 SERVER_RETURN_MIGRATION_DONE,
36 SERVER_RETURN_CLEAR_PENDING,
37 SERVER_RETURN_NOT_MY_BIRTHDAY,
38 SERVER_RETURN_CONFLICT,
39 SERVER_RESPONSE_VALIDATION_FAILED,
40 SERVER_RETURN_DISABLED_BY_ADMIN,
45 SYNC_EXPORT const char* GetSyncerErrorString(SyncerError);
47 // Helper to check that |error| is set to something (not UNSET) and is not
49 bool SyncerErrorIsError(SyncerError error);
53 #endif // SYNC_INTERNAL_API_PUBLIC_UTIL_SYNCER_ERROR_H_