diffusion
Version:
Diffusion JavaScript client
26 lines (24 loc) • 969 B
JavaScript
var ClientFilterSubscribeResponse = require('services/control-client/client-filter-subscribe-response');
var ErrorReportSerialiser = require('services/error-report-serialiser');
var Codec = require('io/codec');
module.exports = {
read : function(input) {
var error = Codec.readByte(input);
if (error) {
var errors = Codec.readCollection(input, ErrorReportSerialiser.read);
return new ClientFilterSubscribeResponse(0, errors);
} else {
var numSelected = Codec.readInt32(input);
return new ClientFilterSubscribeResponse(numSelected, []);
}
},
write : function(output, response) {
if (response.isSuccess()) {
Codec.writeByte(output, 0);
Codec.writeInt32(output, response.selected);
} else {
Codec.writeByte(output, 1);
Codec.writeCollection(output, response.errors, ErrorReportSerialiser.write);
}
}
};