Skip to content

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 = TFunction(const TSharedPtr\&)>; / One registered op. Body 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