jalhyd
Version:
JaLHyd, a Javascript Library for Hydraulics
53 lines • 2.4 kB
JavaScript
;
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