/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { ExtHostHeapServiceShape } from '../common/extHost.protocol'; export class ExtHostHeapService implements ExtHostHeapServiceShape { private static _idPool = 0; private _data = new Map(); keep(obj: any): number { const id = ExtHostHeapService._idPool++; this._data.set(id, obj); return id; } delete(id: number): boolean { return this._data.delete(id); } get(id: number): T { return this._data.get(id); } $onGarbageCollection(ids: number[]): void { for (const id of ids) { this.delete(id); } } }