---
title: llarp::I_RCGossiper

---

# llarp::I_RCGossiper





Inherited by [llarp::RCGossiper](Classes/structllarp_1_1RCGossiper.md)

## Public Types

|                | Name           |
| -------------- | -------------- |
| using Duration_t | **[Time_t](Classes/structllarp_1_1I__RCGossiper.md#using-time-t)**  |

## Public Functions

|                | Name           |
| -------------- | -------------- |
| virtual | **[~I_RCGossiper](Classes/structllarp_1_1I__RCGossiper.md#function-~i-rcgossiper)**() =default |
| virtual bool | **[GossipRC](Classes/structllarp_1_1I__RCGossiper.md#function-gossiprc)**(const [RouterContact](Classes/structllarp_1_1RouterContact.md) & rc) =0<br>try goissping RC return false if we hit a cooldown for this rc return true if we gossiped this rc to at least 1 peer  |
| virtual void | **[Decay](Classes/structllarp_1_1I__RCGossiper.md#function-decay)**(Time_t now) =0 |
| virtual bool | **[ShouldGossipOurRC](Classes/structllarp_1_1I__RCGossiper.md#function-shouldgossipourrc)**(Time_t now) const =0<br>return true if we should gossip our RC now  |
| virtual bool | **[IsOurRC](Classes/structllarp_1_1I__RCGossiper.md#function-isourrc)**(const [RouterContact](Classes/structllarp_1_1RouterContact.md) & rc) const =0<br>return true if that rc is owned by us  |
| virtual void | **[Forget](Classes/structllarp_1_1I__RCGossiper.md#function-forget)**(const [RouterID](Classes/structllarp_1_1RouterID.md) & router) =0<br>forget the replay filter entry given pubkey  |
| virtual TimePoint_t | **[NextGossipAt](Classes/structllarp_1_1I__RCGossiper.md#function-nextgossipat)**() const =0<br>returns the time point when we will send our next gossip at  |
| virtual std::optional< TimePoint_t > | **[LastGossipAt](Classes/structllarp_1_1I__RCGossiper.md#function-lastgossipat)**() const =0<br>returns the time point when we sent our last gossip at or nullopt if we never did  |

## Public Types Documentation

### using Time_t

```cpp
using llarp::I_RCGossiper::Time_t =  Duration_t;
```


## Public Functions Documentation

### function ~I_RCGossiper

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


### function GossipRC

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

try goissping RC return false if we hit a cooldown for this rc return true if we gossiped this rc to at least 1 peer 

**Reimplemented by**: [llarp::RCGossiper::GossipRC](Classes/structllarp_1_1RCGossiper.md#function-gossiprc)


### function Decay

```cpp
virtual void Decay(
    Time_t now
) =0
```


**Reimplemented by**: [llarp::RCGossiper::Decay](Classes/structllarp_1_1RCGossiper.md#function-decay)


### function ShouldGossipOurRC

```cpp
virtual bool ShouldGossipOurRC(
    Time_t now
) const =0
```

return true if we should gossip our RC now 

**Reimplemented by**: [llarp::RCGossiper::ShouldGossipOurRC](Classes/structllarp_1_1RCGossiper.md#function-shouldgossipourrc)


### function IsOurRC

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

return true if that rc is owned by us 

**Reimplemented by**: [llarp::RCGossiper::IsOurRC](Classes/structllarp_1_1RCGossiper.md#function-isourrc)


### function Forget

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

forget the replay filter entry given pubkey 

**Reimplemented by**: [llarp::RCGossiper::Forget](Classes/structllarp_1_1RCGossiper.md#function-forget)


### function NextGossipAt

```cpp
virtual TimePoint_t NextGossipAt() const =0
```

returns the time point when we will send our next gossip at 

**Reimplemented by**: [llarp::RCGossiper::NextGossipAt](Classes/structllarp_1_1RCGossiper.md#function-nextgossipat)


### function LastGossipAt

```cpp
virtual std::optional< TimePoint_t > LastGossipAt() const =0
```

returns the time point when we sent our last gossip at or nullopt if we never did 

**Reimplemented by**: [llarp::RCGossiper::LastGossipAt](Classes/structllarp_1_1RCGossiper.md#function-lastgossipat)


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

Updated on 2022-08-30 at 18:09:26 +0000