hazelcast-client
Version:
Hazelcast - open source In-Memory Data Grid - client for NodeJS
237 lines • 13.1 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 Util_1 = require("../Util");
var ReplicatedMapPutCodec_1 = require("../codec/ReplicatedMapPutCodec");
var ReplicatedMapClearCodec_1 = require("../codec/ReplicatedMapClearCodec");
var ReplicatedMapGetCodec_1 = require("../codec/ReplicatedMapGetCodec");
var ReplicatedMapContainsKeyCodec_1 = require("../codec/ReplicatedMapContainsKeyCodec");
var ReplicatedMapContainsValueCodec_1 = require("../codec/ReplicatedMapContainsValueCodec");
var ReplicatedMapSizeCodec_1 = require("../codec/ReplicatedMapSizeCodec");
var ReplicatedMapIsEmptyCodec_1 = require("../codec/ReplicatedMapIsEmptyCodec");
var ReplicatedMapRemoveCodec_1 = require("../codec/ReplicatedMapRemoveCodec");
var ReplicatedMapPutAllCodec_1 = require("../codec/ReplicatedMapPutAllCodec");
var ReplicatedMapKeySetCodec_1 = require("../codec/ReplicatedMapKeySetCodec");
var ReplicatedMapValuesCodec_1 = require("../codec/ReplicatedMapValuesCodec");
var ReplicatedMapEntrySetCodec_1 = require("../codec/ReplicatedMapEntrySetCodec");
var ReplicatedMapRemoveEntryListenerCodec_1 = require("../codec/ReplicatedMapRemoveEntryListenerCodec");
var EntryEventType_1 = require("../core/EntryEventType");
/* tslint:disable:max-line-length */
var ReplicatedMapAddEntryListenerToKeyWithPredicateCodec_1 = require("../codec/ReplicatedMapAddEntryListenerToKeyWithPredicateCodec");
var ReplicatedMapAddEntryListenerToKeyCodec_1 = require("../codec/ReplicatedMapAddEntryListenerToKeyCodec");
var ReplicatedMapAddEntryListenerWithPredicateCodec_1 = require("../codec/ReplicatedMapAddEntryListenerWithPredicateCodec");
var ReplicatedMapAddEntryListenerCodec_1 = require("../codec/ReplicatedMapAddEntryListenerCodec");
var PartitionSpecificProxy_1 = require("./PartitionSpecificProxy");
var ReplicatedMapProxy = /** @class */ (function (_super) {
__extends(ReplicatedMapProxy, _super);
function ReplicatedMapProxy() {
return _super !== null && _super.apply(this, arguments) || this;
}
ReplicatedMapProxy.prototype.put = function (key, value, ttl) {
if (ttl === void 0) { ttl = 0; }
Util_1.assertNotNull(key);
Util_1.assertNotNull(value);
var valueData = this.toData(value);
var keyData = this.toData(key);
return this.encodeInvokeOnKey(ReplicatedMapPutCodec_1.ReplicatedMapPutCodec, keyData, keyData, valueData, ttl);
};
ReplicatedMapProxy.prototype.clear = function () {
return this.encodeInvokeOnRandomTarget(ReplicatedMapClearCodec_1.ReplicatedMapClearCodec);
};
ReplicatedMapProxy.prototype.get = function (key) {
Util_1.assertNotNull(key);
var keyData = this.toData(key);
return this.encodeInvokeOnKey(ReplicatedMapGetCodec_1.ReplicatedMapGetCodec, keyData, keyData);
};
ReplicatedMapProxy.prototype.containsKey = function (key) {
Util_1.assertNotNull(key);
var keyData = this.toData(key);
return this.encodeInvokeOnKey(ReplicatedMapContainsKeyCodec_1.ReplicatedMapContainsKeyCodec, keyData, keyData);
};
ReplicatedMapProxy.prototype.containsValue = function (value) {
Util_1.assertNotNull(value);
var valueData = this.toData(value);
return this.encodeInvoke(ReplicatedMapContainsValueCodec_1.ReplicatedMapContainsValueCodec, valueData);
};
ReplicatedMapProxy.prototype.size = function () {
return this.encodeInvoke(ReplicatedMapSizeCodec_1.ReplicatedMapSizeCodec);
};
ReplicatedMapProxy.prototype.isEmpty = function () {
return this.encodeInvoke(ReplicatedMapIsEmptyCodec_1.ReplicatedMapIsEmptyCodec);
};
ReplicatedMapProxy.prototype.remove = function (key) {
Util_1.assertNotNull(key);
var keyData = this.toData(key);
return this.encodeInvokeOnKey(ReplicatedMapRemoveCodec_1.ReplicatedMapRemoveCodec, keyData, keyData);
};
ReplicatedMapProxy.prototype.putAll = function (pairs) {
var pair;
var pairId;
var entries = [];
for (pairId in pairs) {
pair = pairs[pairId];
var keyData = this.toData(pair[0]);
var valueData = this.toData(pair[1]);
entries.push([keyData, valueData]);
}
return this.encodeInvokeOnRandomTarget(ReplicatedMapPutAllCodec_1.ReplicatedMapPutAllCodec, entries);
};
ReplicatedMapProxy.prototype.keySet = function () {
var toObject = this.toObject.bind(this);
return this.encodeInvoke(ReplicatedMapKeySetCodec_1.ReplicatedMapKeySetCodec).then(function (keySet) {
return keySet.map(toObject);
});
};
ReplicatedMapProxy.prototype.values = function (comparator) {
var toObject = this.toObject.bind(this);
return this.encodeInvoke(ReplicatedMapValuesCodec_1.ReplicatedMapValuesCodec).then(function (valuesData) {
var results = valuesData.map(toObject);
if (comparator) {
return results.sort(comparator);
}
return results;
});
};
ReplicatedMapProxy.prototype.entrySet = function () {
var toObject = this.toObject.bind(this);
return this.encodeInvoke(ReplicatedMapEntrySetCodec_1.ReplicatedMapEntrySetCodec).then(function (entrySet) {
return entrySet.map(function (entry) { return [toObject(entry[0]), toObject(entry[1])]; });
});
};
ReplicatedMapProxy.prototype.addEntryListenerToKeyWithPredicate = function (listener, key, predicate) {
return this.addEntryListenerInternal(listener, predicate, key);
};
ReplicatedMapProxy.prototype.addEntryListenerWithPredicate = function (listener, predicate) {
return this.addEntryListenerInternal(listener, predicate, undefined);
};
ReplicatedMapProxy.prototype.addEntryListenerToKey = function (listener, key) {
return this.addEntryListenerInternal(listener, undefined, key);
};
ReplicatedMapProxy.prototype.addEntryListener = function (listener) {
return this.addEntryListenerInternal(listener, undefined, undefined);
};
ReplicatedMapProxy.prototype.removeEntryListener = function (listenerId) {
return this.client.getListenerService().deregisterListener(listenerId);
};
ReplicatedMapProxy.prototype.addEntryListenerInternal = function (listener, predicate, key) {
var toObject = this.toObject.bind(this);
var entryEventHandler = function (key, val, oldVal, mergingVal, event, uuid, numberOfAffectedEntries) {
var eventParams = [key, oldVal, val, mergingVal, numberOfAffectedEntries, uuid];
eventParams = eventParams.map(toObject);
var eventToListenerMap = (_a = {},
_a[EntryEventType_1.EntryEventType.ADDED] = 'added',
_a[EntryEventType_1.EntryEventType.REMOVED] = 'removed',
_a[EntryEventType_1.EntryEventType.UPDATED] = 'updated',
_a[EntryEventType_1.EntryEventType.EVICTED] = 'evicted',
_a[EntryEventType_1.EntryEventType.CLEAR_ALL] = 'clearedAll',
_a);
var eventMethod = eventToListenerMap[event];
if (listener.hasOwnProperty(eventMethod)) {
listener[eventMethod].apply(null, eventParams);
}
var _a;
};
var listenerHandler;
var codec;
if (key && predicate) {
var keyData = this.toData(key);
var predicateData = this.toData(predicate);
codec = this.createEntryListenerToKeyWithPredicate(this.name, keyData, predicateData);
listenerHandler = ReplicatedMapAddEntryListenerToKeyWithPredicateCodec_1.ReplicatedMapAddEntryListenerToKeyWithPredicateCodec.handle;
}
else if (key && !predicate) {
var keyData = this.toData(key);
codec = this.createEntryListenerToKey(this.name, keyData);
listenerHandler = ReplicatedMapAddEntryListenerToKeyCodec_1.ReplicatedMapAddEntryListenerToKeyCodec.handle;
}
else if (!key && predicate) {
var predicateData = this.toData(predicate);
codec = this.createEntryListenerWithPredicate(this.name, predicateData);
listenerHandler = ReplicatedMapAddEntryListenerWithPredicateCodec_1.ReplicatedMapAddEntryListenerWithPredicateCodec.handle;
}
else {
codec = this.createEntryListener(this.name);
listenerHandler = ReplicatedMapAddEntryListenerCodec_1.ReplicatedMapAddEntryListenerCodec.handle;
}
return this.client.getListenerService().registerListener(codec, function (m) { listenerHandler(m, entryEventHandler, toObject); });
};
ReplicatedMapProxy.prototype.createEntryListener = function (name) {
return {
encodeAddRequest: function (localOnly) {
return ReplicatedMapAddEntryListenerCodec_1.ReplicatedMapAddEntryListenerCodec.encodeRequest(name, localOnly);
},
decodeAddResponse: function (msg) {
return ReplicatedMapAddEntryListenerCodec_1.ReplicatedMapAddEntryListenerCodec.decodeResponse(msg).response;
},
encodeRemoveRequest: function (listenerId) {
return ReplicatedMapRemoveEntryListenerCodec_1.ReplicatedMapRemoveEntryListenerCodec.encodeRequest(name, listenerId);
}
};
};
ReplicatedMapProxy.prototype.createEntryListenerToKey = function (name, keyData) {
return {
encodeAddRequest: function (localOnly) {
return ReplicatedMapAddEntryListenerToKeyCodec_1.ReplicatedMapAddEntryListenerToKeyCodec.encodeRequest(name, keyData, localOnly);
},
decodeAddResponse: function (msg) {
return ReplicatedMapAddEntryListenerToKeyCodec_1.ReplicatedMapAddEntryListenerToKeyCodec.decodeResponse(msg).response;
},
encodeRemoveRequest: function (listenerId) {
return ReplicatedMapRemoveEntryListenerCodec_1.ReplicatedMapRemoveEntryListenerCodec.encodeRequest(name, listenerId);
}
};
};
ReplicatedMapProxy.prototype.createEntryListenerWithPredicate = function (name, predicateData) {
return {
encodeAddRequest: function (localOnly) {
return ReplicatedMapAddEntryListenerWithPredicateCodec_1.ReplicatedMapAddEntryListenerWithPredicateCodec.encodeRequest(name, predicateData, localOnly);
},
decodeAddResponse: function (msg) {
return ReplicatedMapAddEntryListenerWithPredicateCodec_1.ReplicatedMapAddEntryListenerWithPredicateCodec.decodeResponse(msg).response;
},
encodeRemoveRequest: function (listenerId) {
return ReplicatedMapRemoveEntryListenerCodec_1.ReplicatedMapRemoveEntryListenerCodec.encodeRequest(name, listenerId);
}
};
};
ReplicatedMapProxy.prototype.createEntryListenerToKeyWithPredicate = function (name, keyData, predicateData) {
return {
encodeAddRequest: function (localOnly) {
return ReplicatedMapAddEntryListenerToKeyWithPredicateCodec_1.ReplicatedMapAddEntryListenerToKeyWithPredicateCodec.encodeRequest(name, keyData, predicateData, localOnly);
},
decodeAddResponse: function (msg) {
return ReplicatedMapAddEntryListenerToKeyWithPredicateCodec_1.ReplicatedMapAddEntryListenerToKeyWithPredicateCodec.decodeResponse(msg).response;
},
encodeRemoveRequest: function (listenerId) {
return ReplicatedMapRemoveEntryListenerCodec_1.ReplicatedMapRemoveEntryListenerCodec.encodeRequest(name, listenerId);
}
};
};
return ReplicatedMapProxy;
}(PartitionSpecificProxy_1.PartitionSpecificProxy));
exports.ReplicatedMapProxy = ReplicatedMapProxy;
//# sourceMappingURL=ReplicatedMapProxy.js.map