コード例 #1
0
        Process ProcessSpawn(string command, Action <string> callback)
        {
            var stdout = new Pipe()
            {
                Writeable = true
            };

            var streams = new UVStream[] {
                null,
                stdout,
            };

            string text = null;

            var args = command.Split(new char[] { ' ' });
            var p    = Process.Spawn(new ProcessOptions()
            {
                File      = args[0],
                Arguments = args,
                Streams   = streams
            }, (process) => {
                callback(text);
            });

            stdout.Read(Encoding.ASCII, (t) => text = t);
            stdout.Resume();
            return(p);
        }
コード例 #2
0
        public Channel(ILogger <Channel> logger, UVStream producerSocket, UVStream consumerSocket, int processId)
        {
            _logger = logger;

            _producerSocket = producerSocket;
            _consumerSocket = consumerSocket;
            _processId      = processId;

            _consumerSocket.Data   += ConsumerSocketOnData;
            _consumerSocket.Closed += ConsumerSocketOnClosed;
            _consumerSocket.Error  += ConsumerSocketOnError;
            _producerSocket.Closed += ProducerSocketOnClosed;
            _producerSocket.Error  += ProducerSocketOnError;
        }
コード例 #3
0
        public PayloadChannel(ILogger <PayloadChannel> logger, UVStream producerSocket, UVStream consumerSocket, int processId)
        {
            _logger = logger;

            _logger.LogDebug("PayloadChannel() | constructor");

            _producerSocket = producerSocket;
            _consumerSocket = consumerSocket;
            _processId      = processId;

            _consumerSocket.Data   += ConsumerSocketOnData;
            _consumerSocket.Closed += ConsumerSocketOnClosed;
            _consumerSocket.Error  += ConsumerSocketOnError;
            _producerSocket.Closed += ProducerSocketOnClosed;
            _producerSocket.Error  += ProducerSocketOnError;
        }
コード例 #4
0
        Process ProcessSpawn(string command, Action<string> callback)
        {
            var stdout = new Pipe() { Writeable = true };

            var streams = new UVStream[] {
                null,
                stdout,
            };

            string text = null;

            var args = command.Split(new char[] { ' ' });
            var p = Process.Spawn(new ProcessOptions() {
                File = args[0],
                Arguments = args,
                Streams = streams
            }, (process) => {
                callback(text);
            });

            stdout.Read(Encoding.ASCII, (t) => text = t);
            stdout.Resume();
            return p;
        }