hazelcast-client
Version:
Hazelcast - open source In-Memory Data Grid - client for NodeJS
55 lines • 2.49 kB
JavaScript
var ClientMessage = require("../ClientMessage");
var BitsUtil_1 = require("../BitsUtil");
var RingbufferMessageType_1 = require("./RingbufferMessageType");
var REQUEST_TYPE = RingbufferMessageType_1.RingbufferMessageType.RINGBUFFER_READMANY;
var RESPONSE_TYPE = 115;
var RETRYABLE = false;
var RingbufferReadManyCodec = (function () {
function RingbufferReadManyCodec() {
}
RingbufferReadManyCodec.calculateSize = function (name, startSequence, minCount, maxCount, filter) {
var dataSize = 0;
dataSize += BitsUtil_1.BitsUtil.calculateSizeString(name);
dataSize += BitsUtil_1.BitsUtil.LONG_SIZE_IN_BYTES;
dataSize += BitsUtil_1.BitsUtil.INT_SIZE_IN_BYTES;
dataSize += BitsUtil_1.BitsUtil.INT_SIZE_IN_BYTES;
dataSize += BitsUtil_1.BitsUtil.BOOLEAN_SIZE_IN_BYTES;
if (filter !== null) {
dataSize += BitsUtil_1.BitsUtil.calculateSizeData(filter);
}
return dataSize;
};
RingbufferReadManyCodec.encodeRequest = function (name, startSequence, minCount, maxCount, filter) {
var clientMessage = ClientMessage.newClientMessage(this.calculateSize(name, startSequence, minCount, maxCount, filter));
clientMessage.setMessageType(REQUEST_TYPE);
clientMessage.setRetryable(RETRYABLE);
clientMessage.appendString(name);
clientMessage.appendLong(startSequence);
clientMessage.appendInt32(minCount);
clientMessage.appendInt32(maxCount);
clientMessage.appendBoolean(filter === null);
if (filter !== null) {
clientMessage.appendData(filter);
}
clientMessage.updateFrameLength();
return clientMessage;
};
RingbufferReadManyCodec.decodeResponse = function (clientMessage, toObjectFunction) {
if (toObjectFunction === void 0) { toObjectFunction = null; }
var parameters = { 'readCount': null, 'items': null };
parameters['readCount'] = clientMessage.readInt32();
var itemsSize = clientMessage.readInt32();
var items = [];
for (var itemsIndex = 0; itemsIndex < itemsSize; itemsIndex++) {
var itemsItem;
itemsItem = clientMessage.readData();
items.push(itemsItem);
}
parameters['items'] = items;
return parameters;
};
return RingbufferReadManyCodec;
}());
exports.RingbufferReadManyCodec = RingbufferReadManyCodec;
//# sourceMappingURL=RingbufferReadManyCodec.js.map
;