+export abstract class OCPPIncomingRequestService extends EventEmitter {
+ private static instance: OCPPIncomingRequestService | null = null
+ private readonly version: OCPPVersion
+ protected readonly ajv: Ajv
+ protected abstract payloadValidateFunctions: Map<
+ IncomingRequestCommand,
+ ValidateFunction<JsonType>
+ >
+
+ protected constructor (version: OCPPVersion) {
+ super()
+ this.version = version
+ this.ajv = new Ajv({
+ keywords: ['javaType'],
+ multipleOfPrecision: 2
+ })
+ ajvFormats(this.ajv)
+ this.incomingRequestHandler = this.incomingRequestHandler.bind(this)
+ this.validateIncomingRequestPayload = this.validateIncomingRequestPayload.bind(this)