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(); } }
public Shell CreateShell() { return(factory.Create()); }