---
title: llarp::layers::flow::FlowIdentity
summary: the local end of a one to one flow to a remote. 

---

# llarp::layers::flow::FlowIdentity



the local end of a one to one flow to a remote.  [More...](#detailed-description)


`#include <flow_identity.hpp>`

## Public Functions

|                | Name           |
| -------------- | -------------- |
| | **[FlowIdentity](Classes/classllarp_1_1layers_1_1flow_1_1FlowIdentity.md#function-flowidentity)**(const [FlowIdentity](Classes/classllarp_1_1layers_1_1flow_1_1FlowIdentity.md) & ) =delete |
| | **[FlowIdentity](Classes/classllarp_1_1layers_1_1flow_1_1FlowIdentity.md#function-flowidentity)**([FlowIdentity](Classes/classllarp_1_1layers_1_1flow_1_1FlowIdentity.md) && ) =delete |
| | **[FlowIdentity](Classes/classllarp_1_1layers_1_1flow_1_1FlowIdentity.md#function-flowidentity)**([FlowLayer](Classes/classllarp_1_1layers_1_1flow_1_1FlowLayer.md) & parent, [FlowAddr](Classes/classllarp_1_1layers_1_1flow_1_1FlowAddr.md) remote_addr, [FlowTag](Classes/structllarp_1_1layers_1_1flow_1_1FlowTag.md) flow_tag, const [FlowIdentityPrivateKeys](Classes/structllarp_1_1layers_1_1flow_1_1FlowIdentityPrivateKeys.md) & local_keys) |
| void | **[async_ensure_flow](Classes/classllarp_1_1layers_1_1flow_1_1FlowIdentity.md#function-async-ensure-flow)**([FlowEstablish](Classes/classllarp_1_1layers_1_1flow_1_1FlowEstablish.md) handshaker)<br>ensure we have a flow to the remote endpoint.  |
| void | **[send_to_remote](Classes/classllarp_1_1layers_1_1flow_1_1FlowIdentity.md#function-send-to-remote)**(std::vector< byte_t > dataum, FlowDataKind kind)<br>send flow traffic to the remote.  |
| bool | **[operator==](Classes/classllarp_1_1layers_1_1flow_1_1FlowIdentity.md#function-operator==)**(const [FlowIdentity](Classes/classllarp_1_1layers_1_1flow_1_1FlowIdentity.md) & other) const |

## Public Attributes

|                | Name           |
| -------------- | -------------- |
| const [FlowInfo](Classes/structllarp_1_1layers_1_1flow_1_1FlowInfo.md) | **[flow_info](Classes/classllarp_1_1layers_1_1flow_1_1FlowIdentity.md#variable-flow-info)**  |

## Detailed Description

```cpp
class llarp::layers::flow::FlowIdentity;
```

the local end of a one to one flow to a remote. 

flows do not change their source/destination address or their convotag. note: historically path handovers were allowed, but going forward this is discontinued. 

## Public Functions Documentation

### function FlowIdentity

```cpp
FlowIdentity(
    const FlowIdentity & 
) =delete
```


### function FlowIdentity

```cpp
FlowIdentity(
    FlowIdentity && 
) =delete
```


### function FlowIdentity

```cpp
FlowIdentity(
    FlowLayer & parent,
    FlowAddr remote_addr,
    FlowTag flow_tag,
    const FlowIdentityPrivateKeys & local_keys
)
```


### function async_ensure_flow

```cpp
void async_ensure_flow(
    FlowEstablish handshaker
)
```

ensure we have a flow to the remote endpoint. 

pass in a handshaker to do any additional steps after establishment. 


### function send_to_remote

```cpp
void send_to_remote(
    std::vector< byte_t > dataum,
    FlowDataKind kind
)
```

send flow traffic to the remote. 

### function operator==

```cpp
bool operator==(
    const FlowIdentity & other
) const
```


## Public Attributes Documentation

### variable flow_info

```cpp
const FlowInfo flow_info;
```


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

Updated on 2023-03-06 at 20:36:34 +0000