协议
解析器
在 fuchsia.component.resolve/resolver.fidl 中定义
用于解析组件网址的接口。
此接口由支持加载具有特定网址架构的组件的组件实现。例如,Fucsia 软件包组件解析器公开了具有此接口的服务,以使用“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.resolve/component.fidl 中定义
组件解析上下文,用于解析相对于另一组件的组件网址。上下文存储在一个字节数组中,该字节数组保留目标 Resolver
用于通过相对路径(例如通过子软件包名称)定位和解析组件的值。
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
bytes |
vector<uint8>[8192]
|
无默认值 |
Resolver_ResolveWithContext_Response 资源
在 fuchsia.component.resolve/resolver.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
component |
Component
|
无默认值 |
Resolver_Resolve_Response 资源
在 fuchsia.component.resolve/resolver.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
component |
Component
|
无默认值 |
枚举
ResolverError 严格
类型:uint32
在 fuchsia.component.resolve/resolver.fidl 中定义
ComponentResolver 可能返回的错误情况。
名称 | 值 | 说明 |
---|---|---|
内部 |
1 |
发生意外错误。 |
IO |
2 |
发生了常规 IO 错误。 |
无效的 ARGS |
3 |
组件网址格式不正确。 |
不支持 |
4 |
网址中指定的代码库不受支持。 |
MANIFEST_NOT_FOUND |
5 |
未找到组件清单。 |
PACKAGE_NOT_FOUND |
6 |
未找到组件的软件包。 |
无空格 |
7 |
设备上的空间不足,用于存储组件的软件包。 |
资源不可用 |
8 |
该组件暂时不可用。 |
INVALID_MANIFEST |
9 |
组件清单无法解析,或包含无效配置。 |
CONFIG_VALUES_NOT_FOUND 类型 |
10 |
组件指定了配置字段,但系统找不到这些值。 |
ABI_REVISION_NOT_FOUND |
11 |
找不到 ABI 修订版本文件。 添加数量:12
|
对 ABI 无效的修改 |
12 |
无法解析 ABI 修订版本值。 添加数量:12
|
表格
组件资源
在 fuchsia.component.resolve/component.fidl 中定义
组件是可执行软件的单元。
此对象提供组件的声明、对其软件包内容的访问以及相关元数据(以解析为 fuchsia.component.resolution.Resolver
)。
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
url |
string[2083]
|
组件的解析网址。 这是组件解析器在跟踪重定向和解析相对路径后获得的规范网址。 |
2 |
decl |
fuchsia.mem/Data
|
组件声明 ( |
3 |
package |
Package
|
包含组件的软件包。按照惯例,组件的软件包在运行时会映射到其命名空间中的“/pkg”。 如果该组件未表示为软件包,则此值为 null。
在这种情况下,由运行程序负责从 大多数运行程序(包括但不限于内置 ELF 运行程序)都要求软件包的目录连接具有 OPEN_RIGHT_EXECUTABLE 权限,以便运行解析的组件。 |
4 |
config_values |
fuchsia.mem/Data
|
组件配置值的二进制表示法 ( |
5 |
resolution_context |
Context
|
用于解析与此组件的
可以通过 |
6 |
abi_revision |
fuchsia.version/AbiRevision
|
已解析组件的目标 ABI 修订版本。 添加数量:10
|
软件包资源
在 fuchsia.component.resolve/package.fidl 中定义
软件包是已签名的不可变文件集合。
此对象用于访问软件包的内容和相关元数据。
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
url |
string[2083]
|
软件包本身的网址。 |
2 |
directory |
fuchsia.io/Directory
|
文件包的内容目录。 |
联合
Resolver_ResolveWithContext_Result 严格资源
在 fuchsia.component.resolve/resolver.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Resolver_ResolveWithContext_Response
|
|
2 |
err |
ResolverError
|
Resolver_Resolve_Result 严格要求资源
在 fuchsia.component.resolve/resolver.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Resolver_Resolve_Response
|
|
2 |
err |
ResolverError
|
常量
名称 | 值 | 类型 | 说明 |
---|---|---|---|
MAX_COMPONENT_网址_LENGTH |
2083
|
uint32 |
组件网址的长度上限。 |
MAX_RESOLUTION_CONTEXT_SIZE |
8192
|
uint32 |
添加数量:9
|