llarp::ILinkManager

Inherited by llarp::LinkManager

Public Functions

Name
virtual ~ILinkManager() =default
virtual LinkLayer_ptr GetCompatibleLink(const RouterContact & rc) const =0
virtual IOutboundSessionMaker * GetSessionMaker() const =0
virtual bool SendTo(const RouterID & remote, const llarp_buffer_t & buf, ILinkSession::CompletionHandler completed, uint16_t priority =0) =0
virtual bool HasSessionTo(const RouterID & remote) const =0
virtual bool HasOutboundSessionTo(const RouterID & remote) const =0
virtual std::optional< bool > SessionIsClient(RouterID remote) const =0
return true if the session with this pubkey is a client return false if the session with this pubkey is a router return std::nullopt we have no session with this pubkey
virtual void PumpLinks() =0
virtual void AddLink(LinkLayer_ptr link, bool inbound =false) =0
virtual bool StartLinks() =0
virtual void Stop() =0
virtual void PersistSessionUntil(const RouterID & remote, llarp_time_t until) =0
virtual void ForEachPeer(std::function< void(const ILinkSession *, bool)> visit, bool randomize =false) const =0
virtual void ForEachPeer(std::function< void(ILinkSession *)> visit) =0
virtual void ForEachInboundLink(std::function< void(LinkLayer_ptr)> visit) const =0
virtual void ForEachOutboundLink(std::function< void(LinkLayer_ptr)> visit) const =0
virtual void DeregisterPeer(RouterID remote) =0
close all connections to this peer remove all link layer commits
virtual size_t NumberOfConnectedRouters() const =0
virtual size_t NumberOfConnectedClients() const =0
virtual size_t NumberOfPendingConnections() const =0
virtual bool GetRandomConnectedRouter(RouterContact & router) const =0
virtual void CheckPersistingSessions(llarp_time_t now) =0

Public Functions Documentation

function ~ILinkManager

virtual ~ILinkManager() =default
virtual LinkLayer_ptr GetCompatibleLink(
    const RouterContact & rc
) const =0

Reimplemented by: llarp::LinkManager::GetCompatibleLink

function GetSessionMaker

virtual IOutboundSessionMaker * GetSessionMaker() const =0

Reimplemented by: llarp::LinkManager::GetSessionMaker

function SendTo

virtual bool SendTo(
    const RouterID & remote,
    const llarp_buffer_t & buf,
    ILinkSession::CompletionHandler completed,
    uint16_t priority =0
) =0

Reimplemented by: llarp::LinkManager::SendTo

function HasSessionTo

virtual bool HasSessionTo(
    const RouterID & remote
) const =0

Reimplemented by: llarp::LinkManager::HasSessionTo

function HasOutboundSessionTo

virtual bool HasOutboundSessionTo(
    const RouterID & remote
) const =0

Reimplemented by: llarp::LinkManager::HasOutboundSessionTo

function SessionIsClient

virtual std::optional< bool > SessionIsClient(
    RouterID remote
) const =0

return true if the session with this pubkey is a client return false if the session with this pubkey is a router return std::nullopt we have no session with this pubkey

Reimplemented by: llarp::LinkManager::SessionIsClient

virtual void PumpLinks() =0

Reimplemented by: llarp::LinkManager::PumpLinks

virtual void AddLink(
    LinkLayer_ptr link,
    bool inbound =false
) =0

Reimplemented by: llarp::LinkManager::AddLink

virtual bool StartLinks() =0

Reimplemented by: llarp::LinkManager::StartLinks

function Stop

virtual void Stop() =0

Reimplemented by: llarp::LinkManager::Stop

function PersistSessionUntil

virtual void PersistSessionUntil(
    const RouterID & remote,
    llarp_time_t until
) =0

Reimplemented by: llarp::LinkManager::PersistSessionUntil

function ForEachPeer

virtual void ForEachPeer(
    std::function< void(const ILinkSession *, bool)> visit,
    bool randomize =false
) const =0

Reimplemented by: llarp::LinkManager::ForEachPeer

function ForEachPeer

virtual void ForEachPeer(
    std::function< void(ILinkSession *)> visit
) =0

Reimplemented by: llarp::LinkManager::ForEachPeer

virtual void ForEachInboundLink(
    std::function< void(LinkLayer_ptr)> visit
) const =0

Reimplemented by: llarp::LinkManager::ForEachInboundLink

virtual void ForEachOutboundLink(
    std::function< void(LinkLayer_ptr)> visit
) const =0

Reimplemented by: llarp::LinkManager::ForEachOutboundLink

function DeregisterPeer

virtual void DeregisterPeer(
    RouterID remote
) =0

close all connections to this peer remove all link layer commits

Reimplemented by: llarp::LinkManager::DeregisterPeer

function NumberOfConnectedRouters

virtual size_t NumberOfConnectedRouters() const =0

Reimplemented by: llarp::LinkManager::NumberOfConnectedRouters

function NumberOfConnectedClients

virtual size_t NumberOfConnectedClients() const =0

Reimplemented by: llarp::LinkManager::NumberOfConnectedClients

function NumberOfPendingConnections

virtual size_t NumberOfPendingConnections() const =0

Reimplemented by: llarp::LinkManager::NumberOfPendingConnections

function GetRandomConnectedRouter

virtual bool GetRandomConnectedRouter(
    RouterContact & router
) const =0

Reimplemented by: llarp::LinkManager::GetRandomConnectedRouter

function CheckPersistingSessions

virtual void CheckPersistingSessions(
    llarp_time_t now
) =0

Reimplemented by: llarp::LinkManager::CheckPersistingSessions


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