Longbridge OpenAPI C++ SDK
status.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <optional>
4 #include <stdint.h>
5 
6 typedef struct lb_error_t lb_error_t;
7 
8 namespace longbridge {
9 
10 enum class ErrorKind
11 {
12  Http,
13  OpenApi,
14  Other,
15  OAuth,
16 };
17 
18 class Status
19 {
20 private:
21  const lb_error_t* err_;
22  bool need_free_;
23 
24 public:
25  Status();
26  Status(const lb_error_t* err);
28  Status(Status&& status) noexcept;
29  Status& operator=(Status&& status) noexcept;
31 
32  inline operator bool() { return is_ok(); }
33 
35  bool is_ok() const;
36 
38  bool is_err() const;
39 
41  std::optional<ErrorKind> kind() const;
42 
44  std::optional<int64_t> code() const;
45 
47  std::optional<const char*> message() const;
48 };
49 
50 } // namespace longbridge
Definition: status.hpp:19
Status & operator=(Status &&status) noexcept
std::optional< const char * > message() const
Returns the error message if an error occurs.
Status(const lb_error_t *err)
std::optional< ErrorKind > kind() const
Returns the error kind if an error occurs.
bool is_err() const
Returns true if an errors occurs.
Status(Status &&status) noexcept
bool is_ok() const
Returns true if no errors occurs.
std::optional< int64_t > code() const
Returns the error code if an error occurs.
Status(lb_error_t *err)
Definition: async_result.hpp:8
ErrorKind
Definition: status.hpp:11
struct lb_error_t lb_error_t
Definition: status.hpp:6