IoTeX client
http.h
1#ifndef HTTP_H
2#define HTTP_H
3
4#include "helpers/client_helper.h"
5#include "IoTeXResultCodes.h"
6#include <memory>
7#include <string>
8
9namespace iotex
10{
11enum GrpcStatusCode
12{
13 OK = 0,
14 CANCELLED,
15 UNKNOWN,
16 INVALIUD_ARGUMENT,
17 DEADLINE_EXCEEDED,
18 NOT_FOUND,
19 ALREADY_EXISTS,
20 PERMISSION_DENIED,
21 RESOURCE_EXHAUSTED,
22 FAILED_PRECONDITION,
23 ABORTED,
24 OUT_OF_RANGE,
25 UNIMPLEMENTED,
26 INTERNAL,
27 UNAVAILABLE,
28 DATA_LOSS,
29 UNAUTHENTICATED,
30 END
31};
32
34{
35 GrpcStatusCode code;
36 IotexString message;
37};
38
39class IHTTP
40{
41 protected:
42 IHTTP() = default;
43
44 public:
45 virtual ~IHTTP()
46 {
47 }
48
49 virtual IotexString get(const char* request) = 0;
50 virtual iotex::ResultCode post(const char* request, const char* body,
51 IotexString& response) = 0;
52
53 virtual int get(const char* request, char* rspBuf, size_t size)
54 {
55 return -1;
56 };
57 virtual int post(const char* request, const char* body, char* rspBuf, size_t size)
58 {
59 return -1;
60 };
61};
62
63class AbstractHTTP : public IHTTP
64{
65 protected:
66 AbstractHTTP() = default;
67 AbstractHTTP(AbstractHTTP&&) = delete;
68 AbstractHTTP& operator=(AbstractHTTP&&) = delete;
69 AbstractHTTP& operator=(const AbstractHTTP& other) = default;
70
71 public:
72 virtual ~AbstractHTTP(){};
73};
74
75std::unique_ptr<IHTTP> makeHTTP();
76
77} // namespace iotex
78
79#endif
Definition: http.h:64
Definition: http.h:40
Definition: abi.h:12
Definition: http.h:34