Add readArray and WriteArray to UhkBuffer

This commit is contained in:
Farkas József
2016-09-24 23:39:30 +02:00
parent 5ba0c2d12a
commit e3f82b250a

View File

@@ -1,3 +1,5 @@
import { Serializable } from './Serializable';
export class UhkBuffer {
private static eepromSize = 32 * 1024;
@@ -151,6 +153,23 @@ export class UhkBuffer {
this.writeUInt8(bool ? 1 : 0);
}
// See: How to create a new object from type parameter in generic class in typescript? http://stackoverflow.com/q/17382143
readArray<T extends Serializable<T>>(type: { new (): T }): T[] {
let array: T[] = [];
let length = this.readCompactLength();
for (let i = 0; i < length; ++i) {
array.push(new type().fromBinary(this));
}
return array;
}
writeArray<T extends Serializable<T>>(array: T[]): void {
this.writeCompactLength(array.length);
for (let element of array) {
element.toBinary(this);
}
}
backtrack(): void {
this.offset -= this.bytesToBacktrack;
this.bytesToBacktrack = 0;