IPC channels
IPC channels connect entities with each other and are used for IPC messaging.
The channel is provided by a pair of IPC handles (client and server), which are linked to each other.
Two entities linked by an IPC channel
A channel is directional. The entity associated with the client handle of the channel (client entity) can send requests and receive responses over this channel. The entity associated with the server handle of the channel (server entity) can receive requests and send responses over this channel.
An entity can have multiple connections (channels) with other entities, acting as a client in some connections while acting as a server in others.
Entity A is a client for the C entity and a server for the B entity. Designations: cl_1, cl_2 – client IPC handles; srv_1, srv_2 – server IPC handles.
Creating and using channels
IPC channels can be created statically or dynamically.
Statically created IPC channels are created by the Einit
entity when the solution is started. The code of the Einit
entity is generated based on the init description that specifies all channels (connections) that need to be created.
In addition to statically created IPC channels, entities may use dynamically created IPC channels.
To send and receive an IPC message over a specific channel, the corresponding values of IPC handles (client and server) must be known. Service Locator is used to obtain the values of IPC handles.