跳转至

GFPlatformRuntime

API Reference / Standard / 类索引

  • 路径:addons/gf/standard/platform/gf_platform_runtime.gd
  • 模块:Standard
  • 继承:GFUtility
  • API:public
  • 类别:运行时服务 (runtime_service)
  • 首次版本:9.0.0

平台 adapter 注册、路由与请求生命周期服务。 运行时允许多个外部 adapter 共存,但不会在同一契约存在多个候选时按注册顺序 猜测实现。项目必须通过 set_contract_route 显式消除歧义。

成员概览

类型 名称 签名
信号 adapter_registered signal adapter_registered(adapter_id: StringName)
信号 adapter_unregistered signal adapter_unregistered(adapter_id: StringName)
信号 adapter_state_changed signal adapter_state_changed(adapter_id: StringName, previous_state: int, current_state: int)
信号 context_changed signal context_changed(adapter_id: StringName, context: GFPlatformRuntimeContext)
信号 lifecycle_event signal lifecycle_event(adapter_id: StringName, event: GFPlatformLifecycleEvent)
信号 request_started signal request_started(adapter_id: StringName, request: GFPlatformBridgeRequest)
信号 request_completed signal request_completed(adapter_id: StringName, result: GFPlatformBridgeResult)
方法 ready func ready() -> void:
方法 tick func tick(delta: float) -> void:
方法 dispose func dispose() -> void:
方法 set_clock func set_clock(clock: GFClock) -> bool:
方法 get_clock func get_clock() -> GFClock:
方法 register_adapter func register_adapter(adapter: GFPlatformAdapter) -> bool:
方法 unregister_adapter func unregister_adapter(adapter_id: StringName, shutdown_adapter: bool = true) -> bool:
方法 initialize_adapter func initialize_adapter(adapter_id: StringName, options: Dictionary = {}) -> GFAsyncCompletion:
方法 set_contract_route func set_contract_route(contract_id: StringName, adapter_id: StringName) -> bool:
方法 clear_contract_route func clear_contract_route(contract_id: StringName) -> bool:
方法 get_contract_route func get_contract_route(contract_id: StringName) -> StringName:
方法 invoke func invoke( request: GFPlatformBridgeRequest, adapter_id: StringName = &"" ) -> GFPlatformRequestHandle:
方法 invoke_contract func invoke_contract( contract_id: StringName, method_id: StringName, payload: Dictionary = {}, options: Dictionary = {} ) -> GFPlatformRequestHandle:
方法 cancel_request func cancel_request(request_id: StringName, reason: StringName = &"cancelled") -> bool:
方法 get_adapter_ids func get_adapter_ids() -> PackedStringArray:
方法 get_context func get_context(adapter_id: StringName) -> GFPlatformRuntimeContext:
方法 has_capability func has_capability(capability_id: StringName, adapter_id: StringName = &"") -> bool:
方法 get_debug_snapshot func get_debug_snapshot() -> Dictionary:

信号

adapter_registered

  • API:public
  • 首次版本:9.0.0
signal adapter_registered(adapter_id: StringName)

Adapter 注册后发出。

参数:

名称 说明
adapter_id Adapter ID。

adapter_unregistered

  • API:public
  • 首次版本:9.0.0
signal adapter_unregistered(adapter_id: StringName)

Adapter 注销后发出。

参数:

名称 说明
adapter_id Adapter ID。

adapter_state_changed

  • API:public
  • 首次版本:9.0.0
signal adapter_state_changed(adapter_id: StringName, previous_state: int, current_state: int)

Adapter 状态变化后转发。

参数:

名称 说明
adapter_id Adapter ID。
previous_state 变化前状态。
current_state 变化后状态。

context_changed

  • API:public
  • 首次版本:9.0.0
signal context_changed(adapter_id: StringName, context: GFPlatformRuntimeContext)

Adapter 上下文变化后转发。

参数:

名称 说明
adapter_id Adapter ID。
context 平台上下文副本。

lifecycle_event

  • API:public
  • 首次版本:9.0.0
signal lifecycle_event(adapter_id: StringName, event: GFPlatformLifecycleEvent)

Adapter 生命周期事件转发。

参数:

名称 说明
adapter_id Adapter ID。
event 生命周期事件副本。

request_started

  • API:public
  • 首次版本:9.0.0
signal request_started(adapter_id: StringName, request: GFPlatformBridgeRequest)

请求交给 adapter 前发出。

参数:

名称 说明
adapter_id 已解析的 Adapter ID;路由失败时为空。
request 请求副本。

request_completed

  • API:public
  • 首次版本:9.0.0
signal request_completed(adapter_id: StringName, result: GFPlatformBridgeResult)

请求进入终态后发出。

参数:

名称 说明
adapter_id 处理请求的 Adapter ID;路由失败时为空。
result 请求终态结果副本。

方法

ready

  • API:public
  • 首次版本:9.0.0
func ready() -> void:

在架构中自动采用已注册 GFTimeProvider 的底层时钟。 通过构造函数或 set_clock() 显式注入后不会被自动覆盖。

tick

  • API:public
  • 首次版本:9.0.0
func tick(delta: float) -> void:

推进 adapter callback pump 并处理请求超时。

参数:

名称 说明
delta 引擎原始帧间隔。

dispose

  • API:public
  • 首次版本:9.0.0
func dispose() -> void:

