public ClientRt(TcpClient client, X509Certificate2 certificate, ShellFactory factory)
            {
                //client disposed in caller on throw
                this.client      = client;
                this.certificate = certificate;
                using (var disposer = new Disposer())
                {
                    start    = DateTime.Now;
                    last     = DateTime.Now;
                    shell    = factory.Create();
                    endpoint = client.Client.RemoteEndPoint as IPEndPoint;
                    reader   = new Runner(new Runner.Args {
                        ThreadName = string.Format("Client_{0}", endpoint)
                    });
                    disposer.Push(reader);

                    disposer.Push(Dispose); //ensure cleanup order
                    reader.Run(ReadLoop);
                    disposer.Clear();
                }
            }
Example #2
0
 public Shell CreateShell()
 {
     return(factory.Create());
 }