-
Notifications
You must be signed in to change notification settings - Fork 8
Core description
The desktop environment core is responsible for managing the various components of the desktop environment and to allow communication.
- Manage the DE life cicle
Description: The DE goes through a set of states which determine the behavior of the applications that compose it; therefore notifications should be issued when a change occurs. The states are: starting, running, blocked and ending.
Flows:
- Starting: Registered components in the specified profile are activated. If a profile is not specified, use "Default"; in the absence of it, copy the original one from the system is loaded. An interface to indicate that components are being loaded is displayed.
- Running: The desktop is shown.
- Blocked: The blocking screen is shown.
- Ending: If other applications are running the user is prompted for confirmation; after that, the session is closed.
- Managing components
Description: Components provide the functionality to the system. A set of these are loaded at login and another is loaded on demand. These can be installed in different places so the system should allow to set the path in which they are sought. For more information about components see the CppMicroServices documentation.
Flows:
- Load: Given the name of a component, locate the appropriate library, load it and enable the module.
- Unload: If the component services are not being used, disable and unload the module.
- List: Generate a list of the installed components on your system.
- Managing services
Description: Communication between components takes place via a service layer. These are exported interfaces to the service registry and can be accessed from other components. These interfaces have an associated set of properties that identify them and that are used for further localization. When a component wishes to use a service exported by another one, must perform a contract, to record the dependence. The contracts are used to prevent them from being downloaded components whose code is being used. For more information on services see the [CppMicroServices] (http://cppmicroservices.org/doc_latest/index.html) documentation.
Flows:
- Register: Allow to export an interface's instance and its properties as a service.
- Search: Allow the recovery of exported services using filters on properties. To filter, treatment of regular expressions must be used.
- Perform contract: Allow from registration of an exported service, a contract is made.
- Get instance: From the service contract, it should be allowed to obtain the associated object.
- Release contract: Allow a contract to be closed.
- Manage configuration profile
Description: The DE is formed from the components installed in the system, among them are the functionalities. Configuration profile is the name given to a selection of these components. Profiles are used to define which components are loaded at login. They can also be used to separate the desktop components across multiple instances, for development purposes or to isolate unstable components.
Flows:
- Get modules list: The system will allow to obtain a list of configured modules.
- Add module: The system will allow to add a module to the profile's list.
- Remove module: The system will allow to remove a module to the profile's list.
- To consume less than 3 Mb of RAM.
- To be loaded in less than 500ms.