---
title: llarp::layers::flow::FlowAddr
summary: a long form .snode or .loki address 

---

# llarp::layers::flow::FlowAddr



a long form .snode or .loki address 


`#include <flow_addr.hpp>`

## Public Types

|                | Name           |
| -------------- | -------------- |
| enum class uint8_t | **[Kind](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md#enum-kind)** { empty, snapp, snode}<br>tells us if this flow address is for .loki/.snode/etc  |
| using [AlignedBuffer](Classes/structllarp_1_1AlignedBuffer.md)< [size](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md#variable-size) > | **[backing_array_t](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md#using-backing-array-t)**  |

## Public Functions

|                | Name           |
| -------------- | -------------- |
| | **[FlowAddr](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md#function-flowaddr)**() |
| | **[FlowAddr](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md#function-flowaddr)**(std::string str)<br>construct from string  |
| | **[FlowAddr](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md#function-flowaddr)**([Kind](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md#enum-kind) k)<br>make an emtpy flow addr.  |
| | **[FlowAddr](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md#function-flowaddr)**([Kind](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md#enum-kind) k, const [backing_array_t](Classes/structllarp_1_1AlignedBuffer.md) & data)<br>address for this kind with raw data.  |
| | **[FlowAddr](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md#function-flowaddr)**(const [FlowAddr](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md) & ) =default |
| | **[FlowAddr](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md#function-flowaddr)**([FlowAddr](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md) && other) |
| [FlowAddr](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md) & | **[operator=](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md#function-operator=)**(const [FlowAddr](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md) & other) =default |
| [FlowAddr](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md) & | **[operator=](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md#function-operator=)**([FlowAddr](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md) && other) |
| std::string | **[ToString](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md#function-tostring)**() const |
| constexpr bool | **[operator==](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md#function-operator==)**(const [FlowAddr](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md) & other) const |
| constexpr auto | **[kind](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md#function-kind)**() const |
| constexpr | **[operator backing_array_t &](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md#function-operator-backing-array-t-&)**() |
| constexpr | **[operator const backing_array_t &](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md#function-operator-const-backing-array-t-&)**() const |
| constexpr std::array< byte_t, [size](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md#variable-size) > & | **[as_array](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md#function-as-array)**() |
| constexpr const std::array< byte_t, [size](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md#variable-size) > & | **[as_array](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md#function-as-array)**() const |
| constexpr | **[operator bool](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md#function-operator-bool)**() const |

## Public Attributes

|                | Name           |
| -------------- | -------------- |
| constexpr std::size_t | **[size](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md#variable-size)** <br>the size of the array holding raw address data.  |

## Public Types Documentation

### enum Kind

| Enumerator | Value | Description |
| ---------- | ----- | ----------- |
| empty | | monostate   |
| snapp | | for .loki   |
| snode | | for .snode   |



tells us if this flow address is for .loki/.snode/etc 

### using backing_array_t

```cpp
using llarp::layers::flow::FlowAddr::backing_array_t =  AlignedBuffer<size>;
```


## Public Functions Documentation

### function FlowAddr

```cpp
inline FlowAddr()
```


### function FlowAddr

```cpp
explicit FlowAddr(
    std::string str
)
```

construct from string 

### function FlowAddr

```cpp
explicit FlowAddr(
    Kind k
)
```

make an emtpy flow addr. 

### function FlowAddr

```cpp
FlowAddr(
    Kind k,
    const backing_array_t & data
)
```

address for this kind with raw data. 

### function FlowAddr

```cpp
FlowAddr(
    const FlowAddr & 
) =default
```


### function FlowAddr

```cpp
FlowAddr(
    FlowAddr && other
)
```


### function operator=

```cpp
FlowAddr & operator=(
    const FlowAddr & other
) =default
```


### function operator=

```cpp
FlowAddr & operator=(
    FlowAddr && other
)
```


### function ToString

```cpp
std::string ToString() const
```


### function operator==

```cpp
inline constexpr bool operator==(
    const FlowAddr & other
) const
```


### function kind

```cpp
inline constexpr auto kind() const
```


### function operator backing_array_t &

```cpp
inline explicit constexpr operator backing_array_t &()
```


### function operator const backing_array_t &

```cpp
inline explicit constexpr operator const backing_array_t &() const
```


### function as_array

```cpp
inline constexpr std::array< byte_t, size > & as_array()
```


### function as_array

```cpp
inline constexpr const std::array< byte_t, size > & as_array() const
```


### function operator bool

```cpp
inline constexpr operator bool() const
```


## Public Attributes Documentation

### variable size

```cpp
static constexpr std::size_t size = 32;
```

the size of the array holding raw address data. 

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

Updated on 2023-04-27 at 04:17:17 +0000