UURLabRpcTransport¶
Abstract base for request/reply transports owned by the bridge.
UObject-only (NOT UActorComponent) so transports live and die with
the bridge regardless of PIE state.
Concrete transports (UURLabZmqRpcTransport, UURLabShmRpcTransport)
own their own worker thread + transport handles. They implement:
- TransportInit / TransportShutdown: bind/release handles.
- The poll loop hands raw bytes to ProcessRequestBytes and ships
the encoded reply bytes back to the wire.
Bytes-in / bytes-out is shared on this base: msgpack-or-JSON detect,
dispatcher resolution, dispatch, reply encoding. Lives here so every
concrete transport gets the same wire framing without duplication.
| Attribute | Value |
|---|---|
| Kind | Class |
| UE Macro | UCLASS |
| Inherits | UObject |
Functions¶
Public Functions¶
General¶
| Function | Returns | Description |
|---|---|---|
SetOwningBridge() |
void | Bridge that owns this transport. Set once at construction by the |
TransportInit() |
bool |
Bind sockets / mmap regions / start the worker thread. Returns |
TransportShutdown() |
void | Stop the worker thread, release handles. Idempotent. |
GetTransportName() |
FString |
Human-readable transport name for logs ("zmq" / "shm" / future |
AcceptsEditorOps() |
bool |
Categorisation: does this transport accept editor-only ops? |
ProcessRequestBytes() |
bool |
Shared request handler. Concrete transports call this from their |
ResolveDispatcher() |
FURLabRpcDispatcher* | Resolve the live dispatcher. Always goes through the owning |
SetOwningBridge¶
Bridge that owns this transport. Set once at construction by the
- Signature:
SetOwningBridge(UURLabBridgeServer* Bridge)
TransportInit¶
Bind sockets / mmap regions / start the worker thread. Returns
- Signature:
TransportInit() - Returns: bool
TransportShutdown¶
Stop the worker thread, release handles. Idempotent.
- Signature:
TransportShutdown()
GetTransportName¶
Human-readable transport name for logs ("zmq" / "shm" / future
- Signature:
GetTransportName() - Returns: FString
AcceptsEditorOps¶
Categorisation: does this transport accept editor-only ops?
- Signature:
AcceptsEditorOps() - Returns: bool
ProcessRequestBytes¶
Shared request handler. Concrete transports call this from their
- Signature:
ProcessRequestBytes(const TArray<uint8>&InBytes,TArray<uint8>&OutReplyBytes) - Returns: bool
ResolveDispatcher¶
Resolve the live dispatcher. Always goes through the owning
- Signature:
ResolveDispatcher() - Returns: FURLabRpcDispatcher*