François Degros | bf7bb59 | 2019-07-12 09:49:52 +1000 | [diff] [blame] | 1 | // Copyright 2019 The Chromium OS 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 "cros-disks/error_logger.h" |
| 6 | |
| 7 | #include <type_traits> |
| 8 | |
| 9 | namespace cros_disks { |
| 10 | |
François Degros | 9214706 | 2020-07-12 15:25:55 +1000 | [diff] [blame] | 11 | #define CROS_DISKS_PRINT(X) \ |
| 12 | case X: \ |
| 13 | return out << #X; |
| 14 | |
François Degros | bf7bb59 | 2019-07-12 09:49:52 +1000 | [diff] [blame] | 15 | std::ostream& operator<<(std::ostream& out, const FormatErrorType error) { |
| 16 | switch (error) { |
François Degros | 9214706 | 2020-07-12 15:25:55 +1000 | [diff] [blame] | 17 | CROS_DISKS_PRINT(FORMAT_ERROR_NONE) |
| 18 | CROS_DISKS_PRINT(FORMAT_ERROR_UNKNOWN) |
| 19 | CROS_DISKS_PRINT(FORMAT_ERROR_INTERNAL) |
| 20 | CROS_DISKS_PRINT(FORMAT_ERROR_INVALID_DEVICE_PATH) |
| 21 | CROS_DISKS_PRINT(FORMAT_ERROR_DEVICE_BEING_FORMATTED) |
| 22 | CROS_DISKS_PRINT(FORMAT_ERROR_UNSUPPORTED_FILESYSTEM) |
| 23 | CROS_DISKS_PRINT(FORMAT_ERROR_FORMAT_PROGRAM_NOT_FOUND) |
| 24 | CROS_DISKS_PRINT(FORMAT_ERROR_FORMAT_PROGRAM_FAILED) |
| 25 | CROS_DISKS_PRINT(FORMAT_ERROR_DEVICE_NOT_ALLOWED) |
| 26 | CROS_DISKS_PRINT(FORMAT_ERROR_INVALID_OPTIONS) |
| 27 | CROS_DISKS_PRINT(FORMAT_ERROR_LONG_NAME) |
| 28 | CROS_DISKS_PRINT(FORMAT_ERROR_INVALID_CHARACTER) |
François Degros | bf7bb59 | 2019-07-12 09:49:52 +1000 | [diff] [blame] | 29 | } |
François Degros | 9214706 | 2020-07-12 15:25:55 +1000 | [diff] [blame] | 30 | return out << "FORMAT_ERROR_" |
| 31 | << static_cast<std::underlying_type_t<FormatErrorType>>(error); |
François Degros | bf7bb59 | 2019-07-12 09:49:52 +1000 | [diff] [blame] | 32 | } |
| 33 | |
| 34 | std::ostream& operator<<(std::ostream& out, const MountErrorType error) { |
| 35 | switch (error) { |
François Degros | 9214706 | 2020-07-12 15:25:55 +1000 | [diff] [blame] | 36 | CROS_DISKS_PRINT(MOUNT_ERROR_NONE) |
| 37 | CROS_DISKS_PRINT(MOUNT_ERROR_UNKNOWN) |
| 38 | CROS_DISKS_PRINT(MOUNT_ERROR_INTERNAL) |
| 39 | CROS_DISKS_PRINT(MOUNT_ERROR_INVALID_ARGUMENT) |
| 40 | CROS_DISKS_PRINT(MOUNT_ERROR_INVALID_PATH) |
| 41 | CROS_DISKS_PRINT(MOUNT_ERROR_PATH_ALREADY_MOUNTED) |
| 42 | CROS_DISKS_PRINT(MOUNT_ERROR_PATH_NOT_MOUNTED) |
| 43 | CROS_DISKS_PRINT(MOUNT_ERROR_DIRECTORY_CREATION_FAILED) |
| 44 | CROS_DISKS_PRINT(MOUNT_ERROR_INVALID_MOUNT_OPTIONS) |
| 45 | CROS_DISKS_PRINT(MOUNT_ERROR_INVALID_UNMOUNT_OPTIONS) |
| 46 | CROS_DISKS_PRINT(MOUNT_ERROR_INSUFFICIENT_PERMISSIONS) |
| 47 | CROS_DISKS_PRINT(MOUNT_ERROR_MOUNT_PROGRAM_NOT_FOUND) |
| 48 | CROS_DISKS_PRINT(MOUNT_ERROR_MOUNT_PROGRAM_FAILED) |
| 49 | CROS_DISKS_PRINT(MOUNT_ERROR_NEED_PASSWORD) |
| 50 | CROS_DISKS_PRINT(MOUNT_ERROR_INVALID_DEVICE_PATH) |
| 51 | CROS_DISKS_PRINT(MOUNT_ERROR_UNKNOWN_FILESYSTEM) |
| 52 | CROS_DISKS_PRINT(MOUNT_ERROR_UNSUPPORTED_FILESYSTEM) |
| 53 | CROS_DISKS_PRINT(MOUNT_ERROR_INVALID_ARCHIVE) |
| 54 | CROS_DISKS_PRINT(MOUNT_ERROR_UNSUPPORTED_ARCHIVE) |
François Degros | bf7bb59 | 2019-07-12 09:49:52 +1000 | [diff] [blame] | 55 | } |
François Degros | 9214706 | 2020-07-12 15:25:55 +1000 | [diff] [blame] | 56 | return out << "MOUNT_ERROR_" |
| 57 | << static_cast<std::underlying_type_t<MountErrorType>>(error); |
François Degros | bf7bb59 | 2019-07-12 09:49:52 +1000 | [diff] [blame] | 58 | } |
| 59 | |
Omid Tourzan | 73547ea | 2020-08-28 13:00:39 +1000 | [diff] [blame] | 60 | std::ostream& operator<<(std::ostream& out, const PartitionErrorType error) { |
| 61 | switch (error) { |
| 62 | CROS_DISKS_PRINT(PARTITION_ERROR_NONE) |
| 63 | CROS_DISKS_PRINT(PARTITION_ERROR_UNKNOWN) |
| 64 | CROS_DISKS_PRINT(PARTITION_ERROR_INTERNAL) |
| 65 | CROS_DISKS_PRINT(PARTITION_ERROR_INVALID_DEVICE_PATH) |
| 66 | CROS_DISKS_PRINT(PARTITION_ERROR_DEVICE_BEING_PARTITIONED) |
| 67 | CROS_DISKS_PRINT(PARTITION_ERROR_PROGRAM_NOT_FOUND) |
| 68 | CROS_DISKS_PRINT(PARTITION_ERROR_PROGRAM_FAILED) |
| 69 | CROS_DISKS_PRINT(PARTITION_ERROR_DEVICE_NOT_ALLOWED) |
| 70 | } |
| 71 | return out << "PARTITION_ERROR_" |
| 72 | << static_cast<std::underlying_type_t<PartitionErrorType>>(error); |
| 73 | } |
| 74 | |
François Degros | bf7bb59 | 2019-07-12 09:49:52 +1000 | [diff] [blame] | 75 | std::ostream& operator<<(std::ostream& out, const RenameErrorType error) { |
| 76 | switch (error) { |
François Degros | 9214706 | 2020-07-12 15:25:55 +1000 | [diff] [blame] | 77 | CROS_DISKS_PRINT(RENAME_ERROR_NONE) |
| 78 | CROS_DISKS_PRINT(RENAME_ERROR_UNKNOWN) |
| 79 | CROS_DISKS_PRINT(RENAME_ERROR_INTERNAL) |
| 80 | CROS_DISKS_PRINT(RENAME_ERROR_INVALID_DEVICE_PATH) |
| 81 | CROS_DISKS_PRINT(RENAME_ERROR_DEVICE_BEING_RENAMED) |
| 82 | CROS_DISKS_PRINT(RENAME_ERROR_UNSUPPORTED_FILESYSTEM) |
| 83 | CROS_DISKS_PRINT(RENAME_ERROR_RENAME_PROGRAM_NOT_FOUND) |
| 84 | CROS_DISKS_PRINT(RENAME_ERROR_RENAME_PROGRAM_FAILED) |
| 85 | CROS_DISKS_PRINT(RENAME_ERROR_DEVICE_NOT_ALLOWED) |
| 86 | CROS_DISKS_PRINT(RENAME_ERROR_LONG_NAME) |
| 87 | CROS_DISKS_PRINT(RENAME_ERROR_INVALID_CHARACTER) |
François Degros | bf7bb59 | 2019-07-12 09:49:52 +1000 | [diff] [blame] | 88 | } |
François Degros | 9214706 | 2020-07-12 15:25:55 +1000 | [diff] [blame] | 89 | return out << "RENAME_ERROR_" |
| 90 | << static_cast<std::underlying_type_t<RenameErrorType>>(error); |
François Degros | bf7bb59 | 2019-07-12 09:49:52 +1000 | [diff] [blame] | 91 | } |
| 92 | |
| 93 | } // namespace cros_disks |