Description of the Client entity
The Client entity does not implement an interface, so all you need to do is declare the entity name in the EDL description.
Client.edl
/* Client entity description. */
entity Client
Server entity description
The Server entity implements a Ping interface, which contains two methods: Ping and Pong. As in the echo example, you must declare a separate component, such as Ping, which contains a Ping interface implementation.
In the EDL description of the server entity, you must indicate that it contains an instance of the Ping component:
Server.edl
/* Server entity description. */
entity Server
/* pingComp is a named instance of the Ping component. */
components {
pingComp: Ping
}
In the CDL description of the Ping component, you must indicate that it contains a Ping interface implementation:
Ping.cdl
/* Ping component description. */
component Ping
* pingImpl is the Ping interface implementation. */
interfaces {
pingImpl: Ping
}
In the Ping package, you must declare the Ping interface, which contains two methods: Ping and Pong:
Ping.idl
/* Ping package description. */
package Ping
interface {
Ping(in UInt32 value, out UInt32 result);
Pong(in UInt32 value, out UInt32 result);
}
Init description
To enable the Client entity to call a Server entity method, an IPC channel must be created between them.
init.yaml
entities:
- name: Client
connections:
- target: Server
id: server_connection
- name: Server
The channel is named server_connection. You can obtain the handle of this channel by using the Service Locator.