Class ServiceProvider

extends Object
A service provider.
Service providers are classes that expose APIs through remote procedure calls (RPCs).
Inheritance
Typically, subclasses implement the ServiceHandler interface, and call the provides method in their constructor, using 'this' as handler.
If the subclass implements multiple independent service APIs, it is useful to split the handling out into multiple implementations of ServiceHandler to avoid running into issues with overlapping method indexes.

Class summary


constructor name/string --major/int --minor/int --patch/int= --tags/List=

Constructors

constructor name/string --major/int --minor/int --patch/int=0 --tags/List=null

Methods

install -> none

on-closed client/int -> none

on-opened client/int -> none

operator == other/any -> bool
Whether this object is equal to the other.
By default, identical is used for equality.
Inheritance
Classes overwrite this operator to get an equality specific to their needs. Equality operators often compare the type and field contents. For example:

class Pin:
  number/int

  constructor .number:

  operator == other:
    if other is not Pin: return false
    return number == other.number
A class doesn't have to follow the above format, but it must keep the operator in sync with any hash-code method. That is, if a class has a hash-code member, then the equality and hash-code must agree. If two instances are equal (a == b), then their hash codes must also be equal (a.hash-code == b.hash-code).

pid --client/int -> int

provides selector/ServiceSelector --handler/ServiceHandler --id/int=null --priority/int=PRIORITY-NORMAL --tags/List=null -> none
Registers a handler for the given selector.
This function should only be called from subclasses (typically in their constructor).

resource client/int handle/int -> ServiceResource

resources-do [block] -> none

uninstall --wait/bool=false -> none