@@ -43,63 +43,41 @@ public async Task<IServer[]> GetServersAsync(CancellationToken cancellationToken
4343 }
4444
4545 /// <inheritdoc/>
46- public async Task < ServerLatencyResult > GetServerLatencyAsync ( string serverUrl , CancellationToken cancellationToken = default )
46+ public async Task < LatencyTestResult > GetServerLatencyAsync ( string serverUrl , CancellationToken cancellationToken = default )
4747 {
4848 return await GetServerLatencyAsync ( serverUrl , ( _ ) => { } , cancellationToken ) ;
4949 }
5050
5151 /// <inheritdoc/>
52- public async Task < ServerLatencyResult > GetServerLatencyAsync ( string serverUrl , Action < LatencyTestProgress > UpdateProgress , CancellationToken cancellationToken = default )
52+ public async Task < LatencyTestResult > GetServerLatencyAsync ( string serverUrl , Action < LatencyTestProgress > UpdateProgress , CancellationToken cancellationToken = default )
5353 {
5454 ArgumentException . ThrowIfNullOrWhiteSpace ( serverUrl ) ;
5555
5656 var server = new Server ( ) { Sponsor = "(Unknown)" , Url = serverUrl } ;
57- return await internalGetServerLatencyAsync ( server , httpClient , delayProvider , settings . LatencyTest . HttpTimeoutMilliseconds , settings . LatencyTest . LatencyTestIterations , settings . LatencyTest . LatencyTestIntervalMilliseconds , UpdateProgress , cancellationToken ) ;
57+ return await GetServerLatencyAsync ( server , UpdateProgress , cancellationToken ) ;
5858 }
5959
6060 /// <inheritdoc/>
61- public async Task < ServerLatencyResult > GetServerLatencyAsync ( IServer server , CancellationToken cancellationToken = default )
61+ public async Task < LatencyTestResult > GetServerLatencyAsync ( IServer server , CancellationToken cancellationToken = default )
6262 {
6363 return await GetServerLatencyAsync ( server , ( _ ) => { } , cancellationToken ) ;
6464 }
6565
6666 /// <inheritdoc/>
67- public async Task < ServerLatencyResult > GetServerLatencyAsync ( IServer server , Action < LatencyTestProgress > UpdateProgress , CancellationToken cancellationToken = default )
67+ public async Task < LatencyTestResult > GetServerLatencyAsync ( IServer server , Action < LatencyTestProgress > UpdateProgress , CancellationToken cancellationToken = default )
6868 {
6969 ArgumentNullException . ThrowIfNull ( server ) ;
7070 ArgumentException . ThrowIfNullOrWhiteSpace ( server . Url ) ;
71-
72- return await internalGetServerLatencyAsync ( server , httpClient , delayProvider , settings . LatencyTest . HttpTimeoutMilliseconds , settings . LatencyTest . LatencyTestIterations , settings . LatencyTest . LatencyTestIntervalMilliseconds , UpdateProgress , cancellationToken ) ;
73- }
74-
75- private static async Task < ServerLatencyResult > internalGetServerLatencyAsync ( IServer server , HttpClient httpClient , IDelayProvider delayProvider , int httpTimeoutMilliseconds , int maxIterations , int intervalMilliseconds , Action < LatencyTestProgress > UpdateProgress , CancellationToken cancellationToken )
76- {
77- // Validate inputs to avoid invalid operation during the latency test
78- ArgumentNullException . ThrowIfNull ( server ) ;
79- ArgumentException . ThrowIfNullOrWhiteSpace ( server . Url ) ;
80- ArgumentNullException . ThrowIfNull ( httpClient ) ;
81- ArgumentNullException . ThrowIfNull ( delayProvider ) ;
8271 ArgumentNullException . ThrowIfNull ( UpdateProgress ) ;
8372
84- if ( maxIterations < 1 )
85- {
86- throw new ArgumentOutOfRangeException ( nameof ( maxIterations ) , "maxIterations must be at least 1." ) ;
87- }
88-
89- if ( httpTimeoutMilliseconds <= 0 )
90- {
91- throw new ArgumentOutOfRangeException ( nameof ( httpTimeoutMilliseconds ) , "httpTimeoutMilliseconds must be greater than 0." ) ;
92- }
93-
94- if ( intervalMilliseconds < 0 )
95- {
96- throw new ArgumentOutOfRangeException ( nameof ( intervalMilliseconds ) , "intervalMilliseconds cannot be negative." ) ;
97- }
98-
9973 var latencyUrl = GetBaseUrl ( server . Url ) + "latency.txt" ;
10074 var pings = new List < int > ( ) ;
10175 var stopwatch = new Stopwatch ( ) ;
10276
77+ var maxIterations = settings . LatencyTest . LatencyTestIterations ;
78+ var intervalMilliseconds = settings . LatencyTest . LatencyTestIntervalMilliseconds ;
79+ var httpTimeoutMilliseconds = settings . LatencyTest . HttpTimeoutMilliseconds ;
80+
10381 for ( var iteration = 0 ; iteration < maxIterations ; iteration ++ )
10482 {
10583 cancellationToken . ThrowIfCancellationRequested ( ) ;
@@ -132,7 +110,7 @@ private static async Task<ServerLatencyResult> internalGetServerLatencyAsync(ISe
132110 }
133111
134112 // Calculate the average server latency.
135- var latencyResult = new ServerLatencyResult
113+ var latencyResult = new LatencyTestResult
136114 {
137115 Server = server ,
138116 Latency = ( int ) pings . Average ( )
@@ -142,21 +120,21 @@ private static async Task<ServerLatencyResult> internalGetServerLatencyAsync(ISe
142120 }
143121
144122 /// <inheritdoc/>
145- public async Task < ServerLatencyResult > GetFastestServerByLatencyAsync ( IServer [ ] servers , CancellationToken cancellationToken = default )
123+ public async Task < LatencyTestResult > GetFastestServerByLatencyAsync ( IServer [ ] servers , CancellationToken cancellationToken = default )
146124 {
147125 return await GetFastestServerByLatencyAsync ( servers , _ => { } , cancellationToken ) ;
148126 }
149127
150128 /// <inheritdoc/>
151- public async Task < ServerLatencyResult > GetFastestServerByLatencyAsync ( IServer [ ] servers , Action < SpeedTestProgress > UpdateProgress , CancellationToken cancellationToken = default )
129+ public async Task < LatencyTestResult > GetFastestServerByLatencyAsync ( IServer [ ] servers , Action < SpeedTestProgress > UpdateProgress , CancellationToken cancellationToken = default )
152130 {
153131 ArgumentNullException . ThrowIfNull ( servers ) ;
154132 if ( servers . Length == 0 )
155133 {
156134 throw new ArgumentException ( "At least one server must be provided." , nameof ( servers ) ) ;
157135 }
158136
159- var serverProbes = new List < ServerLatencyResult > ( ) ;
137+ var serverProbes = new List < LatencyTestResult > ( ) ;
160138
161139 for ( int i = 0 ; i < servers . Length ; i ++ )
162140 {
@@ -178,15 +156,7 @@ public async Task<ServerLatencyResult> GetFastestServerByLatencyAsync(IServer[]
178156
179157 try
180158 {
181- var latencyResult = await internalGetServerLatencyAsync (
182- servers [ i ] ,
183- httpClient ,
184- delayProvider ,
185- settings . LatencyTest . HttpTimeoutMilliseconds ,
186- settings . ServerDiscovery . ServerProbeIterations ,
187- settings . ServerDiscovery . ServerProbeIntervalMilliseconds ,
188- _ => { } ,
189- linkedCts . Token ) ;
159+ var latencyResult = await GetServerLatencyAsync ( servers [ i ] , _ => { } , linkedCts . Token ) ;
190160
191161 serverProbes . Add ( latencyResult ) ;
192162 }
0 commit comments