const virtual mixin util::Service
util::Service
Services are used to publish functionality in a VM for use by other software components. The service registry for the VM is keyed by public types each service implements.
The following table illustrates the service lifecycle:
Method isInstalled isRunning ----------- ----------- ---------- constructed false false install true false start true true stop true false uninstall false false
While the service is installed, it may be looked up in the registry via find
and findAll
. The running state is used to invoke the onStart
and onStop
callbacks which gives the service a chance to setup/shutdown its actors and associated resources.
- equals
-
override Bool equals(Obj? that)
Services are required to implement equality by reference.
- find
-
static Service? find(Type t, Bool checked := true)
Find an installed service by type. If not found and checked is false return null, otherwise throw UnknownServiceErr. If multiple services are registered for the given type then return the first one registered.
- findAll
-
static List<Service> findAll(Type t)
Find all services installed for the given type. If no services are found then return an empty list.
- hash
-
override Int hash()
Services are required to implement equality by reference.
- install
-
This install()
Install this service into the VM's service registry. If already installed, do nothing. Return this.
- isInstalled
-
Bool isInstalled()
Is the service in the installed state. Note this method requires accessing a global hash table, so it should not be heavily polled in a concurrent environment.
- isRunning
-
Bool isRunning()
Is the service in the running state. Note this method requires accessing a global hash table, so it should not be heavily polled in a concurrent environment.
- list
-
List all the installed services.
- onStart
-
protected virtual Void onStart()
Callback when service transitions into running state. If this callback raises an exception, then the service fails to transition to the running state.
- onStop
-
protected virtual Void onStop()
Callback when service transitions out of the running state. If this callback raises an exception, then the service is still transitioned to the non-running state.
- start
-
This start()
Start this service. If not installed, this method autoamatically calls
install
. If already running, do nothing. Return this. - stop
-
This stop()
Stop this service. If not running, do nothing. Return this.
- uninstall
-
This uninstall()
Uninstall this service from the VM's service registry. If the service is running, this method automatically calls
stop
. If not installed, do nothing. Return this.