lokinet/llarp/service/hidden_service_address_lookup.hpp
Jason Rhinelander 1697bf90fe C++17
Compiles with C++17, replaces ghc::filesystem with std::filesystem,
nonstd::optional with std::optional, and llarp::string_view with
std::string_view.
2020-05-01 17:43:27 -03:00

42 lines
1.0 KiB
C++

#ifndef LLARP_SERVICE_HIDDEN_SERVICE_ADDRESS_LOOKUP_HPP
#define LLARP_SERVICE_HIDDEN_SERVICE_ADDRESS_LOOKUP_HPP
#include <routing/dht_message.hpp>
#include <service/intro_set.hpp>
#include <service/lookup.hpp>
namespace llarp
{
namespace service
{
struct Endpoint;
struct HiddenServiceAddressLookup : public IServiceLookup
{
const PubKey rootkey;
uint64_t relayOrder;
const dht::Key_t location;
using HandlerFunc =
std::function<bool(const Address&, std::optional<IntroSet>, const RouterID&)>;
HandlerFunc handle;
HiddenServiceAddressLookup(
Endpoint* p,
HandlerFunc h,
const dht::Key_t& location,
const PubKey& rootkey,
uint64_t relayOrder,
uint64_t tx);
~HiddenServiceAddressLookup() override = default;
bool
HandleResponse(const std::set<EncryptedIntroSet>& results) override;
std::shared_ptr<routing::IMessage>
BuildRequestMessage() override;
};
} // namespace service
} // namespace llarp
#endif