Skip to content

UURLabBridgeServer

Owns the FURLabRpcDispatcher and every RPC transport.

Bridge-owned transports are the single source of truth: the editor subsystem owns one UURLabBridgeServer across PIE cycles, the cooked path owns one per AAMjManager. Both call EnsureZmqBound / EnsureShmBound to bring up the wire — the bridge NewObjects the concrete transport, sets the owning-bridge weak ref, calls TransportInit, and stores it in RpcTransports.

Attribute Value
Kind Class
UE Macro UCLASS
Inherits UObject

Properties

Private Properties

Property Type Description
RpcTransports TArray<TObjectPtr<UURLabRpcTransport>> Every bound RPC transport. Survives PIE transitions. Transient so

RpcTransports

Every bound RPC transport. Survives PIE transitions. Transient so

Functions

Public Functions

General

Function Returns Description
Start() void Construct the dispatcher and optionally bind a ZMQ REP listener.
Stop() void Tear down the dispatcher and every transport. Idempotent.
EnsureZmqBound() bool Bind a ZMQ REP listener if not already bound on Endpoint.
EnsureShmBound() bool Open req.shm / rep.shm under SessionId if not already open.
GetDispatcher() FURLabRpcDispatcher* Dispatcher when running, nullptr otherwise.
IsOwnedByManager() bool True when AAMjManager owns this server (cooked path, or editor
RegisterManager() void Called from AAMjManager BeginPlay / EndPlay so the dispatcher can
GetActiveManager() AAMjManager* Live PIE manager when one is registered, nullptr otherwise.
GetRpcTransports() const TArray<TObjectPtr<UURLabRpcTransport>>& Bridge-owned RPC transports. Exposed for tests; production code
Start

Construct the dispatcher and optionally bind a ZMQ REP listener.

  • Signature: Start(const FString& StepEndpoint)
Stop

Tear down the dispatcher and every transport. Idempotent.

  • Signature: Stop()
EnsureZmqBound

Bind a ZMQ REP listener if not already bound on Endpoint.

  • Signature: EnsureZmqBound(const FString& Endpoint)
  • Returns: bool
EnsureShmBound

Open req.shm / rep.shm under SessionId if not already open.

  • Signature: EnsureShmBound(const FString& SessionId)
  • Returns: bool
GetDispatcher

Dispatcher when running, nullptr otherwise.

IsOwnedByManager

True when AAMjManager owns this server (cooked path, or editor

  • Signature: IsOwnedByManager()
  • Returns: bool
RegisterManager

Called from AAMjManager BeginPlay / EndPlay so the dispatcher can

GetActiveManager

Live PIE manager when one is registered, nullptr otherwise.

GetRpcTransports

Bridge-owned RPC transports. Exposed for tests; production code