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: Relation‹Function, 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