40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
JavaScript
|
'use strict';
|
||
|
|
||
|
var ver6 = parseInt(process.versions.node) >= 6;
|
||
|
|
||
|
module.exports = {
|
||
|
create: function (arg0, encoding) {
|
||
|
if (typeof arg0 === 'number') {
|
||
|
return ver6 ? Buffer.alloc(arg0) : new Buffer(arg0);
|
||
|
}
|
||
|
return ver6 ? Buffer.from(arg0, encoding) : new Buffer(arg0, encoding);
|
||
|
},
|
||
|
|
||
|
read: {
|
||
|
fixedLenUtf8String: function (buffer, start, length) {
|
||
|
return buffer.toString('utf8', start, start + length).trim();
|
||
|
},
|
||
|
fixedLenHexString: function (buffer, start, length) {
|
||
|
return buffer.toString('hex', start, start + length).toUpperCase();
|
||
|
},
|
||
|
uintBigEndian: function (buffer, start, length) {
|
||
|
return buffer.readUIntBE(start, length);
|
||
|
}
|
||
|
},
|
||
|
|
||
|
write: {
|
||
|
variableLenUtf8String: function (buffer, value, start, length) {
|
||
|
while (value.length !== length) {
|
||
|
value += ' ';
|
||
|
}
|
||
|
buffer.write(value, start, length, 'utf8');
|
||
|
},
|
||
|
fixedLenHexString: function (buffer, value, start, length) {
|
||
|
buffer.write(value, start, length, 'hex');
|
||
|
},
|
||
|
uintBigEndian: function (buffer, value, start, length) {
|
||
|
buffer.writeUIntBE(value, start, length);
|
||
|
}
|
||
|
}
|
||
|
};
|