SkySpark by SkyFoundry

abstract const class proj::Watch

sys::Obj
  proj::Watch

Watch is a subscription to a set of records in a folio project. It provides an efficient mechanism to poll for changes. Also see Watches.

add

Void add(Ref id)

Convenience for addAll([id])

addAll

abstract Void addAll(Ref[] ids)

Add the given records to this watch. Any ids already subscribed by this watch or not found in the database are silently ignored. Raise exception if watch is closed.

addGrid

Void addGrid(Grid grid)

Convenience for addAll for id column of each row. If any row is missing an id tag then it is silently skipped.

close

abstract Void close()

Close this watch and unsubscribe all its records. If watch is already closed, this method is a no op.

dis

abstract Str dis()

Debug display string used during Proj.watchOpen

equals

override Bool equals(Obj? that)

Equality based on reference equality

hash

override Int hash()

Identity hash

id

abstract Str id()

Identifier which uniquely identifies this watch in the project

isClosed

abstract Bool isClosed()

Return if this watch has been closed

lastPoll

abstract Duration lastPoll()

Ticks of the last call to poll

lease

abstract Duration lease

The lease determines the max duration which may elapse without a poll call before the watch is expired. The default is 1min. Clients can attempt to tune the lease time by setting this field, but no guarantee is made that the framework will honor extremely long lease times.

list

abstract Ref[] list()

List the rec ids currently subscribed by this watch. Raise exception if watch is closed.

poll

abstract Dict[] poll(Duration ticks := this.lastPoll())

Get all the records which have been modified since the given ticks. An empty list is returned if no changes have been made to the watched records since ticks. There is no ordering to the resulting list. This method automatically updates the lastPollticks. Also see Watches.

proj

abstract Proj proj()

Project associated with this watch

remove

Void remove(Ref id)

Convenience for removeAll([id])

removeAll

abstract Void removeAll(Ref[] ids)

Remove the given records from this watch. Any ids not currently subscribed by this watch are silently ignored. Raise exception if watch is closed.

removeGrid

Void removeGrid(Grid grid)

Convenience for removeAll for id column of each row

toStr

override Str toStr()

Debug string