UNPKG

jalhyd

Version:

JaLHyd, a Javascript Library for Hydraulics

53 lines 2.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SessionSettings = void 0; const internal_modules_1 = require("./internal_modules"); const internal_modules_2 = require("./internal_modules"); class SessionSettings { constructor() { this._props = new internal_modules_2.Props(); this._observable = new internal_modules_1.Observable(); this._props.setPropValue(SessionSettings.ComputePrecisionProp, SessionSettings.defaultComputePrecision); this._props.setPropValue(SessionSettings.MaxIterationsProp, SessionSettings.defaultMaxIterations); } static get instance() { if (SessionSettings._instance === undefined) { SessionSettings._instance = new SessionSettings(); } return SessionSettings._instance; } static get precision() { return SessionSettings.instance._props.getPropValue(SessionSettings.ComputePrecisionProp); } static set precision(p) { SessionSettings.instance._props.setPropValue(SessionSettings.ComputePrecisionProp, p, this._instance); SessionSettings.instance.notifyObservers(SessionSettings.ComputePrecisionProp); } static get maxIterations() { return SessionSettings.instance._props.getPropValue(SessionSettings.MaxIterationsProp); } static set maxIterations(n) { SessionSettings.instance._props.setPropValue(SessionSettings.MaxIterationsProp, n, this._instance); SessionSettings.instance.notifyObservers(SessionSettings.MaxIterationsProp); } // IObserver interface addObserver(o) { this._observable.addObserver(o); } removeObserver(o) { this._observable.removeObserver(o); } notifyObservers(data, sender) { // use SessionSettings._instance and not this to be able to use instanceof operator this._observable.notifyObservers(data, SessionSettings._instance); } } exports.SessionSettings = SessionSettings; /** session-wide calculation precision, used by all Nubs */ SessionSettings.defaultComputePrecision = 1e-7; /** session-wide maximum number of iterations, used by all Nubs in Newton() and Dichotomie() */ SessionSettings.defaultMaxIterations = 100; // property names SessionSettings.ComputePrecisionProp = "computePrecision"; SessionSettings.MaxIterationsProp = "maxIterations"; //# sourceMappingURL=session_settings.js.map