> 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::AnnotatedDoubleBufferReceiver

> AnnotatedDoubleBufferReceiver class tracks every received message with a MessageLabel timestamp.

`AnnotatedDoubleBufferReceiver` class tracks every received message with a [MessageLabel](messagelabel) timestamp.

[Application](application) authors are not expected to use this class directly. It will be automatically configured for input ports specified via [`Operator::setup`](gpuresidentoperator#setup) when data flow tracking is enabled.

\==Parameters==

See [DoubleBufferReceiver](doublebufferreceiver) for more details.

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

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

---

## Constructors

### AnnotatedDoubleBufferReceiver \[#annotateddoublebufferreceiver]

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

---

## Methods

### receive\_abi \[#receiveabi]

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

This function overrides the DoubleBufferReceiver::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]

#### Overload 1

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

#### Overload 2

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

Sets the associated operator for this `AnnotatedDoubleBufferReceiver`.

It is set at the

**Parameters**

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

The operator that this receiver is attached to.

---

**See also:**
create\_input\_port() function.

---

## Member variables

| Name  | Type                   | Description                                     |
| ----- | ---------------------- | ----------------------------------------------- |
| `op_` | `holoscan::Operator *` | The operator that this receiver is attached to. |