91 lines
2.1 KiB
JavaScript
91 lines
2.1 KiB
JavaScript
"use strict";
|
|
const Debug = require("debug");
|
|
const DEBUG = Debug('wamp:procedure');
|
|
let procedures = {};
|
|
class Procedures {
|
|
/**
|
|
*
|
|
*
|
|
* @static
|
|
* @param {string} realm
|
|
*/
|
|
static registerRealm(realm) {
|
|
procedures[realm] = {};
|
|
}
|
|
/**
|
|
*
|
|
*
|
|
* @static
|
|
* @param {string} realm
|
|
* @param {string} uri
|
|
* @param {number} sessionID
|
|
* @param {number} procedureID
|
|
*/
|
|
static add(realm, uri, sessionID, procedureID) {
|
|
DEBUG('registering procedure %s', uri);
|
|
DEBUG('procedure id: %s', procedureID);
|
|
DEBUG('session id: %s', sessionID);
|
|
const PROCEDURE = {
|
|
procedureID: procedureID,
|
|
sessionID: sessionID,
|
|
uri: uri
|
|
};
|
|
procedures[realm][uri] = PROCEDURE;
|
|
}
|
|
/**
|
|
*
|
|
*
|
|
* @static
|
|
* @param {string} realm
|
|
* @param {string} uri
|
|
* @returns {ProcedureInterface}
|
|
*/
|
|
static get(realm, uri) {
|
|
DEBUG('getting %s: ', uri);
|
|
return procedures[realm][uri];
|
|
}
|
|
/**
|
|
*
|
|
*
|
|
* @static
|
|
* @param {string} realm
|
|
* @param {number} id
|
|
* @returns {ProcedureInterface}
|
|
*/
|
|
static getByID(realm, id) {
|
|
const KEYS = Object.keys(procedures[realm]);
|
|
const LENGTH = KEYS.length;
|
|
for (let i = 0; i < LENGTH; i++) {
|
|
const PROCEDURE = procedures[realm][KEYS[i]];
|
|
if (PROCEDURE.procedureID === id) {
|
|
DEBUG('getByID id: %s, uri: %s', PROCEDURE.procedureID, PROCEDURE.uri);
|
|
return PROCEDURE;
|
|
}
|
|
}
|
|
}
|
|
/**
|
|
*
|
|
*
|
|
* @static
|
|
* @param {string} realm
|
|
* @param {string} uri
|
|
*/
|
|
static remove(realm, uri) {
|
|
DEBUG('removing %s: ', uri);
|
|
procedures[realm][uri] = undefined;
|
|
}
|
|
/**
|
|
*
|
|
*
|
|
* @static
|
|
* @param {string} realm
|
|
* @param {string} uri
|
|
* @returns {boolean}
|
|
*/
|
|
static canAdd(realm, uri) {
|
|
return Procedures.get(realm, uri) ? false : true;
|
|
}
|
|
}
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.default = Procedures;
|
|
//# sourceMappingURL=procedures.js.map
|