llarp::dht::AbstractContext

Public Types

Name
using TXHolder< TXOwner, service::EncryptedIntroSet > PendingIntrosetLookups
using TXHolder< RouterID, RouterContact > PendingRouterLookups
using TXHolder< RouterID, RouterID > PendingExploreLookups

Public Functions

Name
virtual ~AbstractContext() =0
virtual bool LookupRouter(const RouterID & target, RouterLookupHandler result) =0
virtual void LookupRouterRecursive(const RouterID & target, const Key_t & whoasked, uint64_t whoaskedTX, const Key_t & askpeer, RouterLookupHandler result =nullptr) =0
virtual void LookupIntroSetRelayed(const Key_t & target, const Key_t & whoasked, uint64_t whoaskedTX, const Key_t & askpeer, uint64_t relayOrder, service::EncryptedIntroSetLookupHandler result =service::EncryptedIntroSetLookupHandler()) =0
Ask a Service Node to perform an Introset lookup for us.
virtual void LookupIntroSetDirect(const Key_t & target, const Key_t & whoasked, uint64_t whoaskedTX, const Key_t & askpeer, service::EncryptedIntroSetLookupHandler result =service::EncryptedIntroSetLookupHandler()) =0
Directly as a Service Node for an Introset.
virtual bool HasRouterLookup(const RouterID & target) const =0
virtual void LookupRouterForPath(const RouterID & target, uint64_t txid, const PathID_t & path, const Key_t & askpeer) =0
issue dht lookup for router via askpeer and send reply to local path
virtual void LookupIntroSetForPath(const Key_t & addr, uint64_t txid, const PathID_t & path, const Key_t & askpeer, uint64_t relayOrder) =0
virtual void DHTSendTo(const RouterID & peer, IMessage * msg, bool keepalive =true) =0
virtual bool HandleExploritoryRouterLookup(const Key_t & requester, uint64_t txid, const RouterID & target, std::vector< std::unique_ptr< IMessage > > & reply) =0
get routers closest to target excluding requester
virtual void LookupRouterRelayed(const Key_t & requester, uint64_t txid, const Key_t & target, bool recursive, std::vector< std::unique_ptr< IMessage > > & replies) =0
handle rc lookup from requester for target
virtual bool RelayRequestForPath(const PathID_t & localPath, const IMessage & msg) =0
virtual void PropagateLocalIntroSet(const PathID_t & path, uint64_t sourceTX, const service::EncryptedIntroSet & introset, const Key_t & peer, uint64_t relayOrder) =0
send introset to peer from source with S counter and excluding peers
virtual void PropagateIntroSetTo(const Key_t & source, uint64_t sourceTX, const service::EncryptedIntroSet & introset, const Key_t & peer, uint64_t relayOrder) =0
send introset to peer from source with S counter and excluding peers
virtual void Init(const Key_t & us, AbstractRouter * router) =0
virtual std::optional< llarp::service::EncryptedIntroSet > GetIntroSetByLocation(const Key_t & location) const =0
virtual llarp_time_t Now() const =0
virtual void ExploreNetworkVia(const Key_t & peer) =0
virtual llarp::AbstractRouter * GetRouter() const =0
virtual bool GetRCFromNodeDB(const Key_t & k, llarp::RouterContact & rc) const =0
virtual const Key_t & OurKey() const =0
virtual PendingIntrosetLookups & pendingIntrosetLookups() =0
virtual const PendingIntrosetLookups & pendingIntrosetLookups() const =0
virtual PendingRouterLookups & pendingRouterLookups() =0
virtual const PendingRouterLookups & pendingRouterLookups() const =0
virtual PendingExploreLookups & pendingExploreLookups() =0
virtual const PendingExploreLookups & pendingExploreLookups() const =0
virtual Bucket< ISNode > * services() =0
virtual bool & AllowTransit() =0
virtual const bool & AllowTransit() const =0
virtual Bucket< RCNode > * Nodes() const =0
virtual void PutRCNodeAsync(const RCNode & val) =0
virtual void DelRCNodeAsync(const Key_t & val) =0
virtual void StoreRC(const RouterContact rc) const =0

Public Types Documentation

using PendingIntrosetLookups

using llarp::dht::AbstractContext::PendingIntrosetLookups =  TXHolder<TXOwner, service::EncryptedIntroSet>;

using PendingRouterLookups

using llarp::dht::AbstractContext::PendingRouterLookups =  TXHolder<RouterID, RouterContact>;

using PendingExploreLookups

using llarp::dht::AbstractContext::PendingExploreLookups =  TXHolder<RouterID, RouterID>;

Public Functions Documentation

function ~AbstractContext

virtual ~AbstractContext() =0

function LookupRouter

virtual bool LookupRouter(
    const RouterID & target,
    RouterLookupHandler result
) =0

function LookupRouterRecursive

