專家
解析器
定義於 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
是先前解析的 Component
的 resolution_context
,提供還原相對網址的背景資訊。
要求
名稱 | 類型 |
---|---|
component_url |
string[2083]
|
context |
Context
|
回應
名稱 | 類型 |
---|---|
payload |
Resolver_ResolveWithContext_Result
|
結構
內容
定義於 fuchsia.component.resolution/component.fidl
元件解析結構定義,用於解析相對於其他元件的元件網址。背景資訊會儲存在位元組陣列中,並保留目標 Resolver
使用的值,藉此按照相對路徑 (例如子套件名稱) 找出並解析元件。
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
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 |
發生未預期的錯誤。 |
IO |
2 |
發生一般 IO 錯誤。 |
無效引數 |
3 |
元件網址格式錯誤。 |
不支援 |
4 |
系統不支援網址中指定的存放區。 |
未找到該變更項目 |
5 |
找不到元件資訊清單。 |
套件未找到 |
6 |
找不到元件套件。 |
沒有空格 |
7 |
裝置空間不足,無法儲存元件套件。 |
無法使用資源 |
8 |
暫時無法使用這個元件。 |
無效的變更 |
9 |
無法剖析元件資訊清單或包含無效的設定。 |
CONFIG_VALUES_NOT_FOUND |
10 |
元件指定了設定欄位,但系統找不到相關值。 |
ABI_REVISION_NOT_FOUND |
11 |
找不到 ABI 修訂版本檔案。 新增時間:12
|
無效聲明 |
12 |
無法剖析 ABI 修訂版本值。 新增時間:12
|
資料表
元件資源
定義於 fuchsia.component.resolution/component.fidl
元件是可執行軟體的單位。
這個物件會提供元件的宣告、套件內容存取權,以及相關中繼資料 (如已解析 fuchsia.component.resolution.Resolver
)。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
url |
string[2083]
|
元件的解析網址。這是元件解析器在完成重新導向並解析相對路徑後,取得的標準網址。 |
2 |
decl |
fuchsia.mem/Data
|
元件宣告的二進位表示法 ( |
3 |
package |
Package
|
包含元件的套件。依照慣例,元件的套件會在執行階段,對應至其命名空間中的「/pkg」。 如果元件未以套件表示,則會是空值。在這種情況下,執行元件有責任從 大多數執行器 (包括但不限於內建 ELF 執行元件) 需要套件的目錄連線具有 OPEN_RIGHT_EXECUTABLE 權限,才能執行已解析的元件。 |
4 |
config_values |
fuchsia.mem/Data
|
元件設定值的二進位表示法 ( |
5 |
resolution_context |
Context
|
用來解析相關元件
|
6 |
abi_revision |
fuchsia.version/AbiRevision
|
已解析元件的目標 ABI 修訂版本。 已新增:10
|
套件 resource
定義於 fuchsia.component.resolution/package.fidl
套件是不可變更檔案的已簽署集合。
這個物件可讓您存取套件的內容和相關中繼資料。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
url |
string[2083]
|
套件本身的網址。 |
2 |
directory |
fuchsia.io/Directory
|
套件的內容目錄。 |
聯合國
Resolver_ResolveWithContext_Result 嚴格 資源
定義於 fuchsia.component.resolution/resolver.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Resolver_ResolveWithContext_Response
|
|
2 |
err |
ResolverError
|
Resolver_Resolve_Result 嚴格 資源
定義於 fuchsia.component.resolution/resolver.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Resolver_Resolve_Response
|
|
2 |
err |
ResolverError
|
場景
名稱 | 值 | 類型 | 說明 |
---|---|---|---|
MAX_COMPONENT_URL_LENGTH |
2083
|
uint32 |
元件網址長度上限。 |
MAX_RESOLUTION_CONTEXT_SIZE |
8192
|
uint32 |
已新增:9
|