diffusion
Version:
Diffusion JavaScript client
31 lines (28 loc) • 1.08 kB
JavaScript
var Codec = require('io/codec');
var UpdateStreamId = require('./update-stream-id');
var serialiser = {
read : function(input) {
var topicId = Codec.readInt32(input);
var instanceId = Codec.readInt32(input);
var partitionId = Codec.readInt32(input);
var generationId = Codec.readInt32(input);
var clustered = (partitionId!==0);
return new UpdateStreamId(topicId,
instanceId,
clustered,
clustered?(partitionId-1):0,
clustered?generationId:0);
},
write : function(output, request) {
Codec.writeInt32(output, request.topicId);
Codec.writeInt32(output, request.instanceId);
if (request.clustered) {
Codec.writeInt32(output, request.partitionId+1);
Codec.writeInt32(output, request.generationId);
} else {
Codec.writeInt32(output, 0);
Codec.writeInt32(output, 0);
}
}
};
module.exports = serialiser;