190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 52385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch#include "chrome/browser/sync_file_system/sync_status_code.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/logging.h" 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "third_party/leveldatabase/src/include/leveldb/db.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace sync_file_system { 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 127d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)const char* SyncStatusCodeToString(SyncStatusCode status) { 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) switch (status) { 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_STATUS_OK: 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "OK."; 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_STATUS_UNKNOWN: 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "Unknown sync status."; 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_STATUS_FAILED: 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "Failed."; 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // PlatformFile related errors. 225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // TODO(nhiroki): add stringize function for File::Error into base/. 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_FILE_ERROR_FAILED: 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "File operation failed."; 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_FILE_ERROR_IN_USE: 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "File currently in use."; 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_FILE_ERROR_EXISTS: 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "File already exists."; 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_FILE_ERROR_NOT_FOUND: 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "File not found."; 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_FILE_ERROR_ACCESS_DENIED: 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "File access denied."; 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_FILE_ERROR_TOO_MANY_OPENED: 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "Too many files open."; 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_FILE_ERROR_NO_MEMORY: 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "Out of memory."; 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_FILE_ERROR_NO_SPACE: 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "No space left on disk."; 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_FILE_ERROR_NOT_A_DIRECTORY: 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "Not a directory."; 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_FILE_ERROR_INVALID_OPERATION: 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "Invalid file operation."; 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_FILE_ERROR_SECURITY: 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "Security error."; 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_FILE_ERROR_ABORT: 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "File operation aborted."; 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_FILE_ERROR_NOT_A_FILE: 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "Not a file."; 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_FILE_ERROR_NOT_EMPTY: 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "File not empty."; 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_FILE_ERROR_INVALID_URL: 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "Invalid URL."; 533551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) case SYNC_FILE_ERROR_IO: 543551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) return "OS or hardware error."; 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Database related errors. 572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_DATABASE_ERROR_NOT_FOUND: 582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "Database not found."; 592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_DATABASE_ERROR_CORRUPTION: 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "Database was corrupted."; 612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_DATABASE_ERROR_IO_ERROR: 622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "Database I/O error."; 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_DATABASE_ERROR_FAILED: 642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "Database operation failed."; 652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Sync specific status code. 672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_STATUS_FILE_BUSY: 682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "Sync: file is busy."; 692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_STATUS_HAS_CONFLICT: 702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "Sync: file has conflict."; 712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_STATUS_NO_CONFLICT: 722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "Sync: file has no conflict."; 732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_STATUS_ABORT: 742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "Sync: operation aborted."; 752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_STATUS_NO_CHANGE_TO_SYNC: 762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "Sync: no change to synchronize."; 77d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) case SYNC_STATUS_SERVICE_TEMPORARILY_UNAVAILABLE: 78d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) return "Sync: service is temporarily unavailable."; 792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_STATUS_NETWORK_ERROR: 802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "Sync: network error."; 812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_STATUS_AUTHENTICATION_FAILED: 822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "Sync: authentication failed."; 83b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) case SYNC_STATUS_UNKNOWN_ORIGIN: 84b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) return "Sync: unknown origin."; 852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_STATUS_NOT_MODIFIED: 862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "Sync: file not modified."; 872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case SYNC_STATUS_SYNC_DISABLED: 882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "Sync: sync is disabled."; 897d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) case SYNC_STATUS_ACCESS_FORBIDDEN: 907d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return "Sync: service access forbidden."; 91d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) case SYNC_STATUS_RETRY: 92d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) return "Sync: retry the operation."; 932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) NOTREACHED(); 952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return "Unknown error."; 962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SyncStatusCode LevelDBStatusToSyncStatusCode(const leveldb::Status& status) { 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (status.ok()) 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return SYNC_STATUS_OK; 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else if (status.IsNotFound()) 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return SYNC_DATABASE_ERROR_NOT_FOUND; 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else if (status.IsCorruption()) 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return SYNC_DATABASE_ERROR_CORRUPTION; 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else if (status.IsIOError()) 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return SYNC_DATABASE_ERROR_IO_ERROR; 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return SYNC_DATABASE_ERROR_FAILED; 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)SyncStatusCode FileErrorToSyncStatusCode( 1125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::File::Error file_error) { 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) switch (file_error) { 1145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) case base::File::FILE_OK: 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return SYNC_STATUS_OK; 1165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) case base::File::FILE_ERROR_FAILED: 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return SYNC_FILE_ERROR_FAILED; 1185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) case base::File::FILE_ERROR_IN_USE: 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return SYNC_FILE_ERROR_IN_USE; 1205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) case base::File::FILE_ERROR_EXISTS: 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return SYNC_FILE_ERROR_EXISTS; 1225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) case base::File::FILE_ERROR_NOT_FOUND: 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return SYNC_FILE_ERROR_NOT_FOUND; 1245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) case base::File::FILE_ERROR_ACCESS_DENIED: 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return SYNC_FILE_ERROR_ACCESS_DENIED; 1265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) case base::File::FILE_ERROR_TOO_MANY_OPENED: 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return SYNC_FILE_ERROR_TOO_MANY_OPENED; 1285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) case base::File::FILE_ERROR_NO_MEMORY: 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return SYNC_FILE_ERROR_NO_MEMORY; 1305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) case base::File::FILE_ERROR_NO_SPACE: 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return SYNC_FILE_ERROR_NO_SPACE; 1325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) case base::File::FILE_ERROR_NOT_A_DIRECTORY: 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return SYNC_FILE_ERROR_NOT_A_DIRECTORY; 1345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) case base::File::FILE_ERROR_INVALID_OPERATION: 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return SYNC_FILE_ERROR_INVALID_OPERATION; 1365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) case base::File::FILE_ERROR_SECURITY: 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return SYNC_FILE_ERROR_SECURITY; 1385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) case base::File::FILE_ERROR_ABORT: 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return SYNC_FILE_ERROR_ABORT; 1405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) case base::File::FILE_ERROR_NOT_A_FILE: 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return SYNC_FILE_ERROR_NOT_A_FILE; 1425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) case base::File::FILE_ERROR_NOT_EMPTY: 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return SYNC_FILE_ERROR_NOT_EMPTY; 1445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) case base::File::FILE_ERROR_INVALID_URL: 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return SYNC_FILE_ERROR_INVALID_URL; 1465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) case base::File::FILE_ERROR_IO: 1473551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) return SYNC_FILE_ERROR_IO; 1485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) case base::File::FILE_ERROR_MAX: 149a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) NOTREACHED(); 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return SYNC_FILE_ERROR_FAILED; 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 152a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) // Return the value as is, so the value converted by 1535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // SyncStatusCodeToFileError could be restored. 154a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) return static_cast<SyncStatusCode>(file_error); 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)base::File::Error SyncStatusCodeToFileError( 15858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) SyncStatusCode status) { 15958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) switch (status) { 16058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) case SYNC_STATUS_OK: 1615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_OK; 16258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) case SYNC_FILE_ERROR_FAILED: 1635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_FAILED; 16458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) case SYNC_FILE_ERROR_IN_USE: 1655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_IN_USE; 16658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) case SYNC_FILE_ERROR_EXISTS: 1675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_EXISTS; 16858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) case SYNC_FILE_ERROR_NOT_FOUND: 1695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_NOT_FOUND; 17058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) case SYNC_FILE_ERROR_ACCESS_DENIED: 1715d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_ACCESS_DENIED; 17258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) case SYNC_FILE_ERROR_TOO_MANY_OPENED: 1735d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_TOO_MANY_OPENED; 17458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) case SYNC_FILE_ERROR_NO_MEMORY: 1755d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_NO_MEMORY; 17658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) case SYNC_FILE_ERROR_NO_SPACE: 1775d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_NO_SPACE; 17858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) case SYNC_FILE_ERROR_NOT_A_DIRECTORY: 1795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_NOT_A_DIRECTORY; 18058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) case SYNC_FILE_ERROR_INVALID_OPERATION: 1815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_INVALID_OPERATION; 18258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) case SYNC_FILE_ERROR_SECURITY: 1835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_SECURITY; 18458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) case SYNC_FILE_ERROR_ABORT: 1855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_ABORT; 18658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) case SYNC_FILE_ERROR_NOT_A_FILE: 1875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_NOT_A_FILE; 18858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) case SYNC_FILE_ERROR_NOT_EMPTY: 1895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_NOT_EMPTY; 19058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) case SYNC_FILE_ERROR_INVALID_URL: 1915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_INVALID_URL; 19258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) case SYNC_FILE_ERROR_IO: 1935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_IO; 19458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) default: 195a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) // Return the value as is, so that caller may be able to 196a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) // restore the information. 1975d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return static_cast<base::File::Error>(status); 19858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) } 19958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} 20058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 2012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace sync_file_system 202