#ifndef LLARP_DHT_SERVICEADDRESSLOOKUP #define LLARP_DHT_SERVICEADDRESSLOOKUP #include #include #include #include namespace llarp { namespace dht { struct TXOwner; struct ServiceAddressLookup : public TX< service::Address, service::IntroSet > { service::IntroSetLookupHandler handleResult; uint64_t R; ServiceAddressLookup(const TXOwner &asker, const service::Address &addr, AbstractContext *ctx, uint64_t r, service::IntroSetLookupHandler handler); bool Validate(const service::IntroSet &value) const override; bool GetNextPeer(Key_t &next, const std::set< Key_t > &exclude) override; void Start(const TXOwner &peer) override; void DoNextRequest(const Key_t &ask) override; void SendReply() override; }; } // namespace dht } // namespace llarp #endif