@cross-border-bridge/memory-queue-data-bus
Version:
MemoryQueueDataBus for Web application
41 lines (40 loc) • 1.37 kB
JavaScript
// Copyright © 2017 DWANGO Co., Ltd.
var MemoryQueueDataBus = (function () {
function MemoryQueueDataBus(sender, receiver) {
this._sender = sender;
this._receiver = receiver;
this._handlers = [];
var _this = this;
this._receiver.setHandler(function () {
for (var _i = 0, _a = _this._handlers; _i < _a.length; _i++) {
var h = _a[_i];
h.apply(_this, arguments);
}
});
}
MemoryQueueDataBus.prototype.send = function () {
var data = [];
for (var _i = 0; _i < arguments.length; _i++) {
data[_i - 0] = arguments[_i];
}
this._sender.send.apply(this._sender, data);
};
MemoryQueueDataBus.prototype.addHandler = function (handler) {
this._handlers.push(handler);
};
MemoryQueueDataBus.prototype.removeHandler = function (handler) {
var i = this._handlers.indexOf(handler);
if (i < 0)
return;
this._handlers.splice(i, 1);
};
MemoryQueueDataBus.prototype.removeAllHandlers = function () {
this._handlers = [];
};
MemoryQueueDataBus.prototype.destroy = function () {
this.removeAllHandlers();
this._receiver.setHandler(undefined);
};
return MemoryQueueDataBus;
})();
exports.MemoryQueueDataBus = MemoryQueueDataBus;