7#include <packager/status.h>
13#include <absl/log/log.h>
14#include <absl/strings/str_format.h>
16#include <packager/macros/logging.h>
22const char* ErrorCodeToString(Code error_code) {
30 case INVALID_ARGUMENT:
31 return "INVALID_ARGUMENT";
33 return "UNIMPLEMENTED";
35 return "FILE_FAILURE";
37 return "END_OF_STREAM";
39 return "HTTP_FAILURE";
41 return "PARSER_FAILURE";
42 case ENCRYPTION_FAILURE:
43 return "ENCRYPTION_FAILURE";
45 return "CHUNKING_ERROR";
47 return "MUXER_FAILURE";
48 case FRAGMENT_FINALIZED:
49 return "FRAGMENT_FINALIZED";
51 return "SERVER_ERROR";
53 return "INTERNAL_ERROR";
61 return "ALREADY_EXISTS";
62 case TRICK_PLAY_ERROR:
63 return "TRICK_PLAY_ERROR";
66 NOTIMPLEMENTED() <<
"Unknown Status Code: " << error_code;
67 return "UNKNOWN_STATUS";
72const Status Status::OK = Status(error::OK,
"");
73const Status Status::UNKNOWN = Status(error::UNKNOWN,
"");
75Status::Status(error::Code error_code,
const std::string& error_message)
76 : error_code_(error_code) {
78 error_message_ = error_message;
79 if (!error_message.empty())
80 VLOG(1) << ToString();
84void Status::Update(Status new_status) {
86 *
this = std::move(new_status);
89std::string Status::ToString()
const {
90 if (error_code_ == error::OK)
93 return absl::StrFormat(
"%d (%s): %s", error_code_,
94 error::ErrorCodeToString(error_code_),
95 error_message_.c_str());
98std::ostream& operator<<(std::ostream& os,
const Status& x) {
All the methods that are virtual are virtual for mocking.