bitcore-node-zcash/lib/bus.js

44 lines
1.1 KiB
JavaScript
Raw Normal View History

2015-07-29 10:36:23 -07:00
'use strict';
var events = require('events');
var util = require('util');
function Bus(params) {
events.EventEmitter.call(this);
this.db = params.db;
}
util.inherits(Bus, events.EventEmitter);
Bus.prototype.subscribe = function(name) {
for (var i = 0; i < this.db.modules; i++) {
var module = this.db.modules[i];
var events = module.getEvents();
for (var j = 0; i < events.length; j++) {
var eventName = events[0];
var subscribeHandler = events[2];
var params = arguments.slice(1);
if (name === eventName) {
subscribeHandler.apply(events[1], params);
}
}
}
};
Bus.prototype.unsubscribe = function(name) {
for (var i = 0; i < this.db.modules; i++) {
var module = this.db.modules[i];
var events = module.getEvents();
for (var j = 0; i < events.length; j++) {
var eventName = events[0];
var unsubscribeHandler = events[3];
var params = arguments.slice(1);
if (name === eventName) {
unsubscribeHandler.apply(events[1], params);
}
}
}
};
module.exports = Bus;