37 lines
847 B
JavaScript
37 lines
847 B
JavaScript
|
'use strict';
|
||
|
|
||
|
const Packet = require('./packet');
|
||
|
|
||
|
class PacketNodeEncoded extends Packet {
|
||
|
constructor(buf, pos, end, encoding) {
|
||
|
super(buf, pos, end);
|
||
|
this.encoding = encoding;
|
||
|
}
|
||
|
|
||
|
readStringLength() {
|
||
|
const len = this.readUnsignedLength();
|
||
|
if (len === null) return null;
|
||
|
|
||
|
this.pos += len;
|
||
|
return this.buf.toString(this.encoding, this.pos - len, this.pos);
|
||
|
}
|
||
|
|
||
|
readString(beg, len) {
|
||
|
return this.buf.toString(this.encoding, beg, beg + len);
|
||
|
}
|
||
|
|
||
|
subPacketLengthEncoded() {
|
||
|
const len = this.readUnsignedLength();
|
||
|
this.skip(len);
|
||
|
return new PacketNodeEncoded(this.buf, this.pos - len, this.pos, this.encoding);
|
||
|
}
|
||
|
|
||
|
readStringRemaining() {
|
||
|
const str = this.buf.toString(this.encoding, this.pos, this.end);
|
||
|
this.pos = this.end;
|
||
|
return str;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = PacketNodeEncoded;
|