Skip to content

Class: Manager

Singleton which manages state of all known paths. It provides two functionalities: 1) Executes Operations to either cache the resulting State in conjuction with its _query_ or invalidate its dependent paths, and 2) Accepts subscriptions to cached State via queries and notifies relevant subscribers whenever cached State change.

Hierarchy

  • Manager

Index

Constructors

Properties

Methods

Constructors

constructor

+ new Manager(maxSize: number): Manager

Defined in lib/control/Manager.ts:71

Parameters:

Name Type Default
maxSize number null

Returns: Manager

Properties

Private active

active: Map‹string, Promise‹State›› = new Map()

Defined in lib/control/Manager.ts:62

Stores queries which are actively being calculated, along with a promise resolving to their eventual state.


Private globals

globals: Cache = new LocalCache()

Defined in lib/control/Manager.ts:59

An object that implements the Cache interface, which will be used to store cached State and dependency graphs. By defualt, this is an instance of LocalCache, but when operating in a clustered environment, this should overriden with a global cache.


Private listeners

listeners: Set‹Function = new Set()

Defined in lib/control/Manager.ts:71

A set containing functions (path, internal) => {...} which will be invoked when any path is invalidated, with the invalidated path string and a boolean denoting whether the invalidating initiated by a caller other than the Manager.


Protected maxSize

maxSize: number = 25000

Defined in lib/control/Manager.ts:56

The maximum number of queries that can be cached before an eviction occurs.


Private operations

operations: Map‹string, Operation = new Map()

Defined in lib/control/Manager.ts:65

Maps queries to cacheable operations that will be invoked to recalculate their {@linkcode Manager.states|state}.


Private subscriptions

subscriptions: RelationFunction, string› = new Relation()

Defined in lib/control/Manager.ts:68

Maps subscribers (represented by callback functions) to queries and vice versa. Whenever a query is recalculated, its associated subscribers will be invoked with the resulting state.


Static Private instance

instance: Manager

Defined in lib/control/Manager.ts:53

The instance of Manager (or derived class) currently accessible via the Manager singleton, using {@linkcode Mangager.access}.

Methods

Private cache

cache(operation: Operation): Promise‹State

Defined in lib/control/Manager.ts:81

Executes the given operation and stores it as well as the resulting state in association with the operation's query.

Parameters:

Name Type
operation Operation

Returns: Promise‹State


Private evict

evict(): Promise‹boolean›

Defined in lib/control/Manager.ts:119

Removes the oldest cached query with no associated subscribers.

Returns: Promise‹boolean›


execute

execute(operation: Operation): Promise‹State

Defined in lib/control/Manager.ts:173

Safely invokes an operation, caching the resulting state if applicable or otherwise invalidating dependent paths.

Parameters:

Name Type
operation Operation

Returns: Promise‹State


invalidate

invalidate(paths: string | Array‹string›, override: boolean): Promise‹void›

Defined in lib/control/Manager.ts:148

Invalidates a path, possibly alerting listeners and causing all associated queries to be recalculated.

Parameters:

Name Type Default Description
paths string | Array‹string› - -
override boolean false If true, signifies that listeners should not be notified of the invalidated paths.

Returns: Promise‹void›


listen

listen(callback: Function): void

Defined in lib/control/Manager.ts:194

Registers a function callback to be invoked whenever a path is invalidated.

Parameters:

Name Type Description
callback Function A function (path, internal) => {}.

Returns: void


subscribe

subscribe(client: Function, query: string): boolean

Defined in lib/control/Manager.ts:206

Registers a subscriber to be invoked whenever the state of query changes.

Parameters:

Name Type Default
client Function -
query string null

Returns: boolean


unlisten

unlisten(callback: Function): void

Defined in lib/control/Manager.ts:199

Unregisters a listener function callback.

Parameters:

Name Type
callback Function

Returns: void


Private unset

unset(query: string): Promise‹void›

Defined in lib/control/Manager.ts:134

Removes a query from the cache along with all of its associations.

Parameters:

Name Type Description
query string A query string.

Returns: Promise‹void›


unsubscribe

unsubscribe(client: Function, query: string): void

Defined in lib/control/Manager.ts:215

Unregisters a subscriber from the given query, or from all subscribed queries if no query is provided.

Parameters:

Name Type Default
client Function -
query string null

Returns: void


Static access

access(): Manager

Defined in lib/control/Manager.ts:220

Returns the Manager singleton instance. If the singleton instance has not been manually defined using Manager.initialize, a default instance of Manager will be created.

Returns: Manager


Static initialize

initialize(instance: Manager): void

Defined in lib/control/Manager.ts:231

Sets the Manager singleton instance that will be accessible throughout the application instance.

Parameters:

Name Type Description
instance Manager

Returns: void