> This page is for version 4.3.
> For other versions, use one of these documentation indexes:
> - 4.6 (Latest) (default): https://docs.nvidia.com/holoscan/sdk-user-guide/4-6-latest/llms.txt
> - ltsb-2.0: https://docs.nvidia.com/holoscan/sdk-user-guide/ltsb-2-0/llms.txt
> - 4.5: https://docs.nvidia.com/holoscan/sdk-user-guide/4-5/llms.txt
> - 4.4: https://docs.nvidia.com/holoscan/sdk-user-guide/4-4/llms.txt
> - 4.3: https://docs.nvidia.com/holoscan/sdk-user-guide/4-3/llms.txt
> - Archives: https://docs.nvidia.com/holoscan/sdk-user-guide/archives/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/holoscan/sdk-user-guide/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/holoscan/sdk-user-guide/_mcp/server.

# holoscan::HoloscanAsyncBufferReceiver

> HoloscanAsyncBufferReceiver class tracks every received message with a MessageLabel timestamp if data flow tracking is enabled.

`HoloscanAsyncBufferReceiver` class tracks every received message with a [MessageLabel](messagelabel) timestamp if data flow tracking is enabled.

[Application](application) authors are not expected to use this class directly.

```cpp showLineNumbers={false}
#include <holoscan/holoscan_async_buffer_receiver.hpp>
```

**Inherits from:** `nvidia::gxf::AsyncBufferReceiver` (public)

---

## Constructors

### HoloscanAsyncBufferReceiver \[#holoscanasyncbufferreceiver]

```cpp showLineNumbers={false}
holoscan::HoloscanAsyncBufferReceiver::HoloscanAsyncBufferReceiver() = default
```

---

## Methods

### receive_abi \[#receiveabi]

```cpp showLineNumbers={false}
gxf_result_t holoscan::HoloscanAsyncBufferReceiver::receive_abi(
    gxf_uid_t *uid
) override
```

This function overrides the AsyncBufferReceiver::receive_abi() function.

It first calls the base class' receive_abi() function and extracts the [MessageLabel](messagelabel) from the received message. It then adds a new [OperatorTimestampLabel](../structs/operatortimestamplabel) to the [MessageLabel](messagelabel) and updates the [Operator](operator)'s input message label.

### op \[#op]

#### Mutable

```cpp showLineNumbers={false}
void holoscan::HoloscanAsyncBufferReceiver::op(
    holoscan::Operator *op
)
```

Sets the associated operator for this `HoloscanAsyncBufferReceiver`.

It is set at the

**Parameters**

**`op`** `holoscan::Operator *`

The operator that this receiver is attached to.

---

**See also:**
create_input_port() function.

#### Const

const

```cpp showLineNumbers={false}
holoscan::Operator * holoscan::HoloscanAsyncBufferReceiver::op() const
```

### track \[#track]

```cpp showLineNumbers={false}
void holoscan::HoloscanAsyncBufferReceiver::track()
```

---

## Member variables

| Name                 | Type                   | Description                                              |
| -------------------- | ---------------------- | -------------------------------------------------------- |
| `op_`                | `holoscan::Operator *` | The operator that this receiver is attached to.          |
| `tracking_`          | `bool`                 | Used to decide whether to use data flow tracking or not. |
| `last_received_uid_` | `gxf_uid_t`            | The last received message UID.                           |