1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file. 4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/browser/chromeos/drive/file_errors.h" 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "base/logging.h" 8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace drive { 10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)std::string FileErrorToString(FileError error) { 12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) switch (error) { 13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_OK: 14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return "FILE_ERROR_OK"; 15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_FAILED: 17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return "FILE_ERROR_FAILED"; 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_IN_USE: 20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return "FILE_ERROR_IN_USE"; 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_EXISTS: 23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return "FILE_ERROR_EXISTS"; 24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_NOT_FOUND: 26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return "FILE_ERROR_NOT_FOUND"; 27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_ACCESS_DENIED: 29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return "FILE_ERROR_ACCESS_DENIED"; 30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_TOO_MANY_OPENED: 32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return "FILE_ERROR_TOO_MANY_OPENED"; 33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_NO_MEMORY: 35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return "FILE_ERROR_NO_MEMORY"; 36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 37a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) case FILE_ERROR_NO_SERVER_SPACE: 38a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) return "FILE_ERROR_NO_SERVER_SPACE"; 39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_NOT_A_DIRECTORY: 41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return "FILE_ERROR_NOT_A_DIRECTORY"; 42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_INVALID_OPERATION: 44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return "FILE_ERROR_INVALID_OPERATION"; 45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_SECURITY: 47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return "FILE_ERROR_SECURITY"; 48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 49c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_ABORT: 50c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return "FILE_ERROR_ABORT"; 51c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 52c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_NOT_A_FILE: 53c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return "FILE_ERROR_NOT_A_FILE"; 54c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 55c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_NOT_EMPTY: 56c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return "FILE_ERROR_NOT_EMPTY"; 57c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 58c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_INVALID_URL: 59c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return "FILE_ERROR_INVALID_URL"; 60c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 61c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_NO_CONNECTION: 62c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return "FILE_ERROR_NO_CONNECTION"; 63a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 64a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) case FILE_ERROR_NO_LOCAL_SPACE: 65a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) return "FILE_ERROR_NO_LOCAL_SPACE"; 66ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 67ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch case FILE_ERROR_SERVICE_UNAVAILABLE: 68ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch return "FILE_ERROR_SERVICE_UNAVAILABLE"; 69c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 70c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 71c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) NOTREACHED(); 72c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return ""; 73c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 74c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 755d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)base::File::Error FileErrorToBaseFileError(FileError error) { 76c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) switch (error) { 77c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_OK: 785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_OK; 79c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 80c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_FAILED: 815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_FAILED; 82c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 83c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_IN_USE: 845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_IN_USE; 85c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 86c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_EXISTS: 875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_EXISTS; 88c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 89c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_NOT_FOUND: 905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_NOT_FOUND; 91c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 92c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_ACCESS_DENIED: 935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_ACCESS_DENIED; 94c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 95c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_TOO_MANY_OPENED: 965d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_TOO_MANY_OPENED; 97c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 98c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_NO_MEMORY: 995d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_NO_MEMORY; 100c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 101a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) case FILE_ERROR_NO_SERVER_SPACE: 1025d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_NO_SPACE; 103c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 104c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_NOT_A_DIRECTORY: 1055d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_NOT_A_DIRECTORY; 106c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 107c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_INVALID_OPERATION: 1085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_INVALID_OPERATION; 109c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 110c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_SECURITY: 1115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_SECURITY; 112c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 113c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_ABORT: 1145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_ABORT; 115c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 116c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_NOT_A_FILE: 1175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_NOT_A_FILE; 118c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 119c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_NOT_EMPTY: 1205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_NOT_EMPTY; 121c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 122c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_INVALID_URL: 1235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_INVALID_URL; 124c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 125c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case FILE_ERROR_NO_CONNECTION: 1265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_FAILED; 127a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 128a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) case FILE_ERROR_NO_LOCAL_SPACE: 1295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_FAILED; 130ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 131ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch case FILE_ERROR_SERVICE_UNAVAILABLE: 1325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_FAILED; 133c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 134c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 135c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) NOTREACHED(); 1365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return base::File::FILE_ERROR_FAILED; 137c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 138c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 139a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)FileError GDataToFileError(google_apis::GDataErrorCode status) { 140a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) switch (status) { 141a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) case google_apis::HTTP_SUCCESS: 142a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) case google_apis::HTTP_CREATED: 143a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) case google_apis::HTTP_NO_CONTENT: 144a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) return FILE_ERROR_OK; 145a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) case google_apis::HTTP_UNAUTHORIZED: 146a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) case google_apis::HTTP_FORBIDDEN: 147a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) return FILE_ERROR_ACCESS_DENIED; 148a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) case google_apis::HTTP_NOT_FOUND: 149f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) case google_apis::HTTP_GONE: 150a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) return FILE_ERROR_NOT_FOUND; 151ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch case google_apis::HTTP_INTERNAL_SERVER_ERROR: 152ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch case google_apis::HTTP_SERVICE_UNAVAILABLE: 153ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch return FILE_ERROR_SERVICE_UNAVAILABLE; 154a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) case google_apis::HTTP_NOT_IMPLEMENTED: 155a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) return FILE_ERROR_INVALID_OPERATION; 156a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) case google_apis::GDATA_CANCELLED: 157a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) return FILE_ERROR_ABORT; 158a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) case google_apis::GDATA_NO_CONNECTION: 159a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) return FILE_ERROR_NO_CONNECTION; 160a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) case google_apis::GDATA_NO_SPACE: 161a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) return FILE_ERROR_NO_SERVER_SPACE; 162a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) default: 163a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) return FILE_ERROR_FAILED; 164a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) } 165a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)} 166a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 167c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} // namespace drive 168