fidl intro
Fuchsia 接口定义语言(FIDL)是用来描述 Fuchsia 程序使用的进程间通信(IPC)协议的语言。FIDL 为供应商提供了一种简化的声明语法,以便将接口定义为一种协议。支持的数据类型包括整数、浮点数、布尔运算、字符串和[句柄][glossary.handle]。这些可以被组织成更复杂的数组、向量、结构体、表格和联合体。
考虑以下用于 Echo 接口的 FIDL 协议的示例。
library fuchsia.examples;
{% includecode gerrit_repo="fuchsia/fuchsia" gerrit_path="examples/fidl/fuchsia.examples/echo.test.fidl" region_tag="max" adjust_indentation="auto" %}
{% includecode gerrit_repo="fuchsia/fuchsia" gerrit_path="examples/fidl/fuchsia.examples/echo.test.fidl" region_tag="echo" adjust_indentation="auto" %}
FIDL 协议描述了一组方法,在通过通道发送消息时被调用。通道消息本身是异步的,发送方和接收方彼此可以独立操作。FIDL 方法引入了更高层次的语义,使 FIDL 交易的客户端和服务器端的编程更加符合传统习惯。
FIDL 支持以下方法类型:
- 双向方法:一个典型的方法调用是,接受可选的参数,其返回类型定义在
->操作符之后。双向方法会阻塞调用方直到收到响应。在Echo的例子中,EchoString()方法是一个双向的方法。
- 单向方法:异步方法调用,立即返回而不等待响应。没有声明返回类型的方法被认为是客户端的单向方法。在
Echo的例子中,SendString()方法是一个单向的方法。
- 事件:必要时,服务器端可以向客户端发送非请求信息,这种消息称为事件。事件在
->操作符的返回端声明其方法名称。在Echo的例子中,OnString()方法是一个事件。
注意:要获取 FIDL 语言语法和支持的类型的更多细节,请参阅 FIDL 语言规范。
最后更新:
2022 年 12 月 31 日(Saturday) 21:07 CST