A 罩杯 通訊協定功能 是支援能力 依 頻道 說一個特定語句 FIDL 通訊協定 ,直接在 Google Cloud 控制台實際操作。
library fuchsia.examples;
const MAX_STRING_LENGTH uint64 = 32;
@discoverable
protocol Echo {
EchoString(struct {
value string:MAX_STRING_LENGTH;
}) -> (struct {
response string:MAX_STRING_LENGTH;
});
SendString(struct {
value string:MAX_STRING_LENGTH;
});
-> OnString(struct {
response string:MAX_STRING_LENGTH;
});
};
通訊協定實作是由使用 傳出目錄 而從其他應用程式 元件的 命名空間 ,直接在 Google Cloud 控制台實際操作。
提供通訊協定功能
如要提供通訊協定能力,元件必須宣告
從self
路。元件中有一個
其
傳出目錄
,直接在 Google Cloud 控制台實際操作。
若要定義能力,請為該功能新增 capabilities
宣告:
{
capabilities: [
{
protocol: "fuchsia.example.ExampleProtocol",
},
],
}
這定義了由元件代管的能力,該元件具有傳出目錄路徑
為 /svc/fuchsia.example.ExampleProtocol
。您也可以自訂路徑:
{
capabilities: [
{
protocol: "fuchsia.example.ExampleProtocol",
path: "/my_svc/fuchsia.example.MyExampleProtocol",
},
],
}
轉送通訊協定功能
元件會「公開」元件,藉此轉送通訊協定功能 家長為他們提供福利
如要進一步瞭解架構如何轉送元件功能, 請參閱功能轉送。
公開
公開通訊協定能力可讓元件的父項存取該元件 功能:
{
expose: [
{
protocol: "fuchsia.example.ExampleProtocol",
from: "self",
},
],
}
from: "self"
指令代表通訊協定功能
由此元件「提供」的函式
提供
提供通訊協定能力可讓子項元件存取 功能:
{
offer: [
{
protocol: "fuchsia.example.ExampleProtocol",
from: "self",
to: [ "#child-a", "#child_b" ],
},
],
}
取用通訊協定功能
如要使用通訊協定能力,元件必須要求 開啟對應的路徑 命名空間 ,直接在 Google Cloud 控制台實際操作。
如要要求這項能力,請為該功能新增 use
宣告:
{
use: [
{
protocol: "fuchsia.example.ExampleProtocol",
},
],
}
這會在已知路徑的元件命名空間中填入通訊協定
/svc/fuchsia.example.ExampleProtocol
。您也可以自訂路徑:
{
use: [
{
protocol: "fuchsia.example.ExampleProtocol",
path: "/my_svc/fuchsia.example.MyExampleProtocol",
},
],
}
如要進一步瞭解未解決要求,請參閱 通訊協定開啟的生命週期。
使用選用的通訊協定功能
請參閱連結元件:使用選用功能。
架構通訊協定
「架構通訊協定」是由元件架構提供的通訊協定。
任何元件都能將 framework
設為來源,use
這些功能
但父項的 offer
不含該元素
Fuchsia 支援下列架構通訊協定:
fuchsia.component.Realm
:允許元件管理及繫結至元件 所有子項。範圍限定為元件的領域。fuchsia.component.Binder
:允許元件啟動 另一個元件
{
use: [
{
protocol: "fuchsia.component.Realm",
from: "framework",
},
],
}