Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / sync / internal_api / public / util / syncer_error.cc
1 // Copyright (c) 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
5 #include "sync/internal_api/public/util/syncer_error.h"
6
7 #include "base/logging.h"
8
9 namespace syncer {
10
11 #define ENUM_CASE(x) case x: return #x; break;
12 const char* GetSyncerErrorString(SyncerError value) {
13   switch (value) {
14     ENUM_CASE(UNSET);
15     ENUM_CASE(CANNOT_DO_WORK);
16     ENUM_CASE(NETWORK_CONNECTION_UNAVAILABLE);
17     ENUM_CASE(NETWORK_IO_ERROR);
18     ENUM_CASE(SYNC_SERVER_ERROR);
19     ENUM_CASE(SYNC_AUTH_ERROR);
20     ENUM_CASE(SERVER_RETURN_INVALID_CREDENTIAL);
21     ENUM_CASE(SERVER_RETURN_UNKNOWN_ERROR);
22     ENUM_CASE(SERVER_RETURN_THROTTLED);
23     ENUM_CASE(SERVER_RETURN_TRANSIENT_ERROR);
24     ENUM_CASE(SERVER_RETURN_MIGRATION_DONE);
25     ENUM_CASE(SERVER_RETURN_CLEAR_PENDING);
26     ENUM_CASE(SERVER_RETURN_NOT_MY_BIRTHDAY);
27     ENUM_CASE(SERVER_RETURN_CONFLICT);
28     ENUM_CASE(SERVER_RESPONSE_VALIDATION_FAILED);
29     ENUM_CASE(SERVER_RETURN_DISABLED_BY_ADMIN);
30     ENUM_CASE(SERVER_RETURN_USER_ROLLBACK);
31     ENUM_CASE(SERVER_MORE_TO_DOWNLOAD);
32     ENUM_CASE(DATATYPE_TRIGGERED_RETRY);
33     ENUM_CASE(SYNCER_OK);
34   }
35   NOTREACHED();
36   return "INVALID";
37 }
38 #undef ENUM_CASE
39
40 bool SyncerErrorIsError(SyncerError error) {
41   return error != UNSET
42       && error != SYNCER_OK
43       && error != SERVER_MORE_TO_DOWNLOAD;
44 }
45
46 }  // namespace syncer