Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
38ebddbf
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
38ebddbf
编写于
4月 15, 2019
作者:
A
Alex Dima
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Minor tweaks
上级
47017a8e
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
45 addition
and
19 deletion
+45
-19
src/vs/platform/remote/common/remoteAgentConnection.ts
src/vs/platform/remote/common/remoteAgentConnection.ts
+31
-0
src/vs/workbench/services/remote/common/abstractRemoteAgentService.ts
...ench/services/remote/common/abstractRemoteAgentService.ts
+10
-17
src/vs/workbench/services/remote/common/remoteAgentService.ts
...vs/workbench/services/remote/common/remoteAgentService.ts
+4
-2
未找到文件。
src/vs/platform/remote/common/remoteAgentConnection.ts
浏览文件 @
38ebddbf
...
...
@@ -7,6 +7,7 @@ import { Client, PersistentProtocol, ISocket } from 'vs/base/parts/ipc/common/ip
import
{
generateUuid
}
from
'
vs/base/common/uuid
'
;
import
{
RemoteAgentConnectionContext
}
from
'
vs/platform/remote/common/remoteAgentEnvironment
'
;
import
{
Disposable
}
from
'
vs/base/common/lifecycle
'
;
import
{
Emitter
}
from
'
vs/base/common/event
'
;
export
const
enum
ConnectionType
{
Management
=
1
,
...
...
@@ -147,8 +148,38 @@ export async function connectRemoteAgentTunnel(options: IConnectionOptions, tunn
return
protocol
;
}
export
const
enum
PersistenConnectionEventType
{
ConnectionLost
,
ReconnectionWait
,
ReconnectionRunning
,
ReconnectionPermanentFailure
,
ConnectionGain
}
export
class
ConnectionLostEvent
{
public
readonly
type
=
PersistenConnectionEventType
.
ConnectionLost
;
}
export
class
ReconnectionWaitEvent
{
public
readonly
type
=
PersistenConnectionEventType
.
ReconnectionWait
;
constructor
(
public
readonly
durationSeconds
:
number
)
{
}
}
export
class
ReconnectionRunningEvent
{
public
readonly
type
=
PersistenConnectionEventType
.
ReconnectionRunning
;
}
export
class
ConnectionGainEvent
{
public
readonly
type
=
PersistenConnectionEventType
.
ConnectionGain
;
}
export
class
ReconnectionPermanentFailureEvent
{
public
readonly
type
=
PersistenConnectionEventType
.
ReconnectionPermanentFailure
;
}
export
type
PersistenConnectionEvent
=
ConnectionLostEvent
|
ReconnectionWaitEvent
|
ReconnectionRunningEvent
|
ConnectionGainEvent
|
ReconnectionPermanentFailureEvent
;
abstract
class
PersistentConnection
extends
Disposable
{
private
readonly
_onDidStateChange
=
this
.
_register
(
new
Emitter
<
PersistenConnectionEvent
>
());
public
readonly
onDidStateChange
=
this
.
_onDidStateChange
.
event
;
protected
readonly
_options
:
IConnectionOptions
;
public
readonly
reconnectionToken
:
string
;
public
readonly
protocol
:
PersistentProtocol
;
...
...
src/vs/workbench/services/remote/common/abstractRemoteAgentService.ts
浏览文件 @
38ebddbf
...
...
@@ -8,7 +8,7 @@ import { Disposable } from 'vs/base/common/lifecycle';
import
{
IChannel
,
IServerChannel
,
getDelayedChannel
}
from
'
vs/base/parts/ipc/common/ipc
'
;
import
{
Client
}
from
'
vs/base/parts/ipc/common/ipc.net
'
;
import
{
IEnvironmentService
}
from
'
vs/platform/environment/common/environment
'
;
import
{
connectRemoteAgentManagement
,
IConnectionOptions
,
IWebSocketFactory
}
from
'
vs/platform/remote/common/remoteAgentConnection
'
;
import
{
connectRemoteAgentManagement
,
IConnectionOptions
,
IWebSocketFactory
,
PersistenConnectionEvent
}
from
'
vs/platform/remote/common/remoteAgentConnection
'
;
import
{
IRemoteAgentConnection
,
IRemoteAgentService
}
from
'
vs/workbench/services/remote/common/remoteAgentService
'
;
import
{
IRemoteAuthorityResolverService
}
from
'
vs/platform/remote/common/remoteAuthorityResolver
'
;
import
{
LifecyclePhase
}
from
'
vs/platform/lifecycle/common/lifecycle
'
;
...
...
@@ -56,16 +56,6 @@ export abstract class AbstractRemoteAgentService extends Disposable implements I
return
Promise
.
resolve
(
undefined
);
}
disableTelemetry
():
Promise
<
void
>
{
const
connection
=
this
.
getConnection
();
if
(
connection
)
{
const
client
=
new
RemoteExtensionEnvironmentChannelClient
(
connection
.
getChannel
(
'
remoteextensionsenvironment
'
));
return
client
.
disableTelemetry
();
}
return
Promise
.
resolve
(
undefined
);
}
}
export
class
RemoteAgentConnection
extends
Disposable
implements
IRemoteAgentConnection
{
...
...
@@ -73,15 +63,18 @@ export class RemoteAgentConnection extends Disposable implements IRemoteAgentCon
private
readonly
_onReconnecting
=
this
.
_register
(
new
Emitter
<
void
>
());
public
readonly
onReconnecting
=
this
.
_onReconnecting
.
event
;
private
readonly
_onDidStateChange
=
this
.
_register
(
new
Emitter
<
PersistenConnectionEvent
>
());
public
readonly
onDidStateChange
=
this
.
_onDidStateChange
.
event
;
readonly
remoteAuthority
:
string
;
private
_connection
:
Promise
<
Client
<
RemoteAgentConnectionContext
>>
|
null
;
constructor
(
remoteAuthority
:
string
,
private
_commit
:
string
|
undefined
,
private
_webSocketFactory
:
IWebSocketFactory
,
private
_environmentService
:
IEnvironmentService
,
private
_remoteAuthorityResolverService
:
IRemoteAuthorityResolverService
private
readonly
_commit
:
string
|
undefined
,
private
readonly
_webSocketFactory
:
IWebSocketFactory
,
private
readonly
_environmentService
:
IEnvironmentService
,
private
readonly
_remoteAuthorityResolverService
:
IRemoteAuthorityResolverService
)
{
super
();
this
.
remoteAuthority
=
remoteAuthority
;
...
...
@@ -121,8 +114,8 @@ export class RemoteAgentConnection extends Disposable implements IRemoteAgentCon
}
}
};
const
connection
=
await
connectRemoteAgentManagement
(
options
,
this
.
remoteAuthority
,
`renderer`
);
this
.
_register
(
connection
);
const
connection
=
this
.
_register
(
await
connectRemoteAgentManagement
(
options
,
this
.
remoteAuthority
,
`renderer`
)
);
this
.
_register
(
connection
.
onDidStateChange
(
e
=>
this
.
_onDidStateChange
.
fire
(
e
))
);
return
connection
.
client
;
}
}
...
...
src/vs/workbench/services/remote/common/remoteAgentService.ts
浏览文件 @
38ebddbf
...
...
@@ -8,6 +8,7 @@ import { RemoteAgentConnectionContext, IRemoteAgentEnvironment } from 'vs/platfo
import
{
IChannel
,
IServerChannel
}
from
'
vs/base/parts/ipc/common/ipc
'
;
import
{
IDiagnosticInfoOptions
,
IDiagnosticInfo
}
from
'
vs/platform/diagnostics/common/diagnosticsService
'
;
import
{
Event
}
from
'
vs/base/common/event
'
;
import
{
PersistenConnectionEvent
}
from
'
vs/platform/remote/common/remoteAgentConnection
'
;
export
const
RemoteExtensionLogFileName
=
'
remoteagent
'
;
...
...
@@ -19,13 +20,14 @@ export interface IRemoteAgentService {
getConnection
():
IRemoteAgentConnection
|
null
;
getEnvironment
(
bail
?:
boolean
):
Promise
<
IRemoteAgentEnvironment
|
null
>
;
getDiagnosticInfo
(
options
:
IDiagnosticInfoOptions
):
Promise
<
IDiagnosticInfo
|
undefined
>
;
disableTelemetry
():
Promise
<
void
>
;
}
export
interface
IRemoteAgentConnection
{
readonly
remoteAuthority
:
string
;
readonly
onReconnecting
:
Event
<
void
>
;
readonly
onDidStateChange
:
Event
<
PersistenConnectionEvent
>
;
getChannel
<
T
extends
IChannel
>
(
channelName
:
string
):
T
;
registerChannel
<
T
extends
IServerChannel
<
RemoteAgentConnectionContext
>>
(
channelName
:
string
,
channel
:
T
):
void
;
onReconnecting
:
Event
<
void
>
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录