import SimpleBuffer from "./SimpleBuffer"; import ApiBufferKey from "./ApiBufferKey"; class BufferMap { private bufferMap: Map; constructor() { this.bufferMap = new Map(); } public getBufferMap(): Map { return this.bufferMap; } public setBufferMap(bufferMap: Map): void { this.bufferMap = bufferMap; } public getBuffer(apiBufferKey: ApiBufferKey): SimpleBuffer | undefined { for (let key of this.bufferMap.keys()) { if (key.equals(apiBufferKey)) { return this.bufferMap.get(key); } } } public computeIfAbsent( apiBufferKey: ApiBufferKey, buffer: SimpleBuffer ): SimpleBuffer { let simpleBuffer: SimpleBuffer | undefined = this.getBuffer(apiBufferKey); if (simpleBuffer) { return simpleBuffer; } this.bufferMap.set(apiBufferKey, buffer); return buffer; } public delete(apiBufferKey: ApiBufferKey): boolean { for (let key of this.bufferMap.keys()) { if (key.equals(apiBufferKey)) { return this.bufferMap.delete(key); } } return false; } public clear(): void { this.bufferMap.clear(); } } export default BufferMap;