Index: chrome/browser/sync/protocol/sync_protocol_error.h |
diff --git a/chrome/browser/sync/protocol/sync_protocol_error.h b/chrome/browser/sync/protocol/sync_protocol_error.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..fd7e1cb645801e8947cd5f292c5a115d6a0ea304 |
--- /dev/null |
+++ b/chrome/browser/sync/protocol/sync_protocol_error.h |
@@ -0,0 +1,76 @@ |
+// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+#ifndef CHROME_BROWSER_SYNC_PROTOCOL_SYNC_PROTOCOL_ERROR_H_ |
+#define CHROME_BROWSER_SYNC_PROTOCOL_SYNC_PROTOCOL_ERROR_H_ |
+#pragma once |
+ |
+#include <string> |
+ |
+#include "base/values.h" |
+ |
+namespace browser_sync{ |
+ |
+enum SyncProtocolErrorType { |
+ // Success case. |
+ SYNC_SUCCESS, |
+ |
+ // Birthday does not match that of the server. |
+ NOT_MY_BIRTHDAY, |
+ |
+ // Server is busy. Try later. |
+ THROTTLED, |
+ |
+ // Clear user data is being currently executed by the server. |
+ CLEAR_PENDING, |
+ |
+ // Server cannot service the request now. |
+ TRANSIENT_ERROR, |
+ |
+ // Server does not wish the client to retry any more until the action has |
+ // been taken. |
+ NON_RETRIABLE_ERROR, |
+ |
+ // Indicates the datatypes have been migrated and the client should resync |
+ // them to get the latest progress markers. |
+ MIGRATION_DONE, |
+ |
+ // Invalid Credential. |
+ INVALID_CREDENTIAL, |
+ |
+ // The default value. |
+ UNKNOWN_ERROR |
+}; |
+ |
+enum ClientAction { |
+ // Upgrade the client to latest version. |
+ UPGRADE_CLIENT, |
+ |
+ // Clear user data and setup sync again. |
+ CLEAR_USER_DATA_AND_RESYNC, |
+ |
+ // Set the bit on the account to enable sync. |
+ ENABLE_SYNC_ON_ACCOUNT, |
+ |
+ // Stop sync and restart sync. |
+ STOP_AND_RESTART_SYNC, |
+ |
+ // Wipe this client of any sync data. |
+ DISABLE_SYNC_ON_CLIENT, |
+ |
+ // The default. No action. |
+ UNKNOWN_ACTION |
+}; |
+ |
+struct SyncProtocolError { |
+ SyncProtocolErrorType error_type; |
+ std::string error_description; |
+ std::string url; |
+ ClientAction action; |
+ SyncProtocolError(); |
+ ~SyncProtocolError(); |
+ DictionaryValue* ToValue() const; |
+}; |
+} // namespace browser_sync |
+#endif // CHROME_BROWSER_SYNC_PROTOCOL_SYNC_PROTOCOL_ERROR_H_ |
+ |