blob: 1c0b1ccd868fe860bc16a1a5ae7946f4415e3e21 [file] [log] [blame]
#include "lib/component/cpp/termination_reason.h"
#include <lib/fxl/strings/string_printf.h>
namespace component {
std::string TerminationReasonToString(
fuchsia::sys::TerminationReason termination_reason) {
switch (termination_reason) {
case fuchsia::sys::TerminationReason::UNKNOWN:
return "UNKNOWN";
case fuchsia::sys::TerminationReason::EXITED:
return "EXITED";
case fuchsia::sys::TerminationReason::URL_INVALID:
return "URL_INVALID";
case fuchsia::sys::TerminationReason::PACKAGE_NOT_FOUND:
return "PACKAGE_NOT_FOUND";
case fuchsia::sys::TerminationReason::INTERNAL_ERROR:
return "INTERNAL_ERROR";
case fuchsia::sys::TerminationReason::PROCESS_CREATION_ERROR:
return "PROCESS_CREATION_ERROR";
case fuchsia::sys::TerminationReason::RUNNER_FAILED:
return "RUNNER_FAILED";
case fuchsia::sys::TerminationReason::RUNNER_TERMINATED:
return "RUNNER_TERMINATED";
default:
return fxl::StringPrintf("%d", termination_reason);
}
}
std::string HumanReadableTerminationReason(
fuchsia::sys::TerminationReason termination_reason) {
switch (termination_reason) {
case fuchsia::sys::TerminationReason::EXITED:
return "exited";
case fuchsia::sys::TerminationReason::URL_INVALID:
return "url invalid";
case fuchsia::sys::TerminationReason::PACKAGE_NOT_FOUND:
return "not found";
case fuchsia::sys::TerminationReason::PROCESS_CREATION_ERROR:
return "failed to spawn process";
case fuchsia::sys::TerminationReason::RUNNER_FAILED:
return "failed to start runner for process";
case fuchsia::sys::TerminationReason::RUNNER_TERMINATED:
return "runner failed to execute";
default:
return fxl::StringPrintf(
"failed to create component (%s)",
TerminationReasonToString(termination_reason).c_str());
}
}
} // namespace component