blob: 57ffef94a2b2e8d862dc7da1da21f65dd4102766 [file] [log] [blame]
// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_DRIVE_FILE_ERRORS_H_
#define COMPONENTS_DRIVE_FILE_ERRORS_H_
#include "base/files/file.h"
#include "components/drive/drive_export.h"
#include "google_apis/common/api_error_codes.h"
namespace drive {
// These values are persisted to UMA histograms (see UMA enum DriveFileError).
// The histogram values are positive (1=OK, 2=FAILED, 3=IN_USE, etc).
// Entries should not be renumbered and numeric values should never be reused.
//
// Consider using `IsFileErrorOk` to check for successful operations, as it
// includes both `FILE_ERROR_OK` and `FILE_ERROR_OK_WITH_MORE_RESULTS`.
enum FileError {
FILE_ERROR_OK = 0,
FILE_ERROR_FAILED = -1,
FILE_ERROR_IN_USE = -2,
FILE_ERROR_EXISTS = -3,
FILE_ERROR_NOT_FOUND = -4,
FILE_ERROR_ACCESS_DENIED = -5,
FILE_ERROR_TOO_MANY_OPENED = -6,
FILE_ERROR_NO_MEMORY = -7,
FILE_ERROR_NO_SERVER_SPACE = -8,
FILE_ERROR_NOT_A_DIRECTORY = -9,
FILE_ERROR_INVALID_OPERATION = -10,
FILE_ERROR_SECURITY = -11,
FILE_ERROR_ABORT = -12,
FILE_ERROR_NOT_A_FILE = -13,
FILE_ERROR_NOT_EMPTY = -14,
FILE_ERROR_INVALID_URL = -15,
FILE_ERROR_NO_CONNECTION = -16,
FILE_ERROR_NO_LOCAL_SPACE = -17,
FILE_ERROR_SERVICE_UNAVAILABLE = -18,
FILE_ERROR_OK_WITH_MORE_RESULTS = -19,
// Put new entries here and adjust FILE_ERROR_MAX.
FILE_ERROR_MAX = FILE_ERROR_OK_WITH_MORE_RESULTS,
};
COMPONENTS_DRIVE_EXPORT
std::ostream& operator<<(std::ostream& out, FileError error);
// Returns whether a `FileError` represents a successful operation.
COMPONENTS_DRIVE_EXPORT
bool IsFileErrorOk(FileError error);
// Returns a string representation of FileError.
COMPONENTS_DRIVE_EXPORT
std::string FileErrorToString(FileError error);
// Returns a base::File::Error that corresponds to the FileError provided.
COMPONENTS_DRIVE_EXPORT
base::File::Error FileErrorToBaseFileError(FileError error);
// Converts GData error code into Drive file error code.
COMPONENTS_DRIVE_EXPORT
FileError GDataToFileError(google_apis::ApiErrorCode status);
} // namespace drive
#endif // COMPONENTS_DRIVE_FILE_ERRORS_H_