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.