@haxall/haxall
    Preparing search index...

    Class ServiceAbstract

    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 | onStart and onStop | onStop callbacks which gives the service a chance to setup/shutdown its actors and associated resources.

    Hierarchy (View Summary)

    Implemented by

    Index

    Constructors

    Properties

    type$: Type

    Methods

    • Return a negative integer, zero, or a positive integer if this object is less than, equal to, or greater than the specified object:

      this < that   =>  <0
      this == that => 0
      this > that => >0

      This method may also be accessed via the < <= <=> >= and > shortcut operators. If not overridden the default implementation compares the toStr representations. Also see docLang.

      Examples:

      3.compare(8)  =>  -1
      8.compare(3) => 1
      8.compare(8) => 0
      3 <=> 8 => -1 // shortcut for 3.compare(8)

      Parameters

      Returns number

    • Services are required to implement equality by reference.

      Parameters

      Returns boolean

    • Services are required to implement equality by reference.

      Returns number

    • Install this service into the VM's service registry. If already installed, do nothing. Return this.

      Returns this

    • Return if this Obj is immutable and safe to share between threads:

      • an instance of a const class
      • the result of toImmutable on List, Map, or Buf
      • a Func object may or may not be immutable - see sys::Func.
      • other instances are assumed mutable and return false

      Returns boolean

    • 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.

      Returns boolean

    • 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.

      Returns boolean

    • Start this service. If not installed, this method automatically calls install. If already running, do nothing. Return this.

      Returns this

    • Stop this service. If not running, do nothing. Return this.

      Returns this

    • Get an immutable representation of this instance or throw NotImmutableErr if this object cannot be represented as an immutable:

      • if type is const, return this
      • if already an immutable List, Map, Buf, or Func return this
      • if a List, then attempt to perform a deep clone by calling toImmutable on all items
      • if a Map, then attempt to perform a deep clone by calling toImmutable on all values (keys are already immutable)
      • some Funcs can be made immutable - see sys::Func
      • if a Buf create immutable copy, see sys::Buf
      • any other object throws NotImmutableErr

      Returns Readonly<this>

    • Return a string representation of this object.

      Returns string

    • Trap a dynamic call for handling. Dynamic calls are invoked with the -> shortcut operator:

      a->x        a.trap("x", null)
      a->x() a.trap("x", null)
      a->x = b a.trap("x", [b])
      a->x(b) a.trap("x", [b])
      a->x(b, c) a.trap("x", [b, c])

      The default implementation provided by Obj attempts to use reflection. If name maps to a method, it is invoked with the specified arguments. If name maps to a field and args.size is zero, get the field. If name maps to a field and args.size is one, set the field and return args[0]. Otherwise throw UnknownSlotErr.

      Parameters

      Returns JsObj

    • Get the Type instance which represents this object's class. Also seeType.of or Pod.of.

      Returns Type

    • 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.

      Returns this

    • This method called whenever an it-block is applied to an object. The default implementation calls the function with this, and then returns this.

      Parameters

      • f: (arg0: this) => void

      Returns this

    • Write x.toStr to standard output followed by newline. If x is null then print "null". If no argument is provided then print an empty line.

      Parameters

      Returns void

    • 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.

      Parameters

      • t: Type
      • Optionalchecked: boolean

      Returns Service

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

      Parameters

      Returns List<Service>

    • List all the installed services.

      Returns List<Service>