openreplay/frontend/app/player/ios/parser.js
2021-05-01 15:12:01 +05:30

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
}
}