public void Stop(bool ignoreErrors = false) { if (!_isRunning) { return; } _asyncTwoWayStreamsHandler.WriteLine(ExitCommand); if (!_process.WaitForExit(500)) { _process.Kill(); } if (!ignoreErrors) { var errors = _process.StandardError.ReadToEnd(); if (!String.IsNullOrEmpty(errors)) { throw new Exception("Sikuli Errors: " + errors); } } _asyncTwoWayStreamsHandler.WaitForExit(); _asyncTwoWayStreamsHandler.Dispose(); _asyncTwoWayStreamsHandler = null; _process.Dispose(); _process = null; _isRunning = false; }
public void Start() { if (_process != null) { throw new InvalidOperationException("This Sikuli session has already been started"); } _process = _sikuliScriptProcessFactory.Start("-i"); _asyncTwoWayStreamsHandler = _asyncDuplexStreamsHandlerFactory.Create(_process.StandardOutput, _process.StandardError, _process.StandardInput); _asyncTwoWayStreamsHandler.ReadUntil(SikuliReadyTimeoutSeconds, InteractiveConsoleReadyMarker); }
public void Start() { if (_isRunning) { return; } _process = _sikuliScriptProcessFactory.Start("-i"); _asyncTwoWayStreamsHandler = _asyncDuplexStreamsHandlerFactory.Create(_process.StandardOutput, _process.StandardInput); _asyncTwoWayStreamsHandler.ReadUntil(SikuliReadyTimeoutSeconds, InteractiveConsoleReadyMarker); }
public void Dispose() { if (_process != null) { if (!_process.HasExited) Stop(true); _process.Dispose(); _process = null; } if (_asyncTwoWayStreamsHandler != null) { _asyncTwoWayStreamsHandler.Dispose(); _asyncTwoWayStreamsHandler = null; } }
public void Dispose() { if (_process != null) { if (!_process.HasExited) { Stop(true); } _process.Dispose(); _process = null; } if (_asyncTwoWayStreamsHandler != null) { _asyncTwoWayStreamsHandler.Dispose(); _asyncTwoWayStreamsHandler = null; } }
public void Start() { if (_process != null) { throw new InvalidOperationException("This Sikuli session has already been started"); } _version = _sikuliScriptProcessFactory.GetSikuliVersion(); _process = _sikuliScriptProcessFactory.Start(_version); _asyncTwoWayStreamsHandler = _asyncDuplexStreamsHandlerFactory.Create(_process.StandardOutput, _process.StandardError, _process.StandardInput); if (_version.ReadyMarker != null) { _asyncTwoWayStreamsHandler.ReadUntil(SikuliReadyTimeoutSeconds, _version.ReadyMarker); } foreach (var command in _version.InitialCommands ?? new string[0]) { _asyncTwoWayStreamsHandler.WriteLine(command); } }
public void Stop(bool ignoreErrors = false) { if (!_isRunning) return; _asyncTwoWayStreamsHandler.WriteLine(ExitCommand); if(!_process.WaitForExit(500)) _process.Kill(); if (!ignoreErrors) { var errors = _process.StandardError.ReadToEnd(); if (!String.IsNullOrEmpty(errors)) throw new Exception("Sikuli Errors: " + errors); } _asyncTwoWayStreamsHandler.WaitForExit(); _asyncTwoWayStreamsHandler.Dispose(); _asyncTwoWayStreamsHandler = null; _process.Dispose(); _process = null; _isRunning = false; }
public void Start() { if (_isRunning) return; _process = _sikuliScriptProcessFactory.Start("-i"); _asyncTwoWayStreamsHandler = _asyncDuplexStreamsHandlerFactory.Create(_process.StandardOutput, _process.StandardInput); _asyncTwoWayStreamsHandler.ReadUntil(SikuliReadyTimeoutSeconds, InteractiveConsoleReadyMarker); }