LongPort 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 longport {
9 
10 enum class ErrorKind
11 {
12  Http,
13  OpenApi,
14  Other,
15 };
16 
17 class Status
18 {
19 private:
20  const lb_error_t* err_;
21  bool need_free_;
22 
23 public:
24  Status();
25  Status(const lb_error_t* err);
27  Status(Status&& status) noexcept;
29 
30  inline operator bool() { return is_ok(); }
31 
33  bool is_ok() const;
34 
36  bool is_err() const;
37 
39  std::optional<ErrorKind> kind() const;
40 
42  std::optional<int64_t> code() const;
43 
45  std::optional<const char*> message() const;
46 };
47 
48 } // namespace longport
Definition: status.hpp:18
std::optional< ErrorKind > kind() const
Returns the error kind if an error occurs.
std::optional< const char * > message() const
Returns the error message if an error occurs.
bool is_ok() const
Returns true if no errors occurs.
Status(const lb_error_t *err)
bool is_err() const
Returns true if an errors occurs.
std::optional< int64_t > code() const
Returns the error code if an error occurs.
Status(Status &&status) noexcept
Status(lb_error_t *err)
Definition: async_result.hpp:7
ErrorKind
Definition: status.hpp:11
struct lb_error_t lb_error_t
Definition: status.hpp:6