Skip to main content

Class: DefaultUserSettingManager<T>

Defined in: src/sdk/settings/UserSetting.ts:219

A manager for user settings. Provides settings using their names as keys, publishes value change events on the event bus, and keeps setting values up to date when receiving change events across the bus.

Extended by​

Type Parameters​

Type ParameterDescription
T extends UserSettingRecordThe record describing the settings provided by the manager.

Implements​

Constructors​

Constructor​

new DefaultUserSettingManager<T>(bus, settingDefs, keepLocal): DefaultUserSettingManager<T>

Defined in: src/sdk/settings/UserSetting.ts:238

Creates a new instance of DefaultUserSettingManager.

Parameters​

ParameterTypeDefault valueDescription
busEventBusundefinedThe bus used by this manager to publish setting change events.
settingDefsreadonly UserSettingDefinition<T[keyof T]>[]undefinedThe setting definitions used to initialize this manager's settings.
keepLocalbooleanfalseWhether the manager should only sync the values of its settings within its local instrument. If true, then the manager will not sync setting values to or from the same settings on other instruments. If false, then the manager will sync setting values to and from the same settings on other instruments. Defaults to false.

Returns​

DefaultUserSettingManager<T>

Properties​

bus​

protected readonly bus: EventBus

Defined in: src/sdk/settings/UserSetting.ts:239

The bus used by this manager to publish setting change events.


publisher​

protected readonly publisher: Publisher<T>

Defined in: src/sdk/settings/UserSetting.ts:222


settings​

protected readonly settings: Map<string, UserSettingManagerEntry<T[keyof T]>>

Defined in: src/sdk/settings/UserSetting.ts:220


subscriber​

protected readonly subscriber: EventSubscriber<T>

Defined in: src/sdk/settings/UserSetting.ts:223


syncPublisher​

protected readonly syncPublisher: Publisher<UserSettingManagerSyncEvents>

Defined in: src/sdk/settings/UserSetting.ts:225


syncSubscriber​

protected readonly syncSubscriber: EventSubscriber<UserSettingManagerSyncEvents>

Defined in: src/sdk/settings/UserSetting.ts:226

Methods​

getAllSettings()​

getAllSettings(): UserSetting<UserSettingValue>[]

Defined in: src/sdk/settings/UserSetting.ts:330

Gets an array of all settings of this manager.

Returns​

UserSetting<UserSettingValue>[]

an array of all settings of this manager.

Implementation of​

UserSettingManager.getAllSettings


getSetting()​

getSetting<K>(name): UserSetting<ToNonNullable<PropertyTypeOf<T, K>>>

Defined in: src/sdk/settings/UserSetting.ts:320

Gets a setting from this manager.

Type Parameters​

Type Parameter
K extends string

Parameters​

ParameterTypeDescription
nameKThe name of the setting to get.

Returns​

UserSetting<ToNonNullable<PropertyTypeOf<T, K>>>

The requested setting.

Throws​

Error if no setting with the specified name exists.

Implementation of​

UserSettingManager.getSetting


mapTo()​

mapTo<M>(map): UserSettingManager<M & T>

Defined in: src/sdk/settings/UserSetting.ts:345

Maps a subset of this manager's settings to ones with aliased names, and creates a new setting manager which supports accessing the settings using their aliases.

Type Parameters​

Type Parameter
M extends UserSettingRecord

Parameters​

ParameterTypeDescription
mapUserSettingMap<M, T>A map defining the aliases of a subset of this manager's settings, with aliased setting names as keys and original setting names as values.

Returns​

UserSettingManager<M & T>

A new setting manager which supports accessing a subset of this manager's settings using aliased names.

Implementation of​

UserSettingManager.mapTo


onSettingValueChanged()​

protected onSettingValueChanged<K>(entry, value): void

Defined in: src/sdk/settings/UserSetting.ts:354

A callback which is called when one of this manager's settings has its value changed locally.

Type Parameters​

Type Parameter
K extends string | number | symbol

Parameters​

ParameterTypeDescription
entryUserSettingManagerEntry<T[K]>The entry for the setting that was changed.
valueT[K]The new value of the setting.

Returns​

void


onSettingValueSynced()​

protected onSettingValueSynced<K>(entry, data): void

Defined in: src/sdk/settings/UserSetting.ts:367

A callback which is called when a setting changed event is received over the event bus.

Type Parameters​

Type Parameter
K extends string | number | symbol

Parameters​

ParameterTypeDescription
entryUserSettingManagerEntry<T[K]>The entry for the setting that was changed.
dataUserSettingManagerSyncData<T[K]>The sync data.

Returns​

void


syncSettingFromEvent()​

protected syncSettingFromEvent<K>(entry, data): void

Defined in: src/sdk/settings/UserSetting.ts:386

Syncs a setting using data received from a sync event.

Type Parameters​

Type Parameter
K extends string | number | symbol

Parameters​

ParameterTypeDescription
entryUserSettingManagerEntry<T[K]>The entry for the setting to sync.
dataUserSettingManagerSyncData<T[K]>The sync event data.

Returns​

void


tryGetSetting()​

tryGetSetting<K>(name): OptionalUserSettingFromManager<T, K>

Defined in: src/sdk/settings/UserSetting.ts:315

Attempts to get a setting from this manager.

Type Parameters​

Type Parameter
K extends string

Parameters​

ParameterTypeDescription
nameKThe name of the setting to get.

Returns​

OptionalUserSettingFromManager<T, K>

The requested setting, or undefined if no such setting exists.

Implementation of​

UserSettingManager.tryGetSetting


whenSettingChanged()​

whenSettingChanged<K>(name): UserSettingConsumerFromManager<T, K>

Defined in: src/sdk/settings/UserSetting.ts:335

Gets a consumer which notifies handlers when the value of a setting changes.

Type Parameters​

Type Parameter
K extends string

Parameters​

ParameterTypeDescription
nameKThe name of a setting.

Returns​

UserSettingConsumerFromManager<T, K>

a consumer which notifies handlers when the value of the setting changes.

Throws​

Error if no setting with the specified name exists.

Deprecated​

Please use getSetting(name).sub() instead.

Implementation of​

UserSettingManager.whenSettingChanged