Options
All
  • Public
  • Public/Protected
  • All
Menu

Provides data transfer rate controlled publishing of IO values for IO sources and monitoring of changes in the association state of IO sources.

This controller respects the backpressure strategy of an IO source in order to cope with IO values that are more rapidly produced than specified in the recommended update rate.

Hierarchy

Index

Constructors

constructor

Accessors

communicationManager

container

options

registeredName

  • get registeredName(): string
  • Gets the registered name of this controller.

    The registered name is either defined by the corresponding key in the Components.controllers object in the container configuration, or by invoking Container.registerController method with this name.

    Returns string

runtime

Methods

Protected extendLogObject

  • extendLogObject(log: Log): void
  • Whenever one of the controller's log methods (e.g. logDebug, logInfo, logWarning, logError, logFatal) is called by application code, the controller creates a Log object with appropriate property values and passes it to this method before advertising it.

    You can override this method to additionally set certain properties (such as LogHost.hostname or Log.logLabels). Ensure that super.extendLogObject is called in your override. The base method does nothing.

    Parameters

    • log: Log

      log object to be extended before being advertised

    Returns void

isAssociated

  • isAssociated<T>(source: IoSource): boolean

logDebug

  • logDebug(message: string, ...tags: string[]): void

logError

  • logError(error: any, message: string, ...tags: string[]): void
  • Advertise a Log object for an error.

    Parameters

    • error: any

      an error (object)

    • message: string

      additional error message

    • Rest ...tags: string[]

      any number of log tags

    Returns void

logErrorWithStacktrace

  • logErrorWithStacktrace(error: any, message: string, ...tags: string[]): void

logFatal

  • logFatal(error: any, message: string, ...tags: string[]): void
  • Advertise a Log object for a fatal error.

    Parameters

    • error: any

      an error (object)

    • message: string

      additional error message

    • Rest ...tags: string[]

      any number of log tags

    Returns void

logInfo

  • logInfo(message: string, ...tags: string[]): void

logWarning

  • logWarning(message: string, ...tags: string[]): void

observeAssociation

  • observeAssociation<T>(source: IoSource): Observable<boolean>
  • Listen to associations or disassociations for the given IO source. The returned observable emits distinct boolean values until changed, i.e true when the first association is made and false, when the last association becomes disassociated. When subscribed, the current association state is emitted immediately.

    Type parameters

    • T

    Parameters

    Returns Observable<boolean>

observeUpdateRate

  • observeUpdateRate<T>(source: IoSource): Observable<number>
  • Listen to update rate changes for the given IO source. The returned observable emits distinct rate values until changed. When the last association becomes disassociated, undefined is emitted. When subscribed, the current update rate is emitted immediately.

    Type parameters

    • T

    Parameters

    Returns Observable<number>

onCommunicationManagerStarting

  • onCommunicationManagerStarting(): void

onCommunicationManagerStopping

  • onCommunicationManagerStopping(): void

onDispose

  • onDispose(): void
  • Called by the container when this instance should be disposed.

    Implement cleanup side effects here. Ensure that super.onDispose is called in your override. The base implementation does nothing.

    Returns void

onInit

  • onInit(): void
  • Called when the container has completely set up and injected all dependency components, including all its controllers.

    Override this method to perform initializations in your custom controller class instead of defining a constructor. Although the base implementation does nothing it is good practice to call super.onInit() in your override method; especially if your custom controller class does not extend from the base Controller class directly.

    Returns void

publish

  • publish<T>(source: IoSource, value: T): void
  • Schedule the given IO value for publishing on the given IO source. Values to be pulished may be throttled or sampled according to the backpressure strategy and the recommended update rate of the IO source.

    If the given IO source is not associated currently, no publishing takes place. The given IO value is discarded.

    Type parameters

    • T

    Parameters

    • source: IoSource

      an IO source object

    • value: T

      an IO value of the given type

    Returns void

Generated using TypeDoc