/// <summary>
        /// </summary>
        /// <param name="configuration"></param>
        public ProtocolTcpListener(ProtocolListenerConfiguration configuration)
        {
            if (configuration == null) throw new ArgumentNullException("configuration");

            Configure(configuration);
            ChannelFactory = new TcpChannelFactory();
        }
 /// <summary>
 ///     To allow the sub classes to configure this class in their constructors.
 /// </summary>
 /// <param name="configuration"></param>
 protected void Configure(ProtocolListenerConfiguration configuration)
 {
     _bufferPool = configuration.BufferPool;
     _configuration = configuration;
 }