summaryrefslogtreecommitdiffstats
path: root/webkit/fileapi
diff options
context:
space:
mode:
authornhiroki@chromium.org <nhiroki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-06 17:03:21 +0000
committernhiroki@chromium.org <nhiroki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-06 17:03:21 +0000
commit2e0edab8a891ce9cdc3228d4e31a691563fd0828 (patch)
tree844aab03ba7c251c9fa3c4d90aaa7a09f405cc42 /webkit/fileapi
parent9f84e378860107f28ab0c2e5fed619d31d4fef81 (diff)
downloadchromium_src-2e0edab8a891ce9cdc3228d4e31a691563fd0828.zip
chromium_src-2e0edab8a891ce9cdc3228d4e31a691563fd0828.tar.gz
chromium_src-2e0edab8a891ce9cdc3228d4e31a691563fd0828.tar.bz2
Add conversion function from leveldb::Status to fileapi::SyncStatusCode
BUG=152127 TEST=content_unittests Review URL: https://chromiumcodereview.appspot.com/11026064 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@160577 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/fileapi')
-rw-r--r--webkit/fileapi/syncable/sync_status_code.cc24
-rw-r--r--webkit/fileapi/syncable/sync_status_code.h7
-rw-r--r--webkit/fileapi/webkit_fileapi.gypi1
3 files changed, 32 insertions, 0 deletions
diff --git a/webkit/fileapi/syncable/sync_status_code.cc b/webkit/fileapi/syncable/sync_status_code.cc
new file mode 100644
index 0000000..541f315
--- /dev/null
+++ b/webkit/fileapi/syncable/sync_status_code.cc
@@ -0,0 +1,24 @@
+// Copyright (c) 2012 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.
+
+#include "webkit/fileapi/syncable/sync_status_code.h"
+
+#include "third_party/leveldatabase/src/include/leveldb/db.h"
+
+namespace fileapi {
+
+SyncStatusCode LevelDBStatusToSyncStatusCode(leveldb::Status status) {
+ if (status.ok())
+ return SYNC_STATUS_OK;
+ else if (status.IsNotFound())
+ return SYNC_DATABASE_ERROR_NOT_FOUND;
+ else if (status.IsCorruption())
+ return SYNC_DATABASE_ERROR_CORRUPTION;
+ else if (status.IsIOError())
+ return SYNC_DATABASE_ERROR_IO_ERROR;
+ else
+ return SYNC_DATABASE_ERROR_UNKNOWN;
+}
+
+} // namespace fileapi
diff --git a/webkit/fileapi/syncable/sync_status_code.h b/webkit/fileapi/syncable/sync_status_code.h
index 1bfba01..46d3d04 100644
--- a/webkit/fileapi/syncable/sync_status_code.h
+++ b/webkit/fileapi/syncable/sync_status_code.h
@@ -5,6 +5,10 @@
#ifndef WEBKIT_FILEAPI_SYNCABLE_SYNC_STATUS_CODE_H_
#define WEBKIT_FILEAPI_SYNCABLE_SYNC_STATUS_CODE_H_
+namespace leveldb {
+class Status;
+}
+
namespace fileapi {
enum SyncStatusCode {
@@ -31,8 +35,11 @@ enum SyncStatusCode {
SYNC_DATABASE_ERROR_NOT_FOUND = -16,
SYNC_DATABASE_ERROR_CORRUPTION = -17,
SYNC_DATABASE_ERROR_IO_ERROR = -18,
+ SYNC_DATABASE_ERROR_UNKNOWN = -19,
};
+SyncStatusCode LevelDBStatusToSyncStatusCode(leveldb::Status status);
+
} // namespace fileapi
#endif // WEBKIT_FILEAPI_SYNCABLE_SYNC_STATUS_CODE_H_
diff --git a/webkit/fileapi/webkit_fileapi.gypi b/webkit/fileapi/webkit_fileapi.gypi
index 94f2352..65d5793 100644
--- a/webkit/fileapi/webkit_fileapi.gypi
+++ b/webkit/fileapi/webkit_fileapi.gypi
@@ -98,6 +98,7 @@
'syncable/local_file_change_tracker.h',
'syncable/local_file_sync_status.cc',
'syncable/local_file_sync_status.h',
+ 'syncable/sync_status_code.cc',
'syncable/sync_status_code.h',
'syncable/syncable_file_system_util.cc',
'syncable/syncable_file_system_util.h',