public IProcessAsyncOperation Execute (ExecutionCommand command, IConsole console) { IPhoneExecutionCommand cmd = (IPhoneExecutionCommand) command; if (!cmd.Simulator) { if (IPhoneSettings.ShowStartOnDeviceMessage) { Gtk.Application.Invoke (delegate { TellUserToStartApplication (); }); } return NullProcessAsyncOperation.Success; } var psi = CreateMtouchSimStartInfo (cmd, true, SimulatorTarget ?? cmd.SimulatorTarget); psi.RedirectStandardOutput = true; psi.RedirectStandardError = true; psi.RedirectStandardInput = true; LineInterceptingTextWriter intercepter = null; intercepter = new LineInterceptingTextWriter (null, delegate { if (intercepter.GetLine ().StartsWith ("Application launched")) { IPhoneUtility.MakeSimulatorGrabFocus (); intercepter.FinishedIntercepting = true; } else if (intercepter.LineCount > 20) { intercepter.FinishedIntercepting = true; } }); var outTail = new Tail (cmd.OutputLogPath, console.Out.Write); var errTail = new Tail (cmd.ErrorLogPath, console.Error.Write); outTail.Start (); errTail.Start (); var mtouchProcess = Runtime.ProcessService.StartProcess (psi, intercepter, console.Log, null); return new IPhoneProcess (mtouchProcess, outTail, errTail); }
public IPhoneProcess (ProcessWrapper mtouchProcess, Tail outTail, Tail errTail) { this.mtouchProcess = mtouchProcess; this.outTail = outTail; this.errTail = errTail; }
public IPhoneProcess(ProcessWrapper mtouchProcess, Tail outTail, Tail errTail) { this.mtouchProcess = mtouchProcess; this.outTail = outTail; this.errTail = errTail; }