ipfs-chromium
gateway_config.h
1 #ifndef IPFS_CHROMIUM_GATEWAY_CONFIG_H
2 #define IPFS_CHROMIUM_GATEWAY_CONFIG_H
3 
4 #include <ipfs_client/gateway_spec.h>
5 
6 #include <cstdint>
7 #include <optional>
8 #include <string_view>
9 
10 namespace ipfs::ctx {
14  public:
15  virtual ~GatewayConfig() noexcept {}
16  virtual std::optional<GatewaySpec> GetGateway(std::size_t index) const = 0;
17  virtual unsigned GetGatewayRate(std::string_view url_prefix) = 0;
18  virtual int GetTypeAffinity(std::string_view url_prefix,
19  gw::GatewayRequestType) const = 0;
20  virtual void SetTypeAffinity(std::string_view url_prefix,
21  gw::GatewayRequestType,
22  int) = 0;
23 
24  // These 2 calls are similar, but AddGateway will ignore rpm if the gw is
25  // already present,
26  // while SetGatewayRate will override it, as that's its primary purpose.
27  virtual void SetGatewayRate(std::string_view url_prefix, unsigned rpm) = 0;
28  virtual void AddGateway(std::string_view url_prefix, unsigned rpm) = 0;
29 
30  // 0 implies off i.e. don't do this discovery
31  virtual unsigned RoutingApiDiscoveryDefaultRate() const = 0;
32  virtual bool RoutingApiDiscoveryOfUnencryptedGateways() const = 0;
33 };
34 } // namespace ipfs::ctx
35 
36 #endif // IPFS_CHROMIUM_GATEWAY_CONFIG_H
Definition: gateway_config.h:13