public static VirtualMachine LaunchInternal(ITargetProcess p, ProcessStartInfo info, Socket socket) { Socket accepted = null; try { accepted = socket.Accept(); } catch (Exception) { throw; } Connection conn = new Connection(accepted); VirtualMachine vm = new VirtualMachine(p, conn); if (info.RedirectStandardOutput) { vm.StandardOutput = p.StandardOutput; } if (info.RedirectStandardError) { vm.StandardError = p.StandardError; } conn.EventHandler = new EventHandler(vm); vm.connect(); return(vm); }
internal VirtualMachine (ITargetProcess process, Connection conn) : base () { SetVirtualMachine (this); queue = new Queue (); queue_monitor = new Object (); startup_monitor = new Object (); requests = new Dictionary <int, EventRequest> (); this.conn = conn; this.process = process; conn.ErrorHandler += ErrorHandler; }
public void Register(ITargetProcess script) { foreach (var fileName in script.FileNames) { if (string.IsNullOrWhiteSpace(fileName)) { continue; } if (_targetProcesses.ContainsKey(fileName)) { throw new InvalidOperationException($"Only One Scrip per File Suporrtet: {script}"); } _targetProcesses[fileName] = script; _processTracker.Track(fileName); } }
public static VirtualMachine LaunchInternal (ITargetProcess p, ProcessStartInfo info, Socket socket) { Socket accepted = null; try { accepted = socket.Accept (); } catch (Exception) { throw; } Connection conn = new TcpConnection (accepted); VirtualMachine vm = new VirtualMachine (p, conn); if (info.RedirectStandardOutput) vm.StandardOutput = p.StandardOutput; if (info.RedirectStandardError) vm.StandardError = p.StandardError; conn.EventHandler = new EventHandler (vm); vm.connect (); return vm; }