From 3027500156a6b0f064351267d378c38d918b15c1 Mon Sep 17 00:00:00 2001 From: cwolf9 <2717232422@qq.com> Date: Wed, 27 Jul 2022 04:09:26 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E7=BF=BB=E8=AF=91=20get-started/=5Fcommon/?= =?UTF-8?q?fidl/=5Ffidl=5Fintro.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- get-started/_common/fidl/_fidl_intro.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/get-started/_common/fidl/_fidl_intro.md b/get-started/_common/fidl/_fidl_intro.md index 33d69954..2905c3fb 100644 --- a/get-started/_common/fidl/_fidl_intro.md +++ b/get-started/_common/fidl/_fidl_intro.md @@ -1,11 +1,17 @@ + +Fuchsia 接口定义语言(FIDL)是用来描述 Fuchsia 程序使用的进程间通信(IPC)协议的语言。FIDL 提供了一种简化的声明语法,供供应商将接口定义为一种**协议**。支持的数据类型包括整数、浮点数、布尔运算、字符串和[句柄][glossary.handle]。这些可以被组织成更复杂的数组、向量、结构体、表格和联合体。 + +考虑以下用于 `Echo` 接口的 FIDL 协议的示例。 ```fidl library fuchsia.examples; @@ -15,27 +21,45 @@ library fuchsia.examples; {% 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 语言规范](/reference/fidl/language/language.md)。 [glossary.handle]: /glossary/README.md#handle From 1f5e62cbe0b1c05f00f173ce44a49891e1057125 Mon Sep 17 00:00:00 2001 From: cwolf9 <2717232422@qq.com> Date: Wed, 27 Jul 2022 22:14:38 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BF=BB=E8=AF=91?= =?UTF-8?q?=E7=BB=86=E8=8A=82=E9=97=AE=E9=A2=98=20get-started/=5Fcommon/fi?= =?UTF-8?q?dl/=5Ffidl=5Fintro.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- get-started/_common/fidl/_fidl_intro.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/get-started/_common/fidl/_fidl_intro.md b/get-started/_common/fidl/_fidl_intro.md index 2905c3fb..02609832 100644 --- a/get-started/_common/fidl/_fidl_intro.md +++ b/get-started/_common/fidl/_fidl_intro.md @@ -6,7 +6,7 @@ provides a simplified declaration syntax for providers to define interfaces as a and [handles][glossary.handle]. These can be organized into more complex arrays, vectors, structs, tables, and unions. --> -Fuchsia 接口定义语言(FIDL)是用来描述 Fuchsia 程序使用的进程间通信(IPC)协议的语言。FIDL 提供了一种简化的声明语法,供供应商将接口定义为一种**协议**。支持的数据类型包括整数、浮点数、布尔运算、字符串和[句柄][glossary.handle]。这些可以被组织成更复杂的数组、向量、结构体、表格和联合体。 +Fuchsia 接口定义语言(FIDL)是用来描述 Fuchsia 程序使用的进程间通信(IPC)协议的语言。FIDL 为供应商提供了一种简化的声明语法,以便将接口定义为一种**协议**。支持的数据类型包括整数、浮点数、布尔运算、字符串和[句柄][glossary.handle]。这些可以被组织成更复杂的数组、向量、结构体、表格和联合体。 -FIDL支持以下方法类型: +FIDL 支持以下方法类型: -* **事件**:必要时,服务器端可以向客户端发送非请求信息,称之为事件。事件在 `->` 操作符的返回端声明其方法名称。在 `Echo` 的例子中,`OnString()` 方法是一个事件。 +* **事件**:必要时,服务器端可以向客户端发送非请求信息,这种消息称为事件。事件在 `->` 操作符的返回端声明其方法名称。在 `Echo` 的例子中,`OnString()` 方法是一个事件。