public static async Task <ProcessPayload> RunServer(DirectoryInfo directory, CancellationToken cancellationToken = default)
        {
            var payload       = new ProcessPayload();
            var serverCommand = getCommandInfo(directory);
            var logDir        = directory.CreateSubdirectory("server-process-info");
            var unused        = Task.Run(async() => await OperationSystemService.RunCommandAsync(serverCommand, payload, logDir, directory.FullName, cancellationToken: cancellationToken), cancellationToken);

            while (!payload.IsRunning())
            {
                await Task.Delay(100, cancellationToken);
            }
            return(payload);
        }
Example #2
0
        public static async Task <ProcessPayload> RunClient(DirectoryInfo directory, int port, ClientMode mode, int clientTimeout = 1000, CancellationToken cancellationToken = default)
        {
            Debug.WriteLine($"running client file in directory {directory.FullName} in mode {mode}");

            var payload = new ProcessPayload();

            var serverCommand = getCommandInfo(directory, port, mode, clientTimeout);
            var logDir        = directory.CreateSubdirectory($"client-{mode}-process-info");
            var unused        = Task.Run(async() => await OperationSystemService.RunCommandAsync(
                                             serverCommand,
                                             payload,
                                             logDir,
                                             directory.FullName,
                                             cancellationToken: cancellationToken), cancellationToken);

            while (!payload.IsRunning())
            {
                await Task.Delay(100, cancellationToken);
            }

            Debug.WriteLine($"returning payload of client file in directory {directory.FullName} in mode {mode}");
            return(payload);
        }