Description of the client entity
The client entity does not implement an interface, so it is sufficient to declare the entity name in the EDL description.
client.edl
/* Client entity description */
entity client
Server entity description
The server entity implements an IPing 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 IPing 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
/* ping_comp – named instance of the ping component. */
ping_comp: ping
In the CDL description of the ping component, you must indicate that it contains a IPing interface implementation:
ping.cdl
/* Ping component description */
component ping
/* ping_impl – an implementation of the IPing interface declared in the ping package. */
ping_impl: ping.IPing
In the ping package, you must declare the IPing interface, which contains two methods: Ping and Pong:
ping.idl
/* Ping package description */
package ping
interface IPing {
Ping(in UInt32 value, out UInt32 result);
Pong(in UInt32 value, out UInt32 result);
}
Init description
For the client entity to be able to call a server entity method, an IPC channel must be created in between these.
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.