virtual void LookupRouterRecursive(
    const RouterID & target,
    const Key_t & whoasked,
    uint64_t whoaskedTX,
    const Key_t & askpeer,
    RouterLookupHandler result =nullptr
) =0

function LookupIntroSetRelayed

virtual void LookupIntroSetRelayed(
    const Key_t & target,
    const Key_t & whoasked,
    uint64_t whoaskedTX,
    const Key_t & askpeer,
    uint64_t relayOrder,
    service::EncryptedIntroSetLookupHandler result =service::EncryptedIntroSetLookupHandler()
) =0

Ask a Service Node to perform an Introset lookup for us.

function LookupIntroSetDirect

virtual void LookupIntroSetDirect(
    const Key_t & target,
    const Key_t & whoasked,
    uint64_t whoaskedTX,
    const Key_t & askpeer,
    service::EncryptedIntroSetLookupHandler result =service::EncryptedIntroSetLookupHandler()
) =0

Directly as a Service Node for an Introset.

function HasRouterLookup

virtual bool HasRouterLookup(
    const RouterID & target
) const =0

function LookupRouterForPath

virtual void LookupRouterForPath(
    const RouterID & target,
    uint64_t txid,
    const PathID_t & path,
    const Key_t & askpeer
) =0

issue dht lookup for router via askpeer and send reply to local path

function LookupIntroSetForPath

virtual void LookupIntroSetForPath(
    const Key_t & addr,
    uint64_t txid,
    const PathID_t & path,
    const Key_t & askpeer,
    uint64_t relayOrder
) =0

function DHTSendTo

virtual void DHTSendTo(
    const RouterID & peer,
    IMessage * msg,
    bool keepalive =true
) =0

function HandleExploritoryRouterLookup

virtual bool HandleExploritoryRouterLookup(
    const Key_t & requester,
    uint64_t txid,
    const RouterID & target,
    std::vector< std::unique_ptr< IMessage > > & reply
) =0

get routers closest to target excluding requester

function LookupRouterRelayed

virtual void LookupRouterRelayed(
    const Key_t & requester,
    uint64_t txid,
    const Key_t & target,
    bool recursive,
    std::vector< std::unique_ptr< IMessage > > & replies
) =0

handle rc lookup from requester for target

function RelayRequestForPath

virtual bool RelayRequestForPath(
    const PathID_t & localPath,
    const IMessage & msg
) =0

function PropagateLocalIntroSet

virtual void PropagateLocalIntroSet(
    const PathID_t & path,
    uint64_t sourceTX,
    const service::EncryptedIntroSet & introset,
    const Key_t & peer,
    uint64_t relayOrder
) =0

send introset to peer from source with S counter and excluding peers

function PropagateIntroSetTo

virtual void PropagateIntroSetTo(
    const Key_t & source,
    uint64_t sourceTX,
    const service::EncryptedIntroSet & introset,
    const Key_t & peer,
    uint64_t relayOrder
) =0

send introset to peer from source with S counter and excluding peers

function Init

virtual void Init(
    const Key_t & us,
    AbstractRouter * router
) =0

function GetIntroSetByLocation

virtual std::optional< llarp::service::EncryptedIntroSet > GetIntroSetByLocation(
    const Key_t & location
) const =0

function Now

virtual llarp_time_t Now() const =0

function ExploreNetworkVia

virtual void ExploreNetworkVia(
    const Key_t & peer
) =0

function GetRouter

virtual llarp::AbstractRouter * GetRouter() const =0

function GetRCFromNodeDB

virtual bool GetRCFromNodeDB(
    const Key_t & k,
    llarp::RouterContact & rc
) const =0

function OurKey

virtual const Key_t & OurKey() const =0

function pendingIntrosetLookups

virtual PendingIntrosetLookups & pendingIntrosetLookups() =0

function pendingIntrosetLookups

virtual const PendingIntrosetLookups & pendingIntrosetLookups() const =0

function pendingRouterLookups

virtual PendingRouterLookups & pendingRouterLookups() =0

function pendingRouterLookups

virtual const PendingRouterLookups & pendingRouterLookups() const =0

function pendingExploreLookups

virtual PendingExploreLookups & pendingExploreLookups() =0

function pendingExploreLookups

virtual const PendingExploreLookups & pendingExploreLookups() const =0

function services

virtual Bucket< ISNode > * services() =0

function AllowTransit

virtual bool & AllowTransit() =0

function AllowTransit

virtual const bool & AllowTransit() const =0

function Nodes

virtual Bucket< RCNode > * Nodes() const =0

function PutRCNodeAsync

virtual void PutRCNodeAsync(
    const RCNode & val
) =0

function DelRCNodeAsync

virtual void DelRCNodeAsync(
    const Key_t & val
) =0

function StoreRC

virtual void StoreRC(
    const RouterContact rc
) const =0

Updated on 2026-01-10 at 22:49:45 +0000