Home | History | Annotate | Download | only in drive
      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 "chrome/browser/chromeos/drive/file_errors.h"
      6 
      7 #include "base/logging.h"
      8 
      9 namespace drive {
     10 
     11 std::string FileErrorToString(FileError error) {
     12   switch (error) {
     13     case FILE_ERROR_OK:
     14       return "FILE_ERROR_OK";
     15 
     16     case FILE_ERROR_FAILED:
     17       return "FILE_ERROR_FAILED";
     18 
     19     case FILE_ERROR_IN_USE:
     20       return "FILE_ERROR_IN_USE";
     21 
     22     case FILE_ERROR_EXISTS:
     23       return "FILE_ERROR_EXISTS";
     24 
     25     case FILE_ERROR_NOT_FOUND:
     26       return "FILE_ERROR_NOT_FOUND";
     27 
     28     case FILE_ERROR_ACCESS_DENIED:
     29       return "FILE_ERROR_ACCESS_DENIED";
     30 
     31     case FILE_ERROR_TOO_MANY_OPENED:
     32       return "FILE_ERROR_TOO_MANY_OPENED";
     33 
     34     case FILE_ERROR_NO_MEMORY:
     35       return "FILE_ERROR_NO_MEMORY";
     36 
     37     case FILE_ERROR_NO_SERVER_SPACE:
     38       return "FILE_ERROR_NO_SERVER_SPACE";
     39 
     40     case FILE_ERROR_NOT_A_DIRECTORY:
     41       return "FILE_ERROR_NOT_A_DIRECTORY";
     42 
     43     case FILE_ERROR_INVALID_OPERATION:
     44       return "FILE_ERROR_INVALID_OPERATION";
     45 
     46     case FILE_ERROR_SECURITY:
     47       return "FILE_ERROR_SECURITY";
     48 
     49     case FILE_ERROR_ABORT:
     50       return "FILE_ERROR_ABORT";
     51 
     52     case FILE_ERROR_NOT_A_FILE:
     53       return "FILE_ERROR_NOT_A_FILE";
     54 
     55     case FILE_ERROR_NOT_EMPTY:
     56       return "FILE_ERROR_NOT_EMPTY";
     57 
     58     case FILE_ERROR_INVALID_URL:
     59       return "FILE_ERROR_INVALID_URL";
     60 
     61     case FILE_ERROR_NO_CONNECTION:
     62       return "FILE_ERROR_NO_CONNECTION";
     63 
     64     case FILE_ERROR_NO_LOCAL_SPACE:
     65       return "FILE_ERROR_NO_LOCAL_SPACE";
     66 
     67     case FILE_ERROR_SERVICE_UNAVAILABLE:
     68       return "FILE_ERROR_SERVICE_UNAVAILABLE";
     69   }
     70 
     71   NOTREACHED();
     72   return "";
     73 }
     74 
     75 base::PlatformFileError FileErrorToPlatformError(FileError error) {
     76   switch (error) {
     77     case FILE_ERROR_OK:
     78       return base::PLATFORM_FILE_OK;
     79 
     80     case FILE_ERROR_FAILED:
     81       return base::PLATFORM_FILE_ERROR_FAILED;
     82 
     83     case FILE_ERROR_IN_USE:
     84       return base::PLATFORM_FILE_ERROR_IN_USE;
     85 
     86     case FILE_ERROR_EXISTS:
     87       return base::PLATFORM_FILE_ERROR_EXISTS;
     88 
     89     case FILE_ERROR_NOT_FOUND:
     90       return base::PLATFORM_FILE_ERROR_NOT_FOUND;
     91 
     92     case FILE_ERROR_ACCESS_DENIED:
     93       return base::PLATFORM_FILE_ERROR_ACCESS_DENIED;
     94 
     95     case FILE_ERROR_TOO_MANY_OPENED:
     96       return base::PLATFORM_FILE_ERROR_TOO_MANY_OPENED;
     97 
     98     case FILE_ERROR_NO_MEMORY:
     99       return base::PLATFORM_FILE_ERROR_NO_MEMORY;
    100 
    101     case FILE_ERROR_NO_SERVER_SPACE:
    102       return base::PLATFORM_FILE_ERROR_NO_SPACE;
    103 
    104     case FILE_ERROR_NOT_A_DIRECTORY:
    105       return base::PLATFORM_FILE_ERROR_NOT_A_DIRECTORY;
    106 
    107     case FILE_ERROR_INVALID_OPERATION:
    108       return base::PLATFORM_FILE_ERROR_INVALID_OPERATION;
    109 
    110     case FILE_ERROR_SECURITY:
    111       return base::PLATFORM_FILE_ERROR_SECURITY;
    112 
    113     case FILE_ERROR_ABORT:
    114       return base::PLATFORM_FILE_ERROR_ABORT;
    115 
    116     case FILE_ERROR_NOT_A_FILE:
    117       return base::PLATFORM_FILE_ERROR_NOT_A_FILE;
    118 
    119     case FILE_ERROR_NOT_EMPTY:
    120       return base::PLATFORM_FILE_ERROR_NOT_EMPTY;
    121 
    122     case FILE_ERROR_INVALID_URL:
    123       return base::PLATFORM_FILE_ERROR_INVALID_URL;
    124 
    125     case FILE_ERROR_NO_CONNECTION:
    126       return base::PLATFORM_FILE_ERROR_FAILED;
    127 
    128     case FILE_ERROR_NO_LOCAL_SPACE:
    129       return base::PLATFORM_FILE_ERROR_FAILED;
    130 
    131     case FILE_ERROR_SERVICE_UNAVAILABLE:
    132       return base::PLATFORM_FILE_ERROR_FAILED;
    133   }
    134 
    135   NOTREACHED();
    136   return base::PLATFORM_FILE_ERROR_FAILED;
    137 }
    138 
    139 FileError GDataToFileError(google_apis::GDataErrorCode status) {
    140   switch (status) {
    141     case google_apis::HTTP_SUCCESS:
    142     case google_apis::HTTP_CREATED:
    143     case google_apis::HTTP_NO_CONTENT:
    144       return FILE_ERROR_OK;
    145     case google_apis::HTTP_UNAUTHORIZED:
    146     case google_apis::HTTP_FORBIDDEN:
    147       return FILE_ERROR_ACCESS_DENIED;
    148     case google_apis::HTTP_NOT_FOUND:
    149       return FILE_ERROR_NOT_FOUND;
    150     case google_apis::HTTP_INTERNAL_SERVER_ERROR:
    151     case google_apis::HTTP_SERVICE_UNAVAILABLE:
    152       return FILE_ERROR_SERVICE_UNAVAILABLE;
    153     case google_apis::HTTP_NOT_IMPLEMENTED:
    154       return FILE_ERROR_INVALID_OPERATION;
    155     case google_apis::GDATA_CANCELLED:
    156       return FILE_ERROR_ABORT;
    157     case google_apis::GDATA_NO_CONNECTION:
    158       return FILE_ERROR_NO_CONNECTION;
    159     case google_apis::GDATA_NO_SPACE:
    160       return FILE_ERROR_NO_SERVER_SPACE;
    161     default:
    162       return FILE_ERROR_FAILED;
    163   }
    164 }
    165 
    166 }  // namespace drive
    167