---
title: llarp::routing::ObtainExitMessage

---

# llarp::routing::ObtainExitMessage





Inherits from [llarp::routing::IMessage](Classes/structllarp_1_1routing_1_1IMessage.md)

## Public Functions

|                | Name           |
| -------------- | -------------- |
| | **[ObtainExitMessage](Classes/structllarp_1_1routing_1_1ObtainExitMessage.md#function-obtainexitmessage)**() |
| | **[~ObtainExitMessage](Classes/structllarp_1_1routing_1_1ObtainExitMessage.md#function-~obtainexitmessage)**() override =default |
| virtual void | **[Clear](Classes/structllarp_1_1routing_1_1ObtainExitMessage.md#function-clear)**() override |
| bool | **[Sign](Classes/structllarp_1_1routing_1_1ObtainExitMessage.md#function-sign)**(const [llarp::SecretKey](Classes/structllarp_1_1SecretKey.md) & sk)<br>populates I and signs  |
| bool | **[Verify](Classes/structllarp_1_1routing_1_1ObtainExitMessage.md#function-verify)**() const |
| virtual bool | **[BEncode](Classes/structllarp_1_1routing_1_1ObtainExitMessage.md#function-bencode)**([llarp_buffer_t](Classes/structllarp__buffer__t.md) * buf) const override |
| virtual bool | **[DecodeKey](Classes/structllarp_1_1routing_1_1ObtainExitMessage.md#function-decodekey)**(const [llarp_buffer_t](Classes/structllarp__buffer__t.md) & key, [llarp_buffer_t](Classes/structllarp__buffer__t.md) * buf) override |
| virtual bool | **[HandleMessage](Classes/structllarp_1_1routing_1_1ObtainExitMessage.md#function-handlemessage)**([IMessageHandler](Classes/structllarp_1_1routing_1_1IMessageHandler.md) * h, [AbstractRouter](Classes/structllarp_1_1AbstractRouter.md) * r) const override |

## Public Attributes

|                | Name           |
| -------------- | -------------- |
| std::vector< [llarp::exit::Policy](Classes/structllarp_1_1exit_1_1Policy.md) > | **[B](Classes/structllarp_1_1routing_1_1ObtainExitMessage.md#variable-b)**  |
| uint64_t | **[E](Classes/structllarp_1_1routing_1_1ObtainExitMessage.md#variable-e)**  |
| [llarp::PubKey](Classes/structllarp_1_1PubKey.md) | **[I](Classes/structllarp_1_1routing_1_1ObtainExitMessage.md#variable-i)**  |
| uint64_t | **[T](Classes/structllarp_1_1routing_1_1ObtainExitMessage.md#variable-t)**  |
| std::vector< [llarp::exit::Policy](Classes/structllarp_1_1exit_1_1Policy.md) > | **[W](Classes/structllarp_1_1routing_1_1ObtainExitMessage.md#variable-w)**  |
| uint64_t | **[X](Classes/structllarp_1_1routing_1_1ObtainExitMessage.md#variable-x)**  |
| [llarp::Signature](Classes/structllarp_1_1Signature.md) | **[Z](Classes/structllarp_1_1routing_1_1ObtainExitMessage.md#variable-z)**  |

## Additional inherited members

**Public Functions inherited from [llarp::routing::IMessage](Classes/structllarp_1_1routing_1_1IMessage.md)**

|                | Name           |
| -------------- | -------------- |
| | **[IMessage](Classes/structllarp_1_1routing_1_1IMessage.md#function-imessage)**() =default |
| virtual | **[~IMessage](Classes/structllarp_1_1routing_1_1IMessage.md#function-~imessage)**() =default |
| bool | **[operator<](Classes/structllarp_1_1routing_1_1IMessage.md#function-operator<)**(const [IMessage](Classes/structllarp_1_1routing_1_1IMessage.md) & other) const |

**Public Attributes inherited from [llarp::routing::IMessage](Classes/structllarp_1_1routing_1_1IMessage.md)**

|                | Name           |
| -------------- | -------------- |
| [PathID_t](Classes/structllarp_1_1PathID__t.md) | **[from](Classes/structllarp_1_1routing_1_1IMessage.md#variable-from)**  |
| uint64_t | **[S](Classes/structllarp_1_1routing_1_1IMessage.md#variable-s)**  |
| uint64_t | **[version](Classes/structllarp_1_1routing_1_1IMessage.md#variable-version)**  |


## Public Functions Documentation

### function ObtainExitMessage

```cpp
inline ObtainExitMessage()
```


### function ~ObtainExitMessage

```cpp
~ObtainExitMessage() override =default
```


### function Clear

```cpp
inline virtual void Clear() override
```


**Reimplements**: [llarp::routing::IMessage::Clear](Classes/structllarp_1_1routing_1_1IMessage.md#function-clear)


### function Sign

```cpp
bool Sign(
    const llarp::SecretKey & sk
)
```

populates I and signs 

### function Verify

```cpp
bool Verify() const
```


### function BEncode

```cpp
virtual bool BEncode(
    llarp_buffer_t * buf
) const override
```


**Reimplements**: [llarp::routing::IMessage::BEncode](Classes/structllarp_1_1routing_1_1IMessage.md#function-bencode)


### function DecodeKey

```cpp
virtual bool DecodeKey(
    const llarp_buffer_t & key,
    llarp_buffer_t * buf
) override
```


**Reimplements**: [llarp::routing::IMessage::DecodeKey](Classes/structllarp_1_1routing_1_1IMessage.md#function-decodekey)


### function HandleMessage

```cpp
virtual bool HandleMessage(
    IMessageHandler * h,
    AbstractRouter * r
) const override
```


**Reimplements**: [llarp::routing::IMessage::HandleMessage](Classes/structllarp_1_1routing_1_1IMessage.md#function-handlemessage)


## Public Attributes Documentation

### variable B

```cpp
std::vector< llarp::exit::Policy > B;
```


### variable E

```cpp
uint64_t E {0};
```


### variable I

```cpp
llarp::PubKey I;
```


### variable T

```cpp
uint64_t T {0};
```


### variable W

```cpp
std::vector< llarp::exit::Policy > W;
```


### variable X

```cpp
uint64_t X {0};
```


### variable Z

```cpp
llarp::Signature Z;
```


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

Updated on 2022-11-17 at 22:27:42 +0000