FOpDecl¶
Cross-module registry for RPC handlers. Each handler is registered
with an FOpDecl — a small metadata block — so the dispatcher can
categorise ops without a hardcoded list, and clients can introspect
the schema at runtime via the meta op.
URLabEditor's StartupModule registers editor-only handlers; the
dispatcher's static block registers manager-required ones.
FURLabRpcDispatcher::Dispatch looks up an FOpDecl by name and routes.
Cooked builds: editor-only handlers don't register, every editor-only
op replies not_in_editor because the registry has no entry.
/
namespace URLabOpRegistry
{
/ Op category. Drives dispatcher routing decisions:
- EditorOnly: requires WITH_EDITOR; replies not_in_editor otherwise.
- ManagerRequired: needs an active AAMjManager (PIE running).
- NoManager: always available (hello, set_mode, etc). */
enum class EOpCategory : uint8
{
EditorOnly,
ManagerRequired,
NoManager
};
using FHandler = TFunctionBody is the handler; Category is consulted
by the dispatcher; Namespace drives Python-side method routing
(URLabClient.<namespace>.<name>). RequiredFields is checked
declaratively in FURLabRpcDispatcher::Dispatch before the
handler runs — missing fields fail with missing_field.
ReplyFields carries one entry per field the *_ok reply emits.
Encoding: "name:type" with an optional "?" suffix for fields
that may be absent. Types are wire-shape names: string, int,
float, bool, array, object. The Python stub generator
uses this to emit return-type signatures.
| Attribute | Value |
|---|---|
| Kind | Struct |
Properties¶
Public Properties¶
| Property | Type | Description |
|---|---|---|
Name |
FString |
|
Category |
EOpCategory |
|
Namespace |
FString |
|
empty |
`` | |
RequiredFields |
TArray<FString> |
|
ReplyFields |
TArray<FString> |
Name¶
- Type: FString
Category¶
- Type: EOpCategory
Namespace¶
- Type: FString
empty¶
- Type:
RequiredFields¶
- Type: TArray
ReplyFields¶
- Type: TArray