mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-03-27 15:20:30 -04:00
Vscode merge (#4582)
* Merge from vscode 37cb23d3dd4f9433d56d4ba5ea3203580719a0bd * fix issues with merges * bump node version in azpipe * replace license headers * remove duplicate launch task * fix build errors * fix build errors * fix tslint issues * working through package and linux build issues * more work * wip * fix packaged builds * working through linux build errors * wip * wip * wip * fix mac and linux file limits * iterate linux pipeline * disable editor typing * revert series to parallel * remove optimize vscode from linux * fix linting issues * revert testing change * add work round for new node * readd packaging for extensions * fix issue with angular not resolving decorator dependencies
This commit is contained in:
@@ -3,33 +3,20 @@
|
||||
* 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/node/ipc';
|
||||
import { Event, Emitter } from 'vs/base/common/event';
|
||||
|
||||
/**
|
||||
* This implementation doesn't perform well since it uses base64 encoding for buffers.
|
||||
* Electron 3.0 should have suport for buffers in IPC: https://github.com/electron/electron/pull/13055
|
||||
*/
|
||||
import { Event } from 'vs/base/common/event';
|
||||
|
||||
export interface Sender {
|
||||
send(channel: string, msg: string | null): void;
|
||||
send(channel: string, msg: Buffer | null): void;
|
||||
}
|
||||
|
||||
export class Protocol implements IMessagePassingProtocol {
|
||||
|
||||
private listener: IDisposable;
|
||||
|
||||
private _onMessage = new Emitter<Buffer>();
|
||||
get onMessage(): Event<Buffer> { return this._onMessage.event; }
|
||||
|
||||
constructor(private sender: Sender, onMessageEvent: Event<string>) {
|
||||
onMessageEvent(msg => this._onMessage.fire(Buffer.from(msg, 'base64')));
|
||||
}
|
||||
constructor(private sender: Sender, readonly onMessage: Event<Buffer>) { }
|
||||
|
||||
send(message: Buffer): void {
|
||||
try {
|
||||
this.sender.send('ipc:message', message.toString('base64'));
|
||||
this.sender.send('ipc:message', message);
|
||||
} catch (e) {
|
||||
// systems are going down
|
||||
}
|
||||
@@ -37,6 +24,5 @@ export class Protocol implements IMessagePassingProtocol {
|
||||
|
||||
dispose(): void {
|
||||
this.sender.send('ipc:disconnect', null);
|
||||
this.listener = dispose(this.listener);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user