ipfs-chromium
multi_gateway_requestor.h
1 #ifndef IPFS_MULTI_GATEWAY_REQUESTOR_H_
2 #define IPFS_MULTI_GATEWAY_REQUESTOR_H_
3 
4 #include "gateway_state.h"
5 
6 #include <ipfs_client/gw/requestor.h>
7 
8 #include <ipfs_client/client.h>
9 
10 #include <chrono>
11 #include <deque>
12 #include <map>
13 
14 namespace ipfs::gw {
16  std::map<std::string, GatewayState> state_;
17  std::deque<RequestPtr> q;
18  bool Process(RequestPtr const&);
19  void DoSend(RequestPtr, std::string const&, GatewayState&);
20  using HeaderAccess = ctx::HttpApi::Hdrs;
21  void HandleResponse(HttpRequestDescription const&,
22  RequestPtr,
23  std::string const&,
24  std::int16_t,
25  std::string_view,
26  HeaderAccess,
27  bool,
28  std::chrono::system_clock::time_point);
29  void Next();
30 
31  public:
32  std::string_view name() const override;
33  HandleOutcome handle(RequestPtr) override;
34 };
35 } // namespace ipfs::gw
36 
37 #endif // IPFS_MULTI_GATEWAY_REQUESTOR_H_
Definition: gateway_state.h:23
Definition: multi_gateway_requestor.h:15
Definition: requestor.h:20
Definition: http_request_description.h:12