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 readonly uiServices
: Map
<ProtocolVersion
, AbstractUIService
>;
19 protected server
: WebSocket
.Server
| HttpServer
;
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 JSON
.stringify([id
, procedureName
, requestPayload
] as ProtocolRequest
);
34 public buildProtocolResponse(id
: string, responsePayload
: ResponsePayload
): string {
35 return JSON
.stringify([id
, responsePayload
] as ProtocolResponse
);
38 public abstract start(): void;
39 public abstract stop(): void;
40 public abstract sendRequest(request
: string): void;
41 public abstract sendResponse(response
: string): void;
42 public abstract logPrefix(modName
?: string, methodName
?: string, prefixSuffix
?: string): string;