GFUIRouteResult¶
API Reference / Standard / 类索引
- 路径:
addons/gf/standard/utilities/ui/gf_ui_route_result.gd - 模块:
Standard - 继承:
RefCounted - API:
public - 类别:值对象 (
value_object) - 首次版本:
unreleased
UI 路由异步打开的不可变终态。 结果把路由校验、可选预加载、面板提交和生命周期中止统一为稳定状态, 并保留预加载事务结果,避免项目通过日志或时序猜测失败阶段。
成员概览¶
| 类型 | 名称 | 签名 |
|---|---|---|
| 常量 | STATUS_OPENED |
const STATUS_OPENED: StringName = &"opened" |
| 常量 | STATUS_MISSING_ROUTE |
const STATUS_MISSING_ROUTE: StringName = &"missing_route" |
| 常量 | STATUS_INVALID_ROUTE |
const STATUS_INVALID_ROUTE: StringName = &"invalid_route" |
| 常量 | STATUS_MISSING_UI_UTILITY |
const STATUS_MISSING_UI_UTILITY: StringName = &"missing_ui_utility" |
| 常量 | STATUS_MISSING_UI_LAYER |
const STATUS_MISSING_UI_LAYER: StringName = &"missing_ui_layer" |
| 常量 | STATUS_ASYNC_CONFLICT |
const STATUS_ASYNC_CONFLICT: StringName = &"async_conflict" |
| 常量 | STATUS_INVALID_PRELOAD_POLICY |
const STATUS_INVALID_PRELOAD_POLICY: StringName = &"invalid_preload_policy" |
| 常量 | STATUS_MISSING_ASSET_UTILITY |
const STATUS_MISSING_ASSET_UTILITY: StringName = &"missing_asset_utility" |
| 常量 | STATUS_PRELOAD_PLAN_FAILED |
const STATUS_PRELOAD_PLAN_FAILED: StringName = &"preload_plan_failed" |
| 常量 | STATUS_PRELOAD_FAILED |
const STATUS_PRELOAD_FAILED: StringName = &"preload_failed" |
| 常量 | STATUS_PANEL_FAILED |
const STATUS_PANEL_FAILED: StringName = &"panel_failed" |
| 常量 | STATUS_CANCELLED |
const STATUS_CANCELLED: StringName = &"cancelled" |
| 常量 | STATUS_DISPOSED |
const STATUS_DISPOSED: StringName = &"disposed" |
| 常量 | STATUS_OUTCOME_UNKNOWN |
const STATUS_OUTCOME_UNKNOWN: StringName = &"outcome_unknown" |
| 方法 | get_request_id |
func get_request_id() -> int: |
| 方法 | get_route_id |
func get_route_id() -> StringName: |
| 方法 | get_operation |
func get_operation() -> StringName: |
| 方法 | get_status |
func get_status() -> StringName: |
| 方法 | is_successful |
func is_successful() -> bool: |
| 方法 | get_reason |
func get_reason() -> StringName: |
| 方法 | get_layer |
func get_layer() -> int: |
| 方法 | get_panel |
func get_panel() -> Node: |
| 方法 | get_preload_policy |
func get_preload_policy() -> StringName: |
| 方法 | was_preload_attempted |
func was_preload_attempted() -> bool: |
| 方法 | was_preload_successful |
func was_preload_successful() -> bool: |
| 方法 | get_preload_plan_report |
func get_preload_plan_report() -> Dictionary: |
| 方法 | get_preload_result |
func get_preload_result() -> GFAssetLoadSessionResult: |
| 方法 | get_started_at_msec |
func get_started_at_msec() -> int: |
| 方法 | get_completed_at_msec |
func get_completed_at_msec() -> int: |
| 方法 | get_duration_msec |
func get_duration_msec() -> int: |
| 方法 | get_metadata |
func get_metadata() -> Dictionary: |
| 方法 | duplicate_result |
func duplicate_result() -> GFUIRouteResult: |
| 方法 | to_dict |
func to_dict() -> Dictionary: |
常量¶
STATUS_OPENED¶
- API:
public - 首次版本:
unreleased
面板已进入目标 UI 栈。
STATUS_MISSING_ROUTE¶
- API:
public - 首次版本:
unreleased
路由不存在。
STATUS_INVALID_ROUTE¶
- API:
public - 首次版本:
unreleased
路由资源无效。
STATUS_MISSING_UI_UTILITY¶
- API:
public - 首次版本:
unreleased
Router 无法获取 UI Utility。
STATUS_MISSING_UI_LAYER¶
- API:
public - 首次版本:
unreleased
路由目标逻辑层未注册。
STATUS_ASYNC_CONFLICT¶
- API:
public - 首次版本:
unreleased
同一路径、层级和操作已有不同路由请求。
STATUS_INVALID_PRELOAD_POLICY¶
- API:
public - 首次版本:
unreleased
预加载策略不受支持。
STATUS_MISSING_ASSET_UTILITY¶
- API:
public - 首次版本:
unreleased
预加载策略需要 Asset Utility,但当前架构未提供。
STATUS_PRELOAD_PLAN_FAILED¶
- API:
public - 首次版本:
unreleased
无法构建满足策略要求的预加载计划。
STATUS_PRELOAD_FAILED¶
- API:
public - 首次版本:
unreleased
资产预加载事务失败或回滚。
STATUS_PANEL_FAILED¶
- API:
public - 首次版本:
unreleased
面板资源加载、实例化或入栈失败。
STATUS_CANCELLED¶
- API:
public - 首次版本:
unreleased
底层 UI 请求在完成前被取消。
STATUS_DISPOSED¶
- API:
public - 首次版本:
unreleased
Router 在面板提交前释放,结果确定为未打开。
STATUS_OUTCOME_UNKNOWN¶
- API:
public - 首次版本:
unreleased
Router 在面板提交后释放,无法再可靠观察底层终态。
方法¶
get_request_id¶
- API:
public - 首次版本:
unreleased
获取 Router 内唯一请求 ID。
返回:大于零的请求 ID。
get_route_id¶
- API:
public - 首次版本:
unreleased
获取规范化路由 ID。
返回:本次请求的路由 ID。
get_operation¶
- API:
public - 首次版本:
unreleased
获取路由操作。
返回:GFUIRouteOperation.OPERATION_* 常量之一。
get_status¶
- API:
public - 首次版本:
unreleased
获取终态状态。
返回:STATUS_* 常量之一。
is_successful¶
- API:
public - 首次版本:
unreleased
检查路由是否成功打开。
返回:面板已进入目标 UI 栈时返回 true。
get_reason¶
- API:
public - 首次版本:
unreleased
获取稳定原因码。
返回:失败或尽力预加载降级原因;无原因时为空。
get_layer¶
- API:
public - 首次版本:
unreleased
获取目标逻辑层。
返回:有效路由的目标层;路由解析前失败时为 -1。
get_panel¶
- API:
public - 首次版本:
unreleased
获取仍存活的面板实例。
返回:成功面板;失败或面板已释放时返回 null。
get_preload_policy¶
- API:
public - 首次版本:
unreleased
获取本次请求的预加载策略。
返回:Router 接受或拒绝的策略标识。
was_preload_attempted¶
- API:
public - 首次版本:
unreleased
检查是否实际启动过资产预加载事务。
返回:已创建并启动预加载会话时返回 true。
was_preload_successful¶
- API:
public - 首次版本:
unreleased
检查预加载事务是否成功提交。
返回:会话进入 committed 终态时返回 true。
get_preload_plan_report¶
- API:
public - 首次版本:
unreleased
获取 JSON 安全的预加载规划报告副本。
返回:不包含 Resource 实例的规划摘要。
结构:
return: Dictionary with bounded route preload diagnostics and optional asset_plan_description.
get_preload_result¶
- API:
public - 首次版本:
unreleased
获取资产预加载事务结果副本。
返回:已完成会话的结果;未启动或尚未完成时返回 null。
get_started_at_msec¶
- API:
public - 首次版本:
unreleased
获取请求开始时间。
返回:单调时钟毫秒值。
get_completed_at_msec¶
- API:
public - 首次版本:
unreleased
获取请求完成时间。
返回:单调时钟毫秒值。
get_duration_msec¶
- API:
public - 首次版本:
unreleased
获取请求持续时间。
返回:非负毫秒数。
get_metadata¶
- API:
public - 首次版本:
unreleased
获取调用方元数据副本。
返回:async_options.metadata 的隔离副本。
结构:
return: Dictionary caller-defined route operation metadata.
duplicate_result¶
- API:
public - 首次版本:
unreleased
创建隔离结果副本。
返回:新结果对象。
to_dict¶
- API:
public - 首次版本:
unreleased
转换为可序列化诊断字典。
返回:请求身份、终态、预加载摘要和持续时间。
结构:
return: Dictionary with request_id, route_id, operation, status, ok, reason, layer, panel_instance_id, preload_policy, preload_attempted, preload_successful, preload_plan_report, preload_result, started_at_msec, completed_at_msec, duration_msec, and metadata.