| // 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 "net/base/net_errors.h" | |
| #include "base/basictypes.h" | |
| #include "base/metrics/histogram.h" | |
| #include "base/stringize_macros.h" | |
| namespace { | |
| // Get all valid error codes into an array as positive numbers, for use in the | |
| // |GetAllErrorCodesForUma| function below. | |
| #define NET_ERROR(label, value) -(value), | |
| const int kAllErrorCodes[] = { | |
| #include "net/base/net_error_list.h" | |
| }; | |
| #undef NET_ERROR | |
| } // namespace | |
| namespace net { | |
| const char kErrorDomain[] = "net"; | |
| const char* ErrorToString(int error) { | |
| if (error == 0) | |
| return "net::OK"; | |
| switch (error) { | |
| #define NET_ERROR(label, value) \ | |
| case ERR_ ## label: \ | |
| return "net::" STRINGIZE_NO_EXPANSION(ERR_ ## label); | |
| #include "net/base/net_error_list.h" | |
| #undef NET_ERROR | |
| default: | |
| return "net::<unknown>"; | |
| } | |
| } | |
| std::vector<int> GetAllErrorCodesForUma() { | |
| return base::CustomHistogram::ArrayToCustomRanges( | |
| kAllErrorCodes, arraysize(kAllErrorCodes)); | |
| } | |
| Error PlatformFileErrorToNetError( | |
| base::PlatformFileError file_error) { | |
| switch (file_error) { | |
| case base::PLATFORM_FILE_OK: | |
| return net::OK; | |
| case base::PLATFORM_FILE_ERROR_ACCESS_DENIED: | |
| return net::ERR_ACCESS_DENIED; | |
| case base::PLATFORM_FILE_ERROR_INVALID_URL: | |
| return net::ERR_INVALID_URL; | |
| case base::PLATFORM_FILE_ERROR_NOT_FOUND: | |
| return net::ERR_FILE_NOT_FOUND; | |
| default: | |
| return net::ERR_FAILED; | |
| } | |
| } | |
| } // namespace net |