Files
iperf3-gui/lib/domain/models/test_configuration.dart
T

38 lines
909 B
Dart

/// Configuration for an iperf3 client test.
class TestConfiguration {
final String server;
final int port;
final Duration duration;
final int interval;
final int parallelStreams;
const TestConfiguration({
this.server = 'iperf.es.net',
this.port = 5201,
this.duration = const Duration(seconds: 10),
this.interval = 1,
this.parallelStreams = 1,
});
/// Convert to iperf3 CLI arguments.
List<String> toCliArgs() {
return <String>[
'-c', server,
'-p', '$port',
'-t', '${duration.inSeconds}',
'-i', '$interval',
'-P', '$parallelStreams',
];
}
/// Validate the configuration.
bool get isValid {
if (server.isEmpty) return false;
if (port < 1 || port > 65535) return false;
if (duration.inSeconds < 1) return false;
if (interval < 1) return false;
if (parallelStreams < 1) return false;
return true;
}
}