-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdelegate.js
More file actions
39 lines (35 loc) · 867 Bytes
/
delegate.js
File metadata and controls
39 lines (35 loc) · 867 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/* @flow */
import { Emitter, CompositeDisposable } from 'atom'
import type { Debugger } from './types'
export default class DebuggerDelegate {
emitter: Emitter;
provider: Debugger;
subscriptions: CompositeDisposable;
constructor(provider: Debugger) {
this.provider = provider
this.emitter = new Emitter()
this.subscriptions = new CompositeDisposable()
this.subscriptions.add(this.emitter)
}
get(): Debugger {
return this.provider
}
// Real stuff -- starts
start() {
console.log('start debugger')
}
stop() {
console.log('stop debugger')
}
// Real stuff -- ends
onDidDestroy(callback: (() => any)) {
return this.emitter.on('did-destroy', callback)
}
dispose() {
if (this.subscriptions.isDisposed()) {
return
}
this.emitter.emit('did-destroy')
this.subscriptions.dispose()
}
}