31 lines
No EOL
473 B
JavaScript
31 lines
No EOL
473 B
JavaScript
import readMessage from '../MessageDistributor/messages';
|
|
|
|
|
|
export default class Parser {
|
|
_p = 0
|
|
_data
|
|
_error = null
|
|
constructor(byteArray) {
|
|
this._data = byteArray;
|
|
}
|
|
|
|
parseEach(cb) {
|
|
while (this.hasNext()) {
|
|
const msg = this.parseNext();
|
|
if (msg !== null) {
|
|
cb(msg);
|
|
}
|
|
}
|
|
}
|
|
|
|
hasNext() {
|
|
return !this._error && this._data.length > this._p;
|
|
}
|
|
|
|
parseNext() {
|
|
let msg;
|
|
[ msg, this._p ] = readMessage(this._data, this._p);
|
|
return msg
|
|
}
|
|
|
|
} |