12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- var Channel = require("./channel");
- class Context {
- constructor(eventual) {
- this.version = "Context obj MAP version";
- this.eventual = eventual;
- //this.listeners = new Map();
- this.listeners = {}; // Flat map
- this.watchers = {};
- }
- destroy() {
- this.eventual.destroyContext(this);
- }
- // Create a master channel inheritance?
- channel(...names) {
- var finalName = names.join(Channel.SEP);
- return new Channel(this,finalName);
- }
- get(name,create) {
- if(!this.listeners[name] && create) {
- var o = {listeners:{},callbacks:[]};
- this.listeners[name]= o;
- return o;
- }
- // Should return copy
- return this.listeners[name];
- /*var nodes = name.split(chs);
- var cur = this;
- for(var v of nodes ) {
- if(cur.listeners[v] == undefined) {
- if(create == undefined) { return null; }
- cur.listeners[v] = {listeners:{},callbacks:[]}
- }
- cur = cur.listeners[v]; // next;
- };
- return cur;*/
- }
- getCallbacks(name) {
- var listener = this.get(name);
- if(listener==null) return [];
- return listener.callbacks;
- }
- getWatchers(name) {
- return this.watchers[name] || [];
- }
- }
- module.exports = Context;
|