export abstract class BufferedClass { buffer: ArrayBuffer; view: DataView; constructor(bufferSize: number, existingBuffer?: ArrayBuffer, offset?: number) { if (existingBuffer !== undefined && offset !== undefined) { this.buffer = existingBuffer; this.view = new DataView(existingBuffer, offset, bufferSize); } else { this.buffer = new ArrayBuffer(bufferSize); this.view = new DataView(this.buffer); } } }