[Glacier] Add proper string formatting for ErrorCodes.
This commit is contained in:
parent
a93aa3a426
commit
9f0e87b51d
|
@ -1,4 +1,5 @@
|
||||||
set(glacier_files
|
set(glacier_files
|
||||||
|
status/error.cpp
|
||||||
string/string.cpp
|
string/string.cpp
|
||||||
string/string_builder.cpp
|
string/string_builder.cpp
|
||||||
string/string_view.cpp
|
string/string_view.cpp
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
#include "glacier/status/error.h"
|
||||||
|
|
||||||
|
namespace glcr {
|
||||||
|
|
||||||
|
StringView ErrorCodeToStr(ErrorCode code) {
|
||||||
|
switch (code) {
|
||||||
|
case OK:
|
||||||
|
return "OK";
|
||||||
|
case INVALID_ARGUMENT:
|
||||||
|
return "INVALID_ARGUMENT";
|
||||||
|
case NOT_FOUND:
|
||||||
|
return "NOT_FOUND";
|
||||||
|
case PERMISSION_DENIED:
|
||||||
|
return "PERMISSION_DENIED";
|
||||||
|
case NULL_PTR:
|
||||||
|
return "NULL_PTR";
|
||||||
|
case EMPTY:
|
||||||
|
return "EMPTY";
|
||||||
|
case ALREADY_EXISTS:
|
||||||
|
return "ALREADY_EXISTS";
|
||||||
|
case BUFFER_SIZE:
|
||||||
|
return "BUFFER_SIZE";
|
||||||
|
case FAILED_PRECONDITION:
|
||||||
|
return "FAILED_PRECONDITION";
|
||||||
|
case INTERNAL:
|
||||||
|
return "INTERNAL";
|
||||||
|
case UNIMPLEMENTED:
|
||||||
|
return "UNIMPLEMENTED";
|
||||||
|
case EXHAUSTED:
|
||||||
|
return "EXHAUSTED";
|
||||||
|
case INVALID_RESPONSE:
|
||||||
|
return "INVALID_RESPONSE";
|
||||||
|
case CAP_NOT_FOUND:
|
||||||
|
return "CAP_NOT_FOUND";
|
||||||
|
case CAP_WRONG_TYPE:
|
||||||
|
return "CAP_WRONG_TYPE";
|
||||||
|
case CAP_PERMISSION_DENIED:
|
||||||
|
return "CAP_PERMISSION_DENIED";
|
||||||
|
default:
|
||||||
|
return "UNKNOWN";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace glcr
|
|
@ -2,6 +2,8 @@
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#include "glacier/string/string_view.h"
|
||||||
|
|
||||||
namespace glcr {
|
namespace glcr {
|
||||||
|
|
||||||
enum ErrorCode : uint64_t {
|
enum ErrorCode : uint64_t {
|
||||||
|
@ -29,6 +31,8 @@ enum ErrorCode : uint64_t {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
StringView ErrorCodeToStr(ErrorCode code);
|
||||||
|
|
||||||
#define RET_ERR(expr) \
|
#define RET_ERR(expr) \
|
||||||
{ \
|
{ \
|
||||||
glcr::ErrorCode _tmp_err = static_cast<glcr::ErrorCode>(expr); \
|
glcr::ErrorCode _tmp_err = static_cast<glcr::ErrorCode>(expr); \
|
||||||
|
|
|
@ -57,7 +57,7 @@ void StrFormatValue(StringBuilder& builder, const uint64_t& value,
|
||||||
template <>
|
template <>
|
||||||
void StrFormatValue(StringBuilder& builder, const ErrorCode& value,
|
void StrFormatValue(StringBuilder& builder, const ErrorCode& value,
|
||||||
StringView opts) {
|
StringView opts) {
|
||||||
StrFormatValue(builder, static_cast<uint64_t>(value), opts);
|
StrFormatValue(builder, ErrorCodeToStr(value), opts);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
z_err_t ProcessExit(ZProcessExitReq* req) {
|
z_err_t ProcessExit(ZProcessExitReq* req) {
|
||||||
auto curr_thread = gScheduler->CurrentThread();
|
auto curr_thread = gScheduler->CurrentThread();
|
||||||
dbgln("Exit code: {x}", req->code);
|
dbgln("Exit code: {}", static_cast<glcr::ErrorCode>(req->code));
|
||||||
curr_thread->process().Exit();
|
curr_thread->process().Exit();
|
||||||
panic("Returned from thread exit");
|
panic("Returned from thread exit");
|
||||||
return glcr::UNIMPLEMENTED;
|
return glcr::UNIMPLEMENTED;
|
||||||
|
|
Loading…
Reference in New Issue