lwm2m
Version:
Library for developing servers and client of OMA Lightweight M2M
50 lines (42 loc) • 1.57 kB
JavaScript
/*
* Copyright 2017 Alexandre Moreno <alex_moreno@tutk.com>
*
* This file is part of node-lwm2m
*
* node-lwm2m is free software: you can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* node-lwm2m is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with node-lwm2m.
* If not, seehttp://www.gnu.org/licenses/.
*
* For those usages not covered by the GNU Affero General Public License
* please contact with::[contacto@tid.es]
*/
;
var utils = require('../utils');
var Transform = require('readable-stream').Transform;
function DecodeStream(contentType, schema) {
this.contentType = contentType;
this.schema = schema;
Transform.call(this, { readableObjectMode: true });
}
DecodeStream.prototype = Object.create(Transform.prototype);
DecodeStream.prototype.constructor = DecodeStream;
DecodeStream.prototype._transform = function(chunk, encoding, callback) {
var data = utils.parsePayload(chunk, this.contentType, this.schema);
this.push(data);
callback();
};
DecodeStream.prototype.close = function() {
this.push(null);
this.emit('close');
};
module.exports = DecodeStream;