hazelcast-client
Version:
Hazelcast - open source In-Memory Data Grid - client for NodeJS
64 lines • 2.21 kB
JavaScript
var murmur = require("../invocation/Murmur");
exports.PARTITION_HASH_OFFSET = 0;
exports.TYPE_OFFSET = 4;
exports.DATA_OFFSET = 8;
exports.HEAP_DATA_OVERHEAD = exports.DATA_OFFSET;
var HeapData = (function () {
function HeapData(buffer) {
if (buffer != null && buffer.length > 0 && buffer.length < exports.HEAP_DATA_OVERHEAD) {
throw new Error('Data should be either empty or should contain more than ' + exports.HEAP_DATA_OVERHEAD
+ ' bytes! -> '
+ buffer);
}
this.payload = buffer;
}
HeapData.prototype.toBuffer = function () {
return this.payload;
};
HeapData.prototype.getType = function () {
if (this.totalSize() === 0) {
return 0;
}
return this.payload.readIntBE(exports.TYPE_OFFSET, 4);
};
HeapData.prototype.totalSize = function () {
if (this.payload === null) {
return 0;
}
else {
return this.payload.length;
}
};
HeapData.prototype.dataSize = function () {
return Math.max(this.totalSize() - exports.HEAP_DATA_OVERHEAD, 0);
};
HeapData.prototype.getHeapCost = function () {
return 0;
};
HeapData.prototype.getPartitionHash = function () {
if (this.hasPartitionHash()) {
return this.payload.readIntBE(exports.PARTITION_HASH_OFFSET, 4);
}
else {
return this.hashCode();
}
};
HeapData.prototype.hashCode = function () {
return murmur(this.payload.slice(exports.DATA_OFFSET));
};
HeapData.prototype.equals = function (other) {
return this.payload.compare(other.toBuffer(), exports.DATA_OFFSET, other.toBuffer().length, exports.DATA_OFFSET) === 0;
};
HeapData.prototype.hasPartitionHash = function () {
return this.payload !== null
&& this.payload.length >= exports.HEAP_DATA_OVERHEAD
&& this.payload.readIntBE(exports.PARTITION_HASH_OFFSET, 4) !== 0;
};
HeapData.prototype.isPortable = function () {
return false;
};
return HeapData;
}());
exports.HeapData = HeapData;
//# sourceMappingURL=HeapData.js.map
;