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); }
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; }
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; }
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; }