6#ifndef SYMBIAN_NATIVE_STATUS_H_
7#define SYMBIAN_NATIVE_STATUS_H_
14#include "absl/status/status.h"
15#include "absl/strings/cord.h"
16#include "absl/strings/string_view.h"
23namespace native_error {
40 "symbian.sdk/native-error";
43 absl::string_view operation) {
45 return absl::OkStatus();
47 absl::StatusCode
code = absl::StatusCode::kInternal;
48 switch (native_code) {
50 code = absl::StatusCode::kNotFound;
53 code = absl::StatusCode::kCancelled;
56 code = absl::StatusCode::kResourceExhausted;
59 code = absl::StatusCode::kUnimplemented;
62 code = absl::StatusCode::kInvalidArgument;
65 code = absl::StatusCode::kAlreadyExists;
69 code = absl::StatusCode::kFailedPrecondition;
73 code = absl::StatusCode::kPermissionDenied;
76 code = absl::StatusCode::kDeadlineExceeded;
79 std::string message(operation);
80 message +=
": native error ";
81 message += std::to_string(native_code);
82 absl::Status result(
code, message);
84 absl::Cord(absl::string_view(std::to_string(native_code))));
93 const std::string text(
payload->Flatten());
96 const long value = std::strtol(text.c_str(), &end, 10);
97 if (errno == 0 && end != text.c_str() && *end ==
'\0' &&
value >= INT_MIN &&
99 return static_cast<int>(
value);
102 switch (status.code()) {
103 case absl::StatusCode::kCancelled:
105 case absl::StatusCode::kNotFound:
107 case absl::StatusCode::kInvalidArgument:
109 case absl::StatusCode::kDeadlineExceeded:
111 case absl::StatusCode::kAlreadyExists:
113 case absl::StatusCode::kPermissionDenied:
115 case absl::StatusCode::kResourceExhausted:
117 case absl::StatusCode::kFailedPrecondition:
119 case absl::StatusCode::kUnimplemented:
std::vector< uint32_t > code
Definition e32.cc:70
constexpr int kArgument
Definition native_status.h:30
constexpr int kGeneral
Definition native_status.h:26
constexpr int kAlreadyExists
Definition native_status.h:31
constexpr int kCancel
Definition native_status.h:27
constexpr int kAccessDenied
Definition native_status.h:34
constexpr int kNotSupported
Definition native_status.h:29
constexpr int kTimedOut
Definition native_status.h:35
constexpr int kPermissionDenied
Definition native_status.h:36
constexpr int kNotFound
Definition native_status.h:25
constexpr int kNone
Definition native_status.h:24
constexpr int kNoMemory
Definition native_status.h:28
constexpr int kInUse
Definition native_status.h:32
constexpr int kNotReady
Definition native_status.h:33
int NativeErrorFromStatus(const absl::Status &status)
Definition native_status.h:88
absl::Status StatusFromNativeError(int native_code, absl::string_view operation)
Definition native_status.h:42
constexpr absl::string_view kNativeErrorPayload
Definition native_status.h:39
std::string_view payload
Definition sis.cc:139
libusb_context * value
Definition usb.cc:35