1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
|
// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "printing/printer_status.h"
#include <algorithm>
#include <iterator>
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
namespace printing {
PrinterStatus::PrinterStatus() = default;
PrinterStatus::PrinterStatus(const PrinterStatus& other) = default;
PrinterStatus::~PrinterStatus() = default;
std::string_view PrinterStatus::PrinterReason::ReasonName() const {
switch (reason) {
case Reason::kUnknownReason:
return "unknown";
case Reason::kNone:
return "none";
case Reason::kMediaNeeded:
return "media-needed";
case Reason::kMediaJam:
return "media-jam";
case Reason::kMovingToPaused:
return "moving-to-paused";
case Reason::kPaused:
return "paused";
case Reason::kShutdown:
return "shutdown";
case Reason::kConnectingToDevice:
return "connecting-to-device";
case Reason::kTimedOut:
return "timed-out";
case Reason::kStopping:
return "stopping";
case Reason::kStoppedPartly:
return "stopped-partly";
case Reason::kTonerLow:
return "toner-low";
case Reason::kTonerEmpty:
return "toner-empty";
case Reason::kSpoolAreaFull:
return "spool-area-full";
case Reason::kCoverOpen:
return "cover-open";
case Reason::kInterlockOpen:
return "interlock-open";
case Reason::kDoorOpen:
return "door-open";
case Reason::kInputTrayMissing:
return "input-tray-missing";
case Reason::kMediaLow:
return "media-low";
case Reason::kMediaEmpty:
return "media-empty";
case Reason::kOutputTrayMissing:
return "output-tray-missing";
case Reason::kOutputAreaAlmostFull:
return "output-area-almost-full";
case Reason::kOutputAreaFull:
return "output-area-full";
case Reason::kMarkerSupplyLow:
return "marker-supply-low";
case Reason::kMarkerSupplyEmpty:
return "marker-supply-empty";
case Reason::kMarkerWasteAlmostFull:
return "marker-waste-almost-full";
case Reason::kMarkerWasteFull:
return "marker-waste-full";
case Reason::kFuserOverTemp:
return "fuser-over-temp";
case Reason::kFuserUnderTemp:
return "fuser-under-temp";
case Reason::kOpcNearEol:
return "opc-near-eol";
case Reason::kOpcLifeOver:
return "opc-life-over";
case Reason::kDeveloperLow:
return "developer-low";
case Reason::kDeveloperEmpty:
return "developer-empty";
case Reason::kInterpreterResourceUnavailable:
return "interpreter-resource-unavailable";
case Reason::kCupsPkiExpired:
return "cups-pki-expired";
}
}
std::string_view PrinterStatus::PrinterReason::SeverityName() const {
switch (severity) {
case Severity::kUnknownSeverity:
return "unknown";
case Severity::kReport:
return "report";
case Severity::kWarning:
return "warning";
case Severity::kError:
return "error";
}
}
std::string PrinterStatus::AllReasonsAsString() const {
std::vector<std::string> reason_strings;
std::transform(reasons.begin(), reasons.end(),
std::back_inserter(reason_strings),
[](const PrinterStatus::PrinterReason& reason) {
return base::StringPrintf("%s/%s", reason.ReasonName(),
reason.SeverityName());
});
return base::JoinString(reason_strings, ";");
}
} // namespace printing
|