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