UURLabPublishTransport¶
Abstract base for server -> client streaming transports.
Folds in the small / frequent / single-socket publish shape today
spread across UURLabShmPublishTransport, UURLabZmqPublishTransport,
and other state-stream producers. Future ROS analogue:
rclcpp::Publisher.
Per-camera image streaming is INTENTIONALLY out of scope. Camera
workers (FCameraZmqWorker) keep their dedicated per-camera thread
+ socket because GPU readback + large compressed payloads + per-camera
lifetime don't fit a shared Publish(topic, bytes) shape.
Threading: each concrete transport owns its own concurrency (per-
socket lock for ZMQ; lock-free SPSC ring for SHM single-producer
snapshots). The base class declares Publish abstract; subclasses
pick a synchronisation primitive that matches their backend.
| Attribute | Value |
|---|---|
| Kind | Class |
| UE Macro | UCLASS |
| Inherits | UObject |
Functions¶
Public Functions¶
General¶
| Function | Returns | Description |
|---|---|---|
Publish() |
void | Publish Payload on Topic. Backends interpret the topic in |
RegisterTopic() |
void | Optional advance-advertise hook. ROS publishers need to be |
TransportInit() |
bool |
Bind / open backend handles. Returns false on failure. |
TransportShutdown() |
void | Stop producers, release handles. Idempotent. |
PreStep() |
void | Runs before mj_step() on the physics thread. |
PostStep() |
void | Runs after mj_step() on the physics thread. |
Publish¶
Publish
PayloadonTopic. Backends interpret the topic in
- Signature:
Publish(const FString&Topic,const TArray<uint8>&Payload)
RegisterTopic¶
Optional advance-advertise hook. ROS publishers need to be
- Signature:
RegisterTopic(const FString/Topic/,const FString/Schema/)
TransportInit¶
Bind / open backend handles. Returns false on failure.
- Signature:
TransportInit() - Returns: bool
PreStep¶
Runs before mj_step() on the physics thread.
- Signature:
PreStep(struct mjModel_/m/,struct mjData_/d/)
PostStep¶
Runs after mj_step() on the physics thread.
- Signature:
PostStep(struct mjModel_/m/,struct mjData_/d/)