Class WinccoaCtrlScriptCache

Helper class for caching multiple instances of a CTRL script (initialized for different users if necessary). This helps improving performance when the same CTRL script is called multiple times by the same or different users.

Constructors

Properties

Methods

Constructors

  • Constructor.

    Parameters

    • manager: WinccoaManager

      Manager instance which is used for two things:

      Note that this instance only keeps a weak reference to manager which can become invalid if manager gets freed by the garbage collector (see isValid).

    • ctrlCode: string

      CTRL code of the scripts that will be returned by getScript.

    • Optionalname: string

      Optional name for the script that will be shown in error messages.

    • Optionalcallback: WinccoaCtrlCallback

      If given, this function can be called from the CTRL script by using the CTRL function callbackToJavaScript(). See WinccoaCtrlCallback for details and examples.

    Returns WinccoaCtrlScriptCache

    import {
    WinccoaCtrlScriptCache,
    WinccoaCtrlType,
    WinccoaManager,
    } from 'winccoa-manager';
    const winccoa = new WinccoaManager();

    async function scriptCacheTest() {
    // store the script in a cache for repeated use
    const cache = new WinccoaCtrlScriptCache(
    winccoa,
    `double simpleArgs(int x, double y, string s)
    {
    return (x * y) + s.length();
    }`,
    'simple args cache example'
    );

    for (let i = 1; i <= 20; i++) {
    const result = (await cache
    .getScript()
    .start(
    'simpleArgs',
    [i, 34.56, 'some text'],
    [WinccoaCtrlType.int, WinccoaCtrlType.double, WinccoaCtrlType.string],
    )) as number;
    console.log(result);
    }
    }

    void scriptCacheTest();

Properties

ctrlCode: string

CTRL code of the scripts that will be returned by getScript.

name?: string

Optional name for the script that will be shown in error messages.

Methods

  • Indicates whether this instance is valid (that is, whether the weak reference to its manager is still valid).

    Returns boolean