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

> Adapter that bridges Holoscan's StdEntitySerializer with GXF's PubSubEntitySerializer.

Adapter that bridges Holoscan's [StdEntitySerializer](stdentityserializer) with GXF's PubSubEntitySerializer.

`StdPubSubEntitySerializer` wraps a Holoscan [`StdEntitySerializer`](stdentityserializer) (which uses [`SerializationBuffer`](serializationbuffer)) and presents it via the GXF `PubSubEntitySerializer` interface (which works with `std::vector<uint8_t>`).

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

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

This class is marked

final

.

---

## Constructors

### StdPubSubEntitySerializer \[#stdpubsubentityserializer]

```cpp showLineNumbers={false}
holoscan::StdPubSubEntitySerializer::StdPubSubEntitySerializer(
    std::shared_ptr<StdEntitySerializer> serializer,
    std::shared_ptr<SerializationBuffer> serialize_buffer,
    std::shared_ptr<SerializationBuffer> deserialize_buffer,
    size_t buffer_size
)
```

---

## Methods

### serialize \[#serialize]

```cpp showLineNumbers={false}
nvidia::gxf::Expected<std::vector<uint8_t>> holoscan::StdPubSubEntitySerializer::serialize(
    nvidia::gxf::Entity entity,
    nvidia::gxf::Handle<nvidia::gxf::Allocator> allocator = nvidia::gxf::Handle<nvidia::gxf::Allocator>()
) override
```

### deserialize \[#deserialize]

```cpp showLineNumbers={false}
nvidia::gxf::Expected<nvidia::gxf::Entity> holoscan::StdPubSubEntitySerializer::deserialize(
    const std::vector<uint8_t> &data,
    gxf_context_t context,
    nvidia::gxf::Handle<nvidia::gxf::Allocator> allocator
) override
```

### estimate\_size \[#estimatesize]

```cpp showLineNumbers={false}
size_t holoscan::StdPubSubEntitySerializer::estimate_size(
    nvidia::gxf::Entity entity
) override
```

### name \[#name]

```cpp showLineNumbers={false}
const char * holoscan::StdPubSubEntitySerializer::name() const override
```

---

## Member variables

| Name                  | Type                                     | Description |
| --------------------- | ---------------------------------------- | ----------- |
| `serializer_`         | `std::shared_ptr< StdEntitySerializer >` |             |
| `serialize_buffer_`   | `std::shared_ptr< SerializationBuffer >` |             |
| `deserialize_buffer_` | `std::shared_ptr< SerializationBuffer >` |             |
| `buffer_size_`        | `size_t`                                 |             |
| `mutex_`              | `std::mutex`                             |             |