Beispiel #1
0
        /// <summary>
        /// Create data processor function
        /// </summary>
        /// <typeparam name="TConfig"></typeparam>
        /// <param name="config"></param>
        /// <param name="loggerFactory"></param>
        /// <param name="dataProcessorType"></param>
        /// <param name="getIdFunc"></param>
        /// <returns></returns>
        public Func <IDataProcessor> CreateDataProcesorFunc <TConfig>(TConfig config, ILoggerFactory loggerFactory,
                                                                      EnumDataProcessorType dataProcessorType, Func <byte[], byte[]> getIdFunc = null)
            where TConfig : ConfigBase
        {
            // set data processor creator
            switch (dataProcessorType)
            {
            case EnumDataProcessorType.Hsm:
                return(new Func <IDataProcessor>(() => SimpleMessageDataProcessor.CreateProcessor(
                                                     loggerFactory.CreateLogger <SimpleMessageDataProcessor>(),
                                                     config.SocketBufferSize * 2)));

            case EnumDataProcessorType.Message:
                return(new Func <IDataProcessor>(() => SimpleMessageDataProcessor.CreateProcessor(
                                                     loggerFactory.CreateLogger <SimpleMessageDataProcessor>(),
                                                     config.SocketBufferSize * 2, 2)));

            case EnumDataProcessorType.Iso8583:
                return(new Func <IDataProcessor>(() => MessageDataProcessor.CreateIso8583Processor(
                                                     loggerFactory.CreateLogger <MessageDataProcessor>(),
                                                     config.SocketBufferSize * 2, getIdFunc)));
            }

            // nothing done
            return(null);
        }
Beispiel #2
0
        public TcpServerService(IServerEventHandler eventHandler, ServerConfig serverConfig,
                                ILoggerFactory loggerFactory, EnumDataProcessorType dataProcessorType,
                                Func <byte[], byte[]> getIdFunc = null)
        {
            _loggerFactory = loggerFactory;
            _logger        = loggerFactory.CreateLogger <TcpServerService>();
            _serverConfig  = serverConfig;
            _eventHandler  = eventHandler;

            // define data processor
            _createDataProcessorFunc = CreateDataProcesorFunc(serverConfig, loggerFactory, dataProcessorType, getIdFunc);
        }
Beispiel #3
0
        /// <summary>
        /// Construstor with
        /// </summary>
        /// <param name="eventHandler"></param>
        /// <param name="clientConfig"></param>
        /// <param name="loggerFactory"></param>
        /// <param name="dataProcessorType"></param>
        public TcpClientService(IClientEventHandler eventHandler,
                                ClientConfig clientConfig, ILoggerFactory loggerFactory,
                                EnumDataProcessorType dataProcessorType, Func <byte[], byte[]> getIdFunc = null)
        {
            _createDataProcessorFunc = CreateDataProcesorFunc(clientConfig, loggerFactory, dataProcessorType, getIdFunc);
            _loggerFactory           = loggerFactory;
            _logger             = loggerFactory.CreateLogger <TcpClientService>();
            _clientConfig       = clientConfig;
            _eventHandler       = eventHandler;
            _dataSynchronizator = new DataSynchronizator <byte[]>(loggerFactory.CreateLogger <DataSynchronizator <byte[]> >());
            _dataProcessor      = _createDataProcessorFunc();

            ManageAutoConnect();
        }