通訊協定
解析器
定義於 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
|
STRUCTS
背景資訊
定義於 fuchsia.component.resolution/component.fidl
元件解析內容,用於解析相對於其他元件的元件網址。內容會儲存在位元組陣列中,該陣列會保留目標 Resolver 使用的值,以便透過相對路徑 (例如子套件名稱) 找出並解析元件。
| 欄位 | 類型 | 說明 | 預設 |
|---|---|---|---|
bytes |
vector<uint8>:8192
|
無預設值 |
Resolver_ResolveWithContext_Response resource
定義於 fuchsia.component.resolution/resolver.fidl
| 欄位 | 類型 | 說明 | 預設 |
|---|---|---|---|
component |
Component
|
無預設值 |
Resolver_Resolve_Response 資源
定義於 fuchsia.component.resolution/resolver.fidl
| 欄位 | 類型 | 說明 | 預設 |
|---|---|---|---|
component |
Component
|
無預設值 |
ENUMS
ResolverError strict
類型:uint32
定義於 fuchsia.component.resolution/resolver.fidl
ComponentResolver 可能傳回的錯誤條件。
| 名稱 | 值 | 說明 |
|---|---|---|
內部 |
1 |
發生未預期的錯誤。 |
IO |
2 |
發生一般 IO 錯誤。 |
INVALID_ARGS |
3 |
元件網址格式錯誤。 |
NOT_SUPPORTED |
4 |
不支援網址中指定的存放區。 |
MANIFEST_NOT_FOUND |
5 |
找不到元件資訊清單。 |
PACKAGE_NOT_FOUND |
6 |
找不到元件的套件。 |
NO_SPACE |
7 |
裝置空間不足,無法儲存元件套件。 |
RESOURCE_UNAVAILABLE |
8 |
暫時無法使用這個元件。 |
INVALID_MANIFEST |
9 |
無法剖析元件資訊清單,或資訊清單含有無效設定。 |
CONFIG_VALUES_NOT_FOUND |
10 |
元件指定了設定欄位,但找不到值。 |
ABI_REVISION_NOT_FOUND |
11 |
找不到 ABI 修訂版本檔案。 新增:12
|
INVALID_ABI_REVISION |
12 |
無法剖析 ABI 修訂版本值。 新增:12
|
TABLES
元件資源
定義於 fuchsia.component.resolution/component.fidl
元件是可執行的軟體單位。
這個物件會提供元件的宣告、套件內容的存取權,以及解析為 fuchsia.component.resolution.Resolver 的相關中繼資料。
| 序數 | 欄位 | 類型 | 說明 |
|---|---|---|---|
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
|
套件資源
定義於 fuchsia.component.resolution/package.fidl
套件是一組已簽署且不可變更的檔案。
這個物件可讓您存取套件內容和相關中繼資料。
| 序數 | 欄位 | 類型 | 說明 |
|---|---|---|---|
1 |
url |
string:2083
|
套件本身的網址。 |
2 |
directory |
client_end:fuchsia.io/Directory
|
套件的內容目錄。 |
UNIONS
Resolver_ResolveWithContext_Result strict resource
定義於 fuchsia.component.resolution/resolver.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
Resolver_ResolveWithContext_Response
|
|
2 |
err |
ResolverError
|
Resolver_Resolve_Result strict resource
定義於 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 |
|