mixin

Service

const mixin 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.

methods isInstalled

Is the service in the installed state

start

Start this service

list

List all the installed services

findAll

Find all services installed for the given type

onStart

Callback when service transitions into running state

stop

Stop this service

uninstall

Uninstall this service from the VM's service registry

install

Install this service into the VM's service registry

isRunning

Is the service in the running state

find

Find an installed service by type

equals

Services are required to implement equality by reference

hash

Services are required to implement equality by reference

onStop

Callback when service transitions out of the running state

equals Bool equals(Obj? that)

Services are required to implement equality by reference.

find static Service? find(Type t, Bool checked)

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 Service[] findAll(Type t)

Find all services installed for the given type. If no services are found then return an empty list.

hash 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 static Service[] list()

List all the installed services.

onStart 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 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 automatically 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.

Haxall 4.0.5 ∙ 24-Feb-2026 14:33 EST