Use eslint extension for import sorting instead of unmaintained external ones
[e-mobility-charging-stations-simulator.git] / src / charging-station / ui-server / AbstractUIServer.ts
1 import { Server as HttpServer } from 'http';
2
3 import WebSocket from 'ws';
4
5 import { ProtocolVersion } from '../../types/UIProtocol';
6 import AbstractUIService from './ui-services/AbstractUIService';
7
8 export abstract class AbstractUIServer {
9 public readonly chargingStations: Set<string>;
10 protected readonly uiServices: Map<ProtocolVersion, AbstractUIService>;
11 protected server: WebSocket.Server | HttpServer;
12
13 public constructor() {
14 this.chargingStations = new Set<string>();
15 this.uiServices = new Map<ProtocolVersion, AbstractUIService>();
16 }
17
18 public abstract start(): void;
19 public abstract stop(): void;
20 public abstract sendResponse(message: string): void;
21 public abstract logPrefix(): string;
22 }