Please enable JavaScript.
Coggle requires JavaScript to display documents.
ESST (Component (subclass of Toddler) (component anatomy (Singleton…
ESST
Component
(subclass of Toddler)
config
exposes all elib_config ConfigValues to the other components
commands
exposes instances of "Command" to the other components; this is the main way to interface with this component from the outside
List[Command]
Exposes commands to the outside world
Only pure functions with basic typed parameters
Internally, the commands use Signals to pass the actual request to the component loop or object
Validation of commands using one of the 3rd party lib
status
exposes the status of different internal variables of the component
status
all status operations must be thread safe (read & write)
Inherits from a global parent "Status" class that handles members set/get and logging of status
runner
The runner is reponsible for starting the component.
main loop
yield to main event loop
execute component business logic
listen for events
component anatomy
Singleton object inside a module?
Pure module?
initialize
Initialization happens in steps, where each component is individually started, then states are collected
Components depending on another component to start simply state so, and the main init function arranges the starting order
Inter-component communication
A thin layer above blinker & blinker_herald
Messages are passed as signals
A "subscribe" function is given a signal (as well as specific parameters about the sender if needed) as well as the callback for that signal
All signals parameters are "Message"s. All messages subclass a base Message class, that define a basic data-structure for internal messages.
PACKAGES
core
logging
database
main
config
local filesystem
Toddler
(ABC for component)
COMPONENTS
comp1
comp...
compN
Local storage
AppData/esst
log files
database
Configuration file location ?
Add a link to ESSt local folder in the start menu using NSIST