Skip to content

Commit f7e6c49

Browse files
committed
Call TSP endpoint to close an experiment when closing it in the UI
With this it's possible to close an experiment on the server. Upon reception of the command the server can dispose allocated resources hence the client doesn't need them anymore. This change follows the TSP update provided by: eclipse-cdt-cloud/trace-server-protocol#95 Fixes eclipse-cdt-cloud#1024 Signed-off-by: Bernd Hufmann <bernd.hufmann@ericsson.com>
1 parent 7495999 commit f7e6c49

File tree

4 files changed

+23
-1
lines changed

4 files changed

+23
-1
lines changed

packages/base/src/experiment-manager.ts

+11
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,17 @@ export class ExperimentManager {
121121
return undefined;
122122
}
123123

124+
/**
125+
* Close the given experiment from the server
126+
* @param experimentUUID experiment UUID
127+
*/
128+
async closeExperiment(experimentUUID: string): Promise<void> {
129+
const experimentToDelete = this.fOpenExperiments.get(experimentUUID);
130+
if (experimentToDelete) {
131+
await this.fTspClient.closeExperiment(experimentUUID);
132+
}
133+
}
134+
124135
/**
125136
* Delete the given experiment from the server
126137
* @param experimentUUID experiment UUID

theia-extensions/viewer-prototype/src/browser/theia-rpc-tsp-proxy.ts

+9
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,15 @@ export class TheiaRpcTspProxy implements ITspClient {
112112
return this.toTspClientResponse<Experiment>(await this.tspClient.updateExperiment(expUUID, parameters));
113113
}
114114

115+
/**
116+
* Close an experiment
117+
* @param expUUID Experiment UUID to close
118+
* @returns The closed experiment
119+
*/
120+
public async closeExperiment(expUUID: string): Promise<TspClientResponse<Experiment>> {
121+
return this.toTspClientResponse<Experiment>(await this.tspClient.closeExperiment(expUUID));
122+
}
123+
115124
/**
116125
* Delete an experiment on the server
117126
* @param expUUID Experiment UUID to delete

theia-extensions/viewer-prototype/src/browser/trace-explorer/trace-explorer-sub-widgets/theia-trace-explorer-opened-traces-widget.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,12 @@ export class TraceExplorerOpenedTracesWidget extends ReactWidget {
6767

6868
public closeExperiment(traceUUID: string): void {
6969
signalManager().fireCloseTraceViewerTabSignal(traceUUID);
70+
this._experimentManager.closeExperiment(traceUUID);
7071
}
7172

7273
public deleteExperiment(traceUUID: string): void {
73-
this._experimentManager.deleteExperiment(traceUUID);
7474
this.closeExperiment(traceUUID);
75+
this._experimentManager.deleteExperiment(traceUUID);
7576
}
7677

7778
render(): React.ReactNode {

theia-extensions/viewer-prototype/src/browser/trace-viewer/trace-viewer.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,7 @@ export class TraceViewerWidget extends ReactWidget implements StatefulWidget {
349349
super.onCloseRequest(msg);
350350
if (this.openedExperiment) {
351351
signalManager().fireExperimentClosedSignal(this.openedExperiment);
352+
this.experimentManager.closeExperiment(this.openedExperiment.UUID);
352353
}
353354
}
354355

0 commit comments

Comments
 (0)