Class ServiceSelector

extends Object
A service selector is used to identify and discover services. It has a unique id that never changes and major and minor versions numbers that support evolving APIs over time.
On the ServiceProvider side, the selector is used when providing a service so that clients can discover it later.
On the ServiceClient side, the selector is used when discovering services, and in this context it can also be restricted to help disambiguate between multiple variants of a service provided by multiple providers.

Class summary


constructor --uuid/string --major/int --minor/int

Constructors

constructor --uuid/string --major/int --minor/int

Methods

Whether this ServiceSelector matches selector and thus identifies the same version of a specific service API.

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

Returns a restricted variant of this ServiceSelector that can be used in the service discovery process to allow and deny discovered services.

Stringifies this object.
Inheritance
Objects that need a human-friendly string representation should overwrite this method. The default string is based on the internal class-ID.