fuchsia.component.Resolution

添加数量:7

协议

解析器

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 是先前已解析的 Componentresolution_context,提供用于解析相对网址的上下文。

请求

名称类型
component_url string[2083]
context Context

回复

名称类型
payload Resolver_ResolveWithContext_Result

结构

上下文

fuchsia.component.resolve/component.fidl 中定义

组件解析上下文,用于解析相对于另一组件的组件网址。上下文存储在一个字节数组中,该字节数组保留目标 Resolver 用于通过相对路径(例如通过子软件包名称)定位和解析组件的值。

添加数量:9

字段类型说明默认
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

发生意外错误。

2

发生了常规 IO 错误。

3

组件网址格式不正确。

4

网址中指定的代码库不受支持。

5

未找到组件清单。

6

未找到组件的软件包。

7

设备上的空间不足,用于存储组件的软件包。

8

该组件暂时不可用。

9

组件清单无法解析,或包含无效配置。

10

组件指定了配置字段,但系统找不到这些值。

11

找不到 ABI 修订版本文件。

添加数量:12
12

无法解析 ABI 修订版本值。

添加数量:12

表格

组件资源

fuchsia.component.resolve/component.fidl 中定义

组件是可执行软件的单元。

此对象提供组件的声明、对其软件包内容的访问以及相关元数据(以解析为 fuchsia.component.resolution.Resolver)。

序数字段类型说明
url string[2083]

组件的解析网址。 这是组件解析器在跟踪重定向和解析相对路径后获得的规范网址。

decl fuchsia.mem/Data

组件声明 (fuchsia.component.decl.Component) 的二进制文件表示形式。此类信息通常从组件的清单中获取或由组件解析器生成。

package Package

包含组件的软件包。按照惯例,组件的软件包在运行时会映射到其命名空间中的“/pkg”。

如果该组件未表示为软件包,则此值为 null。 在这种情况下,由运行程序负责从 resolved_url 加载组件的资源。此机制适用于 Web 应用。

大多数运行程序(包括但不限于内置 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 一起保存。

可以通过 ResolveWithContext 解析相对路径组成部分网址的 Resolver 应同时从 ResolveResolveWithContext 返回 resolution_context。相对路径组件网址只能通过 ResolveWithContext 进行解析,这需要有效的解析 Context

abi_revision fuchsia.version/AbiRevision

已解析组件的目标 ABI 修订版本。

添加数量:10

软件包资源

fuchsia.component.resolve/package.fidl 中定义

软件包是已签名的不可变文件集合。

此对象用于访问软件包的内容和相关元数据。

序数字段类型说明
url string[2083]

软件包本身的网址。

directory fuchsia.io/Directory

文件包的内容目录。

联合

Resolver_ResolveWithContext_Result 严格资源

fuchsia.component.resolve/resolver.fidl 中定义

序数变体类型说明
response Resolver_ResolveWithContext_Response
err ResolverError

Resolver_Resolve_Result 严格要求资源

fuchsia.component.resolve/resolver.fidl 中定义

序数变体类型说明
response Resolver_Resolve_Response
err ResolverError

常量

名称类型说明
MAX_COMPONENT_网址_LENGTH 2083 uint32

组件网址的长度上限。

MAX_RESOLUTION_CONTEXT_SIZE 8192 uint32

Context 的字节数上限。

添加数量:9