diffusion
Version:
Diffusion JavaScript client
35 lines (28 loc) • 872 B
JavaScript
var Codec = require('io/codec');
var BEES = require('serialisers/byte-encoded-enum-serialiser');
var TopicAddFailReason = require('../../../topics/topics').TopicAddFailReason;
var TopicSpecificationSerialiser = require('topics/details/topic-specification-serialiser');
var Status = {
OK : 0,
OK_CACHED : 1,
FAILURE : 2,
CACHE_FAILURE : 3
};
var serialiser = {
read : function(input) {
var status = Codec.readByte(input);
var reason = "";
if (status === Status.FAILURE) {
reason = BEES.read(input, TopicAddFailReason);
}
return {
status : status,
reason : reason
};
},
write : function(output, req) {
Codec.writeString(output, req.path);
TopicSpecificationSerialiser.write(output, req.specification);
}
};
module.exports = serialiser;