hazelcast-client
Version:
Hazelcast - open source In-Memory Data Grid - client for NodeJS
196 lines • 9.02 kB
JavaScript
"use strict";
/*
* Copyright (c) 2008-2018, Hazelcast, Inc. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var QueueAddAllCodec_1 = require("../codec/QueueAddAllCodec");
var QueueAddListenerCodec_1 = require("../codec/QueueAddListenerCodec");
var QueueClearCodec_1 = require("../codec/QueueClearCodec");
var QueueCompareAndRemoveAllCodec_1 = require("../codec/QueueCompareAndRemoveAllCodec");
var QueueCompareAndRetainAllCodec_1 = require("../codec/QueueCompareAndRetainAllCodec");
var QueueContainsAllCodec_1 = require("../codec/QueueContainsAllCodec");
var QueueContainsCodec_1 = require("../codec/QueueContainsCodec");
var QueueDrainToCodec_1 = require("../codec/QueueDrainToCodec");
var QueueDrainToMaxSizeCodec_1 = require("../codec/QueueDrainToMaxSizeCodec");
var QueueIsEmptyCodec_1 = require("../codec/QueueIsEmptyCodec");
var QueueIteratorCodec_1 = require("../codec/QueueIteratorCodec");
var QueueOfferCodec_1 = require("../codec/QueueOfferCodec");
var QueuePeekCodec_1 = require("../codec/QueuePeekCodec");
var QueuePollCodec_1 = require("../codec/QueuePollCodec");
var QueuePutCodec_1 = require("../codec/QueuePutCodec");
var QueueRemainingCapacityCodec_1 = require("../codec/QueueRemainingCapacityCodec");
var QueueRemoveCodec_1 = require("../codec/QueueRemoveCodec");
var QueueRemoveListenerCodec_1 = require("../codec/QueueRemoveListenerCodec");
var QueueSizeCodec_1 = require("../codec/QueueSizeCodec");
var QueueTakeCodec_1 = require("../codec/QueueTakeCodec");
var ItemListener_1 = require("../core/ItemListener");
var HazelcastError_1 = require("../HazelcastError");
var PartitionSpecificProxy_1 = require("./PartitionSpecificProxy");
var QueueProxy = /** @class */ (function (_super) {
__extends(QueueProxy, _super);
function QueueProxy() {
return _super !== null && _super.apply(this, arguments) || this;
}
QueueProxy.prototype.add = function (item) {
return this.offer(item).then(function (ret) {
if (ret) {
return true;
}
else {
throw new HazelcastError_1.IllegalStateError('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 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);
}
});
};
var codec = this.createEntryListener(this.name, includeValue);
return this.client.getListenerService().registerListener(codec, handler);
};
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(registrationId);
};
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;
});
};
QueueProxy.prototype.createEntryListener = function (name, includeValue) {
return {
encodeAddRequest: function (localOnly) {
return QueueAddListenerCodec_1.QueueAddListenerCodec.encodeRequest(name, includeValue, localOnly);
},
decodeAddResponse: function (msg) {
return QueueAddListenerCodec_1.QueueAddListenerCodec.decodeResponse(msg).response;
},
encodeRemoveRequest: function (listenerId) {
return QueueRemoveListenerCodec_1.QueueRemoveListenerCodec.encodeRequest(name, listenerId);
},
};
};
return QueueProxy;
}(PartitionSpecificProxy_1.PartitionSpecificProxy));
exports.QueueProxy = QueueProxy;
//# sourceMappingURL=QueueProxy.js.map