Composite names of entities, components and interfaces
For entities, components and interfaces, you can use composite names containing one or more dots. In this case, the part of the name that comes after the last dot is called the short name.
For example, if the full name of an entity is kl.VfsEntity
, its short name is VfsEntity
. An interface with the full name main.security.Verify
has the short name Verify
.
If a name is not composite (for example, server
) – it is considered to be both the full name and the short name.
Names and paths of description files
The name of an EDL file must match the short name of the entity that it describes. In this case, the composite name is used to indicate the path to the EDL file. For example, kl.VfsEntity
must be described in the kl/VfsEntity.edl
file.
This same rule applies to components and interfaces: the name of a CDL file must match the short name of the component, and the name of an IDL file must match the short name of the interface. However, the composite name is used to indicate the path to a CDL file or IDL file. For example, the net.Updater
component must be described in the net/Updater.cdl
file, and the interface with the full name main.security.Verify
must be described in the main/security/Verify.idl
file.
The short names of entities, components, and interfaces must not contain an underscore (_). The underscore character is allowed in segments of a composite name.
Names of executable files for starting entities
When a solution is started, the Einit entity starts other entities as follows: in ROMFS (in the solution image), it runs the executable file with the name that matches the short name of the entity being started. For example, the Client
and net.Client
entities will be started from the executable file named Client
by default. To start an entity from an executable file with a different name when the solution is started, use the reserved word path
in the init description.
Full names in descriptions
Only the full names of entities, components and interfaces are used in EDL-, CDL- and IDL descriptions, and in the init description and security configuration. As an example, let us examine the already mentioned kl.VfsEntity
, net.Updater
component and main.security.Verify
interface.
Example EDL description of kl.VfsEntity
:
VfsEntity.edl
entity kl.VfsEntity
...
Example CDL description of the net.Updater
component:
Updater.cdl
component net.Updater
...
Example init description:
init.yaml
entities:
- name: kl.VfsEntity
...
Example security configuration:
security.psl
...
/* Declaration of "kl.VfsEntity" entity. */
use EDL kl.VfsEntity;
...
/* Configuration of requests for calling the Check method of any "Verify" interface implementations. */
request interface=main.security.Verify, method=Check { grant () }
...
Names of NK-generated methods and types
The names of generated types and methods are based on the full names of entities, components and interfaces. For example, the net.Updater
component will have the net_Updater_component
structure, the net_Updater_component_init
function, the net_Updater_component_dispatch
dispatcher, as well as the net_Updater_component_req
request structure and net_Updater_component_res
response structure.