Exemple #1
0
        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);
        }
Exemple #3
0
        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;
            }
        }
Exemple #5
0
        public void Dispose()
        {
            if (_process != null)
            {
                if (!_process.HasExited)
                {
                    Stop(true);
                }

                _process.Dispose();
                _process = null;
            }

            if (_asyncTwoWayStreamsHandler != null)
            {
                _asyncTwoWayStreamsHandler.Dispose();
                _asyncTwoWayStreamsHandler = null;
            }
        }
Exemple #6
0
        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);
        }