@@ -91,12 +91,25 @@ export abstract class StreamDebugAdapter extends AbstractDebugAdapter {
9191 }
9292}
9393
94+ export abstract class NetworkDebugAdapter extends StreamDebugAdapter {
95+
96+ protected socket ?: net . Socket ;
97+
98+ abstract startSession ( ) : Promise < void > ;
99+
100+ async stopSession ( ) : Promise < void > {
101+ await this . cancelPendingRequests ( ) ;
102+ if ( this . socket ) {
103+ this . socket . end ( ) ;
104+ this . socket = undefined ;
105+ }
106+ }
107+ }
108+
94109/**
95110 * An implementation that connects to a debug adapter via a socket.
96111*/
97- export class SocketDebugAdapter extends StreamDebugAdapter {
98-
99- private socket ?: net . Socket ;
112+ export class SocketDebugAdapter extends NetworkDebugAdapter {
100113
101114 constructor ( private adapterServer : IDebugAdapterServer ) {
102115 super ( ) ;
@@ -126,22 +139,12 @@ export class SocketDebugAdapter extends StreamDebugAdapter {
126139 } ) ;
127140 } ) ;
128141 }
129-
130- async stopSession ( ) : Promise < void > {
131- await this . cancelPendingRequests ( ) ;
132- if ( this . socket ) {
133- this . socket . end ( ) ;
134- this . socket = undefined ;
135- }
136- }
137142}
138143
139144/**
140145 * An implementation that connects to a debug adapter via a NamedPipe (on Windows)/UNIX Domain Socket (on non-Windows).
141146 */
142- export class NamedPipeDebugAdapter extends StreamDebugAdapter {
143-
144- private socket ?: net . Socket ;
147+ export class NamedPipeDebugAdapter extends NetworkDebugAdapter {
145148
146149 constructor ( private adapterServer : IDebugAdapterNamedPipeServer ) {
147150 super ( ) ;
@@ -171,14 +174,6 @@ export class NamedPipeDebugAdapter extends StreamDebugAdapter {
171174 } ) ;
172175 } ) ;
173176 }
174-
175- async stopSession ( ) : Promise < void > {
176- await this . cancelPendingRequests ( ) ;
177- if ( this . socket ) {
178- this . socket . end ( ) ;
179- this . socket = undefined ;
180- }
181- }
182177}
183178
184179/**
0 commit comments