hazelcast-client
Version:
Hazelcast - open source In-Memory Data Grid - client for NodeJS
161 lines • 7.58 kB
JavaScript
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
var ItemListener_1 = require('../core/ItemListener');
var PartitionSpecificProxy_1 = require('./PartitionSpecificProxy');
var QueueSizeCodec_1 = require('../codec/QueueSizeCodec');
var QueueOfferCodec_1 = require('../codec/QueueOfferCodec');
var QueuePeekCodec_1 = require('../codec/QueuePeekCodec');
var QueuePollCodec_1 = require('../codec/QueuePollCodec');
var QueueRemainingCapacityCodec_1 = require('../codec/QueueRemainingCapacityCodec');
var QueueRemoveCodec_1 = require('../codec/QueueRemoveCodec');
var QueueContainsCodec_1 = require('../codec/QueueContainsCodec');
var QueueIteratorCodec_1 = require('../codec/QueueIteratorCodec');
var QueueClearCodec_1 = require('../codec/QueueClearCodec');
var QueueDrainToCodec_1 = require('../codec/QueueDrainToCodec');
var QueueDrainToMaxSizeCodec_1 = require('../codec/QueueDrainToMaxSizeCodec');
var QueueIsEmptyCodec_1 = require('../codec/QueueIsEmptyCodec');
var QueueTakeCodec_1 = require('../codec/QueueTakeCodec');
var QueueAddAllCodec_1 = require('../codec/QueueAddAllCodec');
var QueueContainsAllCodec_1 = require('../codec/QueueContainsAllCodec');
var QueuePutCodec_1 = require('../codec/QueuePutCodec');
var QueueCompareAndRemoveAllCodec_1 = require('../codec/QueueCompareAndRemoveAllCodec');
var QueueCompareAndRetainAllCodec_1 = require('../codec/QueueCompareAndRetainAllCodec');
var QueueAddListenerCodec_1 = require('../codec/QueueAddListenerCodec');
var QueueRemoveListenerCodec_1 = require('../codec/QueueRemoveListenerCodec');
var QueueProxy = (function (_super) {
__extends(QueueProxy, _super);
function QueueProxy() {
_super.apply(this, arguments);
}
QueueProxy.prototype.add = function (item) {
return this.offer(item).then(function (ret) {
if (ret) {
return true;
}
else {
throw new Error('Queue is full.');
}
});
};
QueueProxy.prototype.addAll = function (items) {
var rawList = [];
var toData = this.toData.bind(this);
items.forEach(function (item) {
rawList.push(toData(item));
});
return this.encodeInvoke(QueueAddAllCodec_1.QueueAddAllCodec, rawList);
};
QueueProxy.prototype.addItemListener = function (listener, includeValue) {
var _this = this;
var request = QueueAddListenerCodec_1.QueueAddListenerCodec.encodeRequest(this.name, includeValue, false);
var handler = function (message) {
QueueAddListenerCodec_1.QueueAddListenerCodec.handle(message, function (item, uuid, eventType) {
var responseObject;
if (item == null) {
responseObject = null;
}
else {
responseObject = _this.toObject(item);
}
if (eventType === ItemListener_1.ItemEventType.ADDED) {
listener.itemAdded(responseObject, null, eventType);
}
else if (eventType === ItemListener_1.ItemEventType.REMOVED) {
listener.itemRemoved(responseObject, null, eventType);
}
});
};
return this.client.getListenerService().registerListener(request, handler, QueueAddListenerCodec_1.QueueAddListenerCodec.decodeResponse);
};
QueueProxy.prototype.clear = function () {
return this.encodeInvoke(QueueClearCodec_1.QueueClearCodec);
};
QueueProxy.prototype.contains = function (item) {
var itemData = this.toData(item);
return this.encodeInvoke(QueueContainsCodec_1.QueueContainsCodec, itemData);
};
QueueProxy.prototype.containsAll = function (items) {
var toData = this.toData.bind(this);
var rawItems = items.map(toData);
return this.encodeInvoke(QueueContainsAllCodec_1.QueueContainsAllCodec, rawItems);
};
QueueProxy.prototype.drainTo = function (arr, maxElements) {
if (maxElements === void 0) { maxElements = null; }
var toObject = this.toObject.bind(this);
var promise;
if (maxElements === null) {
promise = this.encodeInvoke(QueueDrainToCodec_1.QueueDrainToCodec);
}
else {
promise = this.encodeInvoke(QueueDrainToMaxSizeCodec_1.QueueDrainToMaxSizeCodec, maxElements);
}
return promise.then(function (rawArr) {
rawArr.forEach(function (rawItem) {
arr.push(toObject(rawItem));
});
return rawArr.length;
});
};
QueueProxy.prototype.isEmpty = function () {
return this.encodeInvoke(QueueIsEmptyCodec_1.QueueIsEmptyCodec);
};
QueueProxy.prototype.offer = function (item, time) {
if (time === void 0) { time = 0; }
var itemData = this.toData(item);
return this.encodeInvoke(QueueOfferCodec_1.QueueOfferCodec, itemData, time);
};
QueueProxy.prototype.peek = function () {
return this.encodeInvoke(QueuePeekCodec_1.QueuePeekCodec);
};
QueueProxy.prototype.poll = function (time) {
if (time === void 0) { time = 0; }
return this.encodeInvoke(QueuePollCodec_1.QueuePollCodec, time);
};
QueueProxy.prototype.put = function (item) {
var itemData = this.toData(item);
return this.encodeInvoke(QueuePutCodec_1.QueuePutCodec, itemData);
};
QueueProxy.prototype.remainingCapacity = function () {
return this.encodeInvoke(QueueRemainingCapacityCodec_1.QueueRemainingCapacityCodec);
};
QueueProxy.prototype.remove = function (item) {
var itemData = this.toData(item);
return this.encodeInvoke(QueueRemoveCodec_1.QueueRemoveCodec, itemData);
};
QueueProxy.prototype.removeAll = function (items) {
var toData = this.toData.bind(this);
var rawItems = items.map(toData);
return this.encodeInvoke(QueueCompareAndRemoveAllCodec_1.QueueCompareAndRemoveAllCodec, rawItems);
};
QueueProxy.prototype.removeItemListener = function (registrationId) {
return this.client.getListenerService().deregisterListener(QueueRemoveListenerCodec_1.QueueRemoveListenerCodec.encodeRequest(this.name, registrationId), QueueRemoveListenerCodec_1.QueueRemoveListenerCodec.decodeResponse);
};
QueueProxy.prototype.retainAll = function (items) {
var toData = this.toData.bind(this);
var rawItems = items.map(toData);
return this.encodeInvoke(QueueCompareAndRetainAllCodec_1.QueueCompareAndRetainAllCodec, rawItems);
};
QueueProxy.prototype.size = function () {
return this.encodeInvoke(QueueSizeCodec_1.QueueSizeCodec);
};
QueueProxy.prototype.take = function () {
return this.encodeInvoke(QueueTakeCodec_1.QueueTakeCodec);
};
QueueProxy.prototype.toArray = function () {
var arr = [];
var toObject = this.toObject.bind(this);
return this.encodeInvoke(QueueIteratorCodec_1.QueueIteratorCodec).then(function (dataArray) {
dataArray.forEach(function (data) {
arr.push(toObject(data));
});
return arr;
});
};
return QueueProxy;
}(PartitionSpecificProxy_1.PartitionSpecificProxy));
exports.QueueProxy = QueueProxy;
//# sourceMappingURL=QueueProxy.js.map