public ISocketDelegate OnConnection(IServer server, ISocket socket)
        {
            var txDel          = new HttpServerTransactionDelegate(socket.RemoteEndPoint.Address, responseFactory, requestDelegate);
            var delWrapper     = new HttpServerTransactionDelegateWrapper(txDel, connWatcher, socket);
            var socketDelegate = new IosHttpServerSocketDelegate(delWrapper);

            socketDelegate.Start(socket);
            return(socketDelegate);
        }
        public void SetUp()
        {
            requestCallbacker  = new RequestCallbacker();
            requestAccumulator = new RequestAccumulator(requestCallbacker);
            var requestDelegate     = new RequestDelegate(requestAccumulator);
            var transactionDelegate = new HttpServerTransactionDelegate(requestDelegate);

            responseAccumulator = new ResponseAccumulator();
            transactionInput    = new TransactionInput(responseAccumulator, transactionDelegate);

            postedActions = new Queue <Action>();
        }