9a19d39d9a6d29550c614b937f14fd18bcb514e3
1 import type { Server
as HttpServer
} from
'http';
3 import type WebSocket from
'ws';
5 import type { ChargingStationData
} from
'../../types/ChargingStationWorker';
13 } from
'../../types/UIProtocol';
14 import type AbstractUIService from
'./ui-services/AbstractUIService';
16 export abstract class AbstractUIServer
{
17 public readonly chargingStations
: Map
<string, ChargingStationData
>;
18 protected server
: WebSocket
.Server
| HttpServer
;
19 protected readonly uiServices
: Map
<ProtocolVersion
, AbstractUIService
>;
21 public constructor() {
22 this.chargingStations
= new Map
<string, ChargingStationData
>();
23 this.uiServices
= new Map
<ProtocolVersion
, AbstractUIService
>();
26 public buildProtocolRequest(
28 procedureName
: ProcedureName
,
29 requestPayload
: RequestPayload
31 return [id
, procedureName
, requestPayload
];
34 public buildProtocolResponse(id
: string, responsePayload
: ResponsePayload
): ProtocolResponse
{
35 return [id
, responsePayload
];
38 public abstract start(): void;
39 public abstract stop(): void;
40 public abstract sendRequest(request
: ProtocolRequest
): void;
41 public abstract sendResponse(response
: ProtocolResponse
): void;
42 public abstract logPrefix(