SQL Operations Studio Public Preview 1 (0.23) release source code

This commit is contained in:
Karl Burtram
2017-11-09 14:30:27 -08:00
parent b88ecb8d93
commit 3cdac41339
8829 changed files with 759707 additions and 286 deletions

View File

@@ -0,0 +1,38 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
import { IMessagePassingProtocol } from 'vs/base/parts/ipc/common/ipc';
import Event, { Emitter } from 'vs/base/common/event';
export interface Sender {
send(channel: string, ...args: any[]): void;
}
export class Protocol implements IMessagePassingProtocol {
private listener: IDisposable;
private _onMessage: Event<any>;
get onMessage(): Event<any> { return this._onMessage; }
constructor(private sender: Sender, private onMessageEvent: Event<any>) {
const emitter = new Emitter<any>();
onMessageEvent(msg => emitter.fire(msg));
this._onMessage = emitter.event;
}
send(message: any): void {
try {
this.sender.send('ipc:message', message);
} catch (e) {
// systems are going down
}
}
dispose(): void {
this.listener = dispose(this.listener);
}
}