2 * Copyright (c) 2018 The xterm.js authors. All rights reserved.
6 import { EventEmitter, IEvent } from 'common/EventEmitter';
7 import { Disposable } from 'common/Lifecycle';
8 import { IMarker } from 'common/Types';
10 export class Marker extends Disposable implements IMarker {
11 private static _nextId = 1;
13 private _id: number = Marker._nextId++;
14 public isDisposed: boolean = false;
16 public get id(): number { return this._id; }
18 private _onDispose = new EventEmitter<void>();
19 public get onDispose(): IEvent<void> { return this._onDispose.event; }
27 public dispose(): void {
28 if (this.isDisposed) {
31 this.isDisposed = true;
33 // Emit before super.dispose such that dispose listeners get a change to react
34 this._onDispose.fire();