diffusion
Version:
Diffusion JavaScript client
47 lines (38 loc) • 1.4 kB
JavaScript
var RangeQueryParameters = require('features/time-series/range-query-parameters');
var Point = require('features/time-series/point');
var Range = require('features/time-series/range');
var BEES = require('serialisers/byte-encoded-enum-serialiser');
var Codec = require('io/codec');
function writePoint(output, point) {
Codec.writeInt64(output, point.value);
BEES.write(output, point.type);
}
function writeRange(output, range) {
writePoint(output, range.anchor);
writePoint(output, range.span);
}
function readPoint(input) {
var value = Codec.readInt64(input);
var type = BEES.read(input, Point.Type);
return new Point(value, type);
}
function readRange(input) {
var anchor = readPoint(input);
var span = readPoint(input);
return new Range(anchor, span);
}
module.exports = {
read : function(input) {
var queryType = BEES.read(input, RangeQueryParameters.QueryType);
var viewRange = readRange(input);
var editRange = readRange(input);
var limit = Codec.readInt64(input);
return new RangeQueryParameters(queryType, viewRange, editRange, limit);
},
write : function(output, parameters) {
BEES.write(output, parameters.queryType);
writeRange(output, parameters.viewRange);
writeRange(output, parameters.editRange);
Codec.writeInt64(output, parameters.limit);
}
};