取消全部请求、注销 adapter 并关闭平台资源。

set_clock

  • API:public
  • 首次版本:9.0.0
func set_clock(clock: GFClock) -> bool:

设置平台请求截止时间与结果耗时使用的统一单调时钟。 存在等待请求时拒绝替换,避免绝对截止值跨越两个时间域。

参数:

名称 说明
clock 新平台时钟。

返回:时钟合法且当前没有等待请求时返回 true。

get_clock

  • API:public
  • 首次版本:9.0.0
func get_clock() -> GFClock:

获取当前平台时钟。

返回:当前时钟。

register_adapter

  • API:public
  • 首次版本:9.0.0
func register_adapter(adapter: GFPlatformAdapter) -> bool:

注册平台 adapter。 注册只建立候选关系,不自动初始化 adapter,也不在冲突候选间建立隐式优先级。

参数:

名称 说明
adapter 已配置的外部平台 adapter。

返回:注册成功返回 true。

unregister_adapter

  • API:public
  • 首次版本:9.0.0
func unregister_adapter(adapter_id: StringName, shutdown_adapter: bool = true) -> bool:

注销平台 adapter。 该 adapter 的等待请求会先进入 adapter_unregistered 取消终态,显式路由也会清除。

参数:

名称 说明
adapter_id Adapter ID。
shutdown_adapter 是否关闭 adapter 底层资源。

返回:找到并注销返回 true。

initialize_adapter

  • API:public
  • 首次版本:9.0.0
func initialize_adapter(adapter_id: StringName, options: Dictionary = {}) -> GFAsyncCompletion:

初始化指定 adapter。

参数:

名称 说明
adapter_id Adapter ID。
options Adapter 定义的初始化选项。

返回:初始化完成源;adapter 不存在时立即失败。

结构:

  • options: Dictionary adapter-defined initialization options.

set_contract_route

  • API:public
  • 首次版本:9.0.0
func set_contract_route(contract_id: StringName, adapter_id: StringName) -> bool:

为桥接契约设置显式 adapter 路由。

参数:

名称 说明
contract_id 桥接契约 ID。
adapter_id 必须声明支持该契约的 Adapter ID。

返回:路由有效并写入成功返回 true。

clear_contract_route

  • API:public
  • 首次版本:9.0.0
func clear_contract_route(contract_id: StringName) -> bool:

清除桥接契约显式路由。

参数:

名称 说明
contract_id 桥接契约 ID。

返回:找到并清除返回 true。

get_contract_route

  • API:public
  • 首次版本:9.0.0
func get_contract_route(contract_id: StringName) -> StringName:

获取桥接契约当前显式路由。

参数:

名称 说明
contract_id 桥接契约 ID。

返回:Adapter ID;未设置返回空。

invoke

  • API:public
  • 首次版本:9.0.0
func invoke( request: GFPlatformBridgeRequest, adapter_id: StringName = &"" ) -> GFPlatformRequestHandle:

提交完整平台桥接请求。 adapter_id 非空时优先使用指定 adapter;否则使用显式路由;只有恰好一个 候选时才允许自动解析。

参数:

名称 说明
request 完整桥接请求。
adapter_id 可选显式 Adapter ID。

返回:一次性请求句柄;所有输入和路由失败也返回终态句柄。

invoke_contract

  • API:public
  • 首次版本:9.0.0
func invoke_contract( contract_id: StringName, method_id: StringName, payload: Dictionary = {}, options: Dictionary = {} ) -> GFPlatformRequestHandle:

构建并提交平台桥接请求。

参数:

名称 说明
contract_id 桥接契约 ID。
method_id 方法 ID。
payload Adapter 定义的请求载荷。
options 可包含 adapter_id、request_id、timeout_msec 和 metadata。

返回:一次性请求句柄。

结构:

  • payload: Dictionary adapter-defined request payload.
  • options: Dictionary with optional adapter_id, request_id, timeout_msec, and metadata fields.

cancel_request

  • API:public
  • 首次版本:9.0.0
func cancel_request(request_id: StringName, reason: StringName = &"cancelled") -> bool:

取消等待中的请求。

参数:

名称 说明
request_id 请求 ID。
reason 取消原因。

返回:找到等待请求并首次取消返回 true。

get_adapter_ids

  • API:public
  • 首次版本:9.0.0
func get_adapter_ids() -> PackedStringArray:

获取注册的 Adapter ID。

返回:排序后的 Adapter ID。

get_context

  • API:public
  • 首次版本:9.0.0
func get_context(adapter_id: StringName) -> GFPlatformRuntimeContext:

获取 adapter 上下文副本。

参数:

名称 说明
adapter_id Adapter ID。

返回:上下文副本;adapter 不存在时返回 null。

has_capability

  • API:public
  • 首次版本:9.0.0
func has_capability(capability_id: StringName, adapter_id: StringName = &"") -> bool:

检查一个或任意已就绪 adapter 是否声明能力。

参数:

名称 说明
capability_id 能力 ID。
adapter_id 指定 Adapter ID;为空时查询全部 READY adapter。

返回:能力存在返回 true。

get_debug_snapshot

  • API:public
  • 首次版本:9.0.0
func get_debug_snapshot() -> Dictionary:

获取运行时调试快照。

返回:Adapter、路由和等待请求摘要。

结构:

  • return: Dictionary with adapters, contract_routes, and pending_request_count.