class ClientConnectionEventListener implements ConnectionEventListener {

    @Override
    public void newASdu(final ASdu asdu) {
        LOGGER.info("Received incoming ASDU {} from device {}", asdu, this.deviceIdentification);
        try {
            final ClientAsduHandler asduHandler = this.asduHandlerRegistry.getHandler(asdu);
            asduHandler.handleAsdu(asdu, this.responseMetadata);

        } catch (final Iec60870AsduHandlerNotFoundException e) {
            LOGGER.error("Unknown request received, no handler available for ASDU: {}", asdu, e);
        } catch (final Exception e) {
            LOGGER.error("Exception occurred while handling an incoming ASDU from device {}.",
                    this.deviceIdentification, e);
        }
    }

    public  ClientConnectionEventListener(final String deviceIdentification, final ClientConnectionCache connectionCache,
            final ClientAsduHandlerRegistry asduHandlerRegistry, final ResponseMetadata responseMetadata);

}