fuchsia.component.resolution

已新增:7

專家

解析器

定義於 fuchsia.component.resolution/resolver.fidl

解析元件網址的介面。

這個介面是由元件實作,可支援以特定網址配置載入元件。舉例來說,Fuchsia 套件元件解析器會公開使用這個介面的服務,以便使用「fuchsia-pkg://」配置來解析元件網址。

如要使用解析器解析領域中的網址,請在領域的資訊清單中註冊該解析器。

注意:元件管理員是這個介面的唯一直接用戶端。

解決

解析使用指定的絕對網址元件。

component_url 是要解析的元件未逸出網址。

如果成功,會傳回已解析元件的相關資訊。

失敗時,會傳回 ResolverError 錯誤。

要求

名稱類型
component_url string[2083]

回應

名稱類型
payload Resolver_Resolve_Result

ResolveWithContext

解析使用絕對網址或相對網址的元件。相對地,元件會根據提供的 context 解析。

component_url 是要解析的元件未逸出網址,其格式可以是:

  • 完整絕對元件網址;或
  • 子套件元件參照,前面加上其內含子套件的 URI 相對路徑 (例如 child_package#meta/some_component.cm)

context 是先前解析的 Componentresolution_context,提供還原相對網址的背景資訊。

要求

名稱類型
component_url string[2083]
context Context

回應

名稱類型
payload Resolver_ResolveWithContext_Result

結構

內容

定義於 fuchsia.component.resolution/component.fidl

元件解析結構定義,用於解析相對於其他元件的元件網址。背景資訊會儲存在位元組陣列中,並保留目標 Resolver 使用的值,藉此按照相對路徑 (例如子套件名稱) 找出並解析元件。

已新增:9

欄位類型說明預設
bytes vector<uint8>[8192] 無預設

Resolver_ResolveWithContext_Response 資源

定義於 fuchsia.component.resolution/resolver.fidl

欄位類型說明預設
component Component 無預設

Resolver_Resolve_Response 資源

定義於 fuchsia.component.resolution/resolver.fidl

欄位類型說明預設
component Component 無預設

表情符號

ResolverError strict

類型:uint32

定義於 fuchsia.component.resolution/resolver.fidl

ComponentResolver 傳回的可能錯誤狀況。

名稱說明
1

發生未預期的錯誤。

2

發生一般 IO 錯誤。

3

元件網址格式錯誤。

4

系統不支援網址中指定的存放區。

5

找不到元件資訊清單。

6

找不到元件套件。

7

裝置空間不足,無法儲存元件套件。

8

暫時無法使用這個元件。

9

無法剖析元件資訊清單或包含無效的設定。

10

元件指定了設定欄位,但系統找不到相關值。

11

找不到 ABI 修訂版本檔案。

新增時間:12
12

無法剖析 ABI 修訂版本值。

新增時間:12

資料表

元件資源

定義於 fuchsia.component.resolution/component.fidl

元件是可執行軟體的單位。

這個物件會提供元件的宣告、套件內容存取權,以及相關中繼資料 (如已解析 fuchsia.component.resolution.Resolver)。

序數欄位類型說明
url string[2083]

元件的解析網址。這是元件解析器在完成重新導向並解析相對路徑後,取得的標準網址。

decl fuchsia.mem/Data

元件宣告的二進位表示法 (fuchsia.component.decl.Component)。這項資訊通常是從元件的資訊清單取得,或由元件解析器產生。

package Package

包含元件的套件。依照慣例,元件的套件會在執行階段,對應至其命名空間中的「/pkg」。

如果元件未以套件表示,則會是空值。在這種情況下,執行元件有責任從 resolved_url 載入元件的資源。這個機制適用於網頁應用程式。

大多數執行器 (包括但不限於內建 ELF 執行元件) 需要套件的目錄連線具有 OPEN_RIGHT_EXECUTABLE 權限,才能執行已解析的元件。

config_values fuchsia.mem/Data

元件設定值的二進位表示法 (fuchsia.component.config.ValuesData)。

resolution_context Context

用來解析相關元件 component_url 的結構定義。解析「可能」與此 Component 的元件網址時,請將這個值傳遞至 Resolver::ResolveWithContext()

resolution_context 是不透明的值 (從元件解析度的角度來看),由元件 Resolver 提供,可透過父項 Component 儲存。

Resolver 可透過 ResolveWithContext 解析相對路徑元件網址,應從 ResolveResolveWithContext 傳回 resolution_context。相對路徑元件網址只能透過 ResolveWithContext 解析,後者需要有效的解析度 Context

abi_revision fuchsia.version/AbiRevision

已解析元件的目標 ABI 修訂版本。

已新增:10

套件 resource

定義於 fuchsia.component.resolution/package.fidl

套件是不可變更檔案的已簽署集合。

這個物件可讓您存取套件的內容和相關中繼資料。

序數欄位類型說明
url string[2083]

套件本身的網址。

directory fuchsia.io/Directory

套件的內容目錄。

聯合國

Resolver_ResolveWithContext_Result 嚴格 資源

定義於 fuchsia.component.resolution/resolver.fidl

序數Variant類型說明
response Resolver_ResolveWithContext_Response
err ResolverError

Resolver_Resolve_Result 嚴格 資源

定義於 fuchsia.component.resolution/resolver.fidl

序數Variant類型說明
response Resolver_Resolve_Response
err ResolverError

場景

名稱類型說明
MAX_COMPONENT_URL_LENGTH 2083 uint32

元件網址長度上限。

MAX_RESOLUTION_CONTEXT_SIZE 8192 uint32

Context 的位元組數上限。

已新增:9