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

> PubSubTransport frontend that delegates to a shared InMemoryPubSubSession.

PubSubTransport frontend that delegates to a shared [InMemoryPubSubSession](inmemorypubsubsession).

Each instance maintains its own per-participant connection state while forwarding send operations to the shared InMemoryTransport backend.

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

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

This class is marked final.

---

## Constructors

### SessionTransportFrontend \[#sessiontransportfrontend]

```cpp showLineNumbers={false}
holoscan::SessionTransportFrontend::SessionTransportFrontend(
    std::shared_ptr<InMemoryPubSubSession> session,
    std::shared_ptr<InMemorySessionParticipant> participant
)
```

---

## Methods

### initialize \[#initialize]

```cpp showLineNumbers={false}
nvidia::gxf::Expected<void> holoscan::SessionTransportFrontend::initialize() override
```

### shutdown \[#shutdown]

```cpp showLineNumbers={false}
nvidia::gxf::Expected<void> holoscan::SessionTransportFrontend::shutdown() override
```

### is\_initialized \[#isinitialized]

```cpp showLineNumbers={false}
bool holoscan::SessionTransportFrontend::is_initialized() const override
```

### transport\_model \[#transportmodel]

```cpp showLineNumbers={false}
nvidia::gxf::TransportModel holoscan::SessionTransportFrontend::transport_model() const override
```

### native\_topic\_matching \[#nativetopicmatching]

```cpp showLineNumbers={false}
bool holoscan::SessionTransportFrontend::native_topic_matching() const override
```

### native\_qos\_enforcement \[#nativeqosenforcement]

```cpp showLineNumbers={false}
bool holoscan::SessionTransportFrontend::native_qos_enforcement() const override
```

### supports\_multicast \[#supportsmulticast]

```cpp showLineNumbers={false}
bool holoscan::SessionTransportFrontend::supports_multicast() const override
```

### requires\_explicit\_connections \[#requiresexplicitconnections]

```cpp showLineNumbers={false}
bool holoscan::SessionTransportFrontend::requires_explicit_connections() const override
```

### connect\_to \[#connectto]

```cpp showLineNumbers={false}
nvidia::gxf::Expected<void> holoscan::SessionTransportFrontend::connect_to(
    const nvidia::gxf::EndpointInfo &remote_endpoint
) override
```

### disconnect\_from \[#disconnectfrom]

```cpp showLineNumbers={false}
nvidia::gxf::Expected<void> holoscan::SessionTransportFrontend::disconnect_from(
    const nvidia::gxf::Gid &remote_gid
) override
```

### is\_connected\_to \[#isconnectedto]

```cpp showLineNumbers={false}
bool holoscan::SessionTransportFrontend::is_connected_to(
    const nvidia::gxf::Gid &remote_gid
) const override
```

### send \[#send]

#### Overload 1

```cpp showLineNumbers={false}
nvidia::gxf::Expected<void> holoscan::SessionTransportFrontend::send(
    const nvidia::gxf::Gid &destination_gid,
    const std::vector<uint8_t> &payload,
    const nvidia::gxf::MessageMetadata &metadata
) override
```

#### Overload 2

```cpp showLineNumbers={false}
nvidia::gxf::Expected<void> holoscan::SessionTransportFrontend::send(
    const nvidia::gxf::Gid &destination_gid,
    std::vector<uint8_t> &&payload,
    const nvidia::gxf::MessageMetadata &metadata
) override
```

### set\_on\_receive \[#setonreceive]

```cpp showLineNumbers={false}
void holoscan::SessionTransportFrontend::set_on_receive(
    nvidia::gxf::PubSubTransport::ReceiveCallback callback
) override
```

### set\_on\_connection\_established \[#setonconnectionestablished]

```cpp showLineNumbers={false}
void holoscan::SessionTransportFrontend::set_on_connection_established(
    nvidia::gxf::PubSubTransport::ConnectionEstablishedCallback callback
) override
```

### set\_on\_connection\_lost \[#setonconnectionlost]

```cpp showLineNumbers={false}
void holoscan::SessionTransportFrontend::set_on_connection_lost(
    nvidia::gxf::PubSubTransport::ConnectionLostCallback callback
) override
```

### get\_send\_queue\_size \[#getsendqueuesize]

```cpp showLineNumbers={false}
size_t holoscan::SessionTransportFrontend::get_send_queue_size() const override
```

### get\_receive\_queue\_size \[#getreceivequeuesize]

```cpp showLineNumbers={false}
size_t holoscan::SessionTransportFrontend::get_receive_queue_size() const override
```

### get\_connection\_count \[#getconnectioncount]

```cpp showLineNumbers={false}
size_t holoscan::SessionTransportFrontend::get_connection_count() const override
```

---

## Member variables

| Name           | Type                                                                | Description |
| -------------- | ------------------------------------------------------------------- | ----------- |
| `session_`     | `std::shared_ptr< InMemoryPubSubSession >`                          |             |
| `participant_` | `std::shared_ptr< InMemorySessionParticipant >`                     |             |
| `mutex_`       | `std::mutex`                                                        |             |
| `connections_` | `std::unordered_map< nvidia::gxf::Gid, nvidia::gxf::EndpointInfo >` |             |
| `initialized_` | `std::atomic< bool >`                                               |             |