---
title: llarp::I_RCLookupHandler

---

# llarp::I_RCLookupHandler





Inherited by [llarp::RCLookupHandler](Classes/structllarp_1_1RCLookupHandler.md)

## Public Functions

|                | Name           |
| -------------- | -------------- |
| virtual | **[~I_RCLookupHandler](Classes/structllarp_1_1I__RCLookupHandler.md#function-~i-rclookuphandler)**() =default |
| virtual void | **[AddValidRouter](Classes/structllarp_1_1I__RCLookupHandler.md#function-addvalidrouter)**(const [RouterID](Classes/structllarp_1_1RouterID.md) & router) =0 |
| virtual void | **[RemoveValidRouter](Classes/structllarp_1_1I__RCLookupHandler.md#function-removevalidrouter)**(const [RouterID](Classes/structllarp_1_1RouterID.md) & router) =0 |
| virtual void | **[SetRouterWhitelist](Classes/structllarp_1_1I__RCLookupHandler.md#function-setrouterwhitelist)**(const std::vector< [RouterID](Classes/structllarp_1_1RouterID.md) > & whitelist, const std::vector< [RouterID](Classes/structllarp_1_1RouterID.md) > & greylist, const std::vector< [RouterID](Classes/structllarp_1_1RouterID.md) > & greenlist) =0 |
| virtual void | **[GetRC](Classes/structllarp_1_1I__RCLookupHandler.md#function-getrc)**(const [RouterID](Classes/structllarp_1_1RouterID.md) & router, RCRequestCallback callback, bool forceLookup =false) =0 |
| virtual bool | **[PathIsAllowed](Classes/structllarp_1_1I__RCLookupHandler.md#function-pathisallowed)**(const [RouterID](Classes/structllarp_1_1RouterID.md) & remote) const =0 |
| virtual bool | **[SessionIsAllowed](Classes/structllarp_1_1I__RCLookupHandler.md#function-sessionisallowed)**(const [RouterID](Classes/structllarp_1_1RouterID.md) & remote) const =0 |
| virtual bool | **[IsGreylisted](Classes/structllarp_1_1I__RCLookupHandler.md#function-isgreylisted)**(const [RouterID](Classes/structllarp_1_1RouterID.md) & remote) const =0 |
| virtual bool | **[IsGreenlisted](Classes/structllarp_1_1I__RCLookupHandler.md#function-isgreenlisted)**(const [RouterID](Classes/structllarp_1_1RouterID.md) & remote) const =0 |
| virtual bool | **[IsRegistered](Classes/structllarp_1_1I__RCLookupHandler.md#function-isregistered)**(const [RouterID](Classes/structllarp_1_1RouterID.md) & remote) const =0 |
| virtual bool | **[CheckRC](Classes/structllarp_1_1I__RCLookupHandler.md#function-checkrc)**(const [RouterContact](Classes/structllarp_1_1RouterContact.md) & rc) const =0 |
| virtual bool | **[GetRandomWhitelistRouter](Classes/structllarp_1_1I__RCLookupHandler.md#function-getrandomwhitelistrouter)**([RouterID](Classes/structllarp_1_1RouterID.md) & router) const =0 |
| virtual bool | **[CheckRenegotiateValid](Classes/structllarp_1_1I__RCLookupHandler.md#function-checkrenegotiatevalid)**([RouterContact](Classes/structllarp_1_1RouterContact.md) newrc, [RouterContact](Classes/structllarp_1_1RouterContact.md) oldrc) =0 |
| virtual void | **[PeriodicUpdate](Classes/structllarp_1_1I__RCLookupHandler.md#function-periodicupdate)**(llarp_time_t now) =0 |
| virtual void | **[ExploreNetwork](Classes/structllarp_1_1I__RCLookupHandler.md#function-explorenetwork)**() =0 |
| virtual size_t | **[NumberOfStrictConnectRouters](Classes/structllarp_1_1I__RCLookupHandler.md#function-numberofstrictconnectrouters)**() const =0 |
| virtual bool | **[HaveReceivedWhitelist](Classes/structllarp_1_1I__RCLookupHandler.md#function-havereceivedwhitelist)**() const =0 |

## Public Functions Documentation

### function ~I_RCLookupHandler

```cpp
virtual ~I_RCLookupHandler() =default
```


### function AddValidRouter

```cpp
virtual void AddValidRouter(
    const RouterID & router
) =0
```


**Reimplemented by**: [llarp::RCLookupHandler::AddValidRouter](Classes/structllarp_1_1RCLookupHandler.md#function-addvalidrouter)


### function RemoveValidRouter

```cpp
virtual void RemoveValidRouter(
    const RouterID & router
) =0
```


**Reimplemented by**: [llarp::RCLookupHandler::RemoveValidRouter](Classes/structllarp_1_1RCLookupHandler.md#function-removevalidrouter)


### function SetRouterWhitelist

```cpp
virtual void SetRouterWhitelist(
    const std::vector< RouterID > & whitelist,
    const std::vector< RouterID > & greylist,
    const std::vector< RouterID > & greenlist
) =0
```


**Reimplemented by**: [llarp::RCLookupHandler::SetRouterWhitelist](Classes/structllarp_1_1RCLookupHandler.md#function-setrouterwhitelist)


### function GetRC

```cpp
virtual void GetRC(
    const RouterID & router,
    RCRequestCallback callback,
    bool forceLookup =false
) =0
```


**Reimplemented by**: [llarp::RCLookupHandler::GetRC](Classes/structllarp_1_1RCLookupHandler.md#function-getrc)


### function PathIsAllowed

```cpp
virtual bool PathIsAllowed(
    const RouterID & remote
) const =0
```


**Reimplemented by**: [llarp::RCLookupHandler::PathIsAllowed](Classes/structllarp_1_1RCLookupHandler.md#function-pathisallowed)


### function SessionIsAllowed

```cpp
virtual bool SessionIsAllowed(
    const RouterID & remote
) const =0
```


**Reimplemented by**: [llarp::RCLookupHandler::SessionIsAllowed](Classes/structllarp_1_1RCLookupHandler.md#function-sessionisallowed)


### function IsGreylisted

```cpp
virtual bool IsGreylisted(
    const RouterID & remote
) const =0
```


**Reimplemented by**: [llarp::RCLookupHandler::IsGreylisted](Classes/structllarp_1_1RCLookupHandler.md#function-isgreylisted)


### function IsGreenlisted

```cpp
virtual bool IsGreenlisted(
    const RouterID & remote
) const =0
```


**Reimplemented by**: [llarp::RCLookupHandler::IsGreenlisted](Classes/structllarp_1_1RCLookupHandler.md#function-isgreenlisted)


### function IsRegistered

```cpp
virtual bool IsRegistered(
    const RouterID & remote
) const =0
```


**Reimplemented by**: [llarp::RCLookupHandler::IsRegistered](Classes/structllarp_1_1RCLookupHandler.md#function-isregistered)


### function CheckRC

```cpp
virtual bool CheckRC(
    const RouterContact & rc
) const =0
```


**Reimplemented by**: [llarp::RCLookupHandler::CheckRC](Classes/structllarp_1_1RCLookupHandler.md#function-checkrc)


### function GetRandomWhitelistRouter

```cpp
virtual bool GetRandomWhitelistRouter(
    RouterID & router
) const =0
```


**Reimplemented by**: [llarp::RCLookupHandler::GetRandomWhitelistRouter](Classes/structllarp_1_1RCLookupHandler.md#function-getrandomwhitelistrouter)


### function CheckRenegotiateValid

```cpp
virtual bool CheckRenegotiateValid(
    RouterContact newrc,
    RouterContact oldrc
) =0
```


**Reimplemented by**: [llarp::RCLookupHandler::CheckRenegotiateValid](Classes/structllarp_1_1RCLookupHandler.md#function-checkrenegotiatevalid)


### function PeriodicUpdate

```cpp
virtual void PeriodicUpdate(
    llarp_time_t now
) =0
```


**Reimplemented by**: [llarp::RCLookupHandler::PeriodicUpdate](Classes/structllarp_1_1RCLookupHandler.md#function-periodicupdate)


### function ExploreNetwork

```cpp
virtual void ExploreNetwork() =0
```


**Reimplemented by**: [llarp::RCLookupHandler::ExploreNetwork](Classes/structllarp_1_1RCLookupHandler.md#function-explorenetwork)


### function NumberOfStrictConnectRouters

```cpp
virtual size_t NumberOfStrictConnectRouters() const =0
```


**Reimplemented by**: [llarp::RCLookupHandler::NumberOfStrictConnectRouters](Classes/structllarp_1_1RCLookupHandler.md#function-numberofstrictconnectrouters)


### function HaveReceivedWhitelist

```cpp
virtual bool HaveReceivedWhitelist() const =0
```


**Reimplemented by**: [llarp::RCLookupHandler::HaveReceivedWhitelist](Classes/structllarp_1_1RCLookupHandler.md#function-havereceivedwhitelist)


-------------------------------

Updated on 2023-01-26 at 19:35:17 +0000