public NetworkStatsSource(TimeSpan periodNormalPriority, TimeSpan periodHighPriority, TimeSpan periodLowPriority, int itemsPerResultChunk, IRandomNumberGenerator rng) : base(periodNormalPriority, periodHighPriority, periodLowPriority) { if (itemsPerResultChunk < 1 || itemsPerResultChunk > 10000) { throw new ArgumentOutOfRangeException(nameof(itemsPerResultChunk), itemsPerResultChunk, "Items per chunck must be between 1 and 10000"); } this._ItemsPerResultChunk = itemsPerResultChunk; this._Rng = rng ?? StandardRandomWrapperGenerator.StockRandom(); }
public ExternalWebContentSource(string userAgent, IEnumerable <Uri> sources, TimeSpan periodNormalPriority, TimeSpan periodHighPriority, TimeSpan periodLowPriority, int serversPerSample, IRandomNumberGenerator rng) : base(periodNormalPriority, periodHighPriority, periodLowPriority) { if (serversPerSample <= 0) { throw new ArgumentOutOfRangeException(nameof(serversPerSample), serversPerSample, "Servers per sample must be at least one."); } this._UserAgent = String.IsNullOrWhiteSpace(userAgent) ? HttpClientHelpers.UserAgentString() : userAgent; this._Sources = (sources ?? LoadInternalServerList()).ToList(); if (_Sources.Count <= 0) { throw new ArgumentOutOfRangeException(nameof(sources), sources, "At least one source URL must be provided."); } this._ServersPerSample = serversPerSample > 0 ? serversPerSample : 4; this._ServersPerSample = Math.Min(_ServersPerSample, _Sources.Count); this._Rng = rng ?? StandardRandomWrapperGenerator.StockRandom(); _Sources.ShuffleInPlace(_Rng); }
private async Task FuzzGenerator(int iterations, int bytesPerRequestMin, int bytesPerRequestMax, IRandomNumberGenerator generator, string filename) { var rng = new StandardRandomWrapperGenerator(); using (var sw = new StreamWriter(filename + ".txt", false, Encoding.UTF8)) { await sw.WriteLineAsync($"{generator.GetType().FullName} - {iterations:N0} iterations"); for (int i = 0; i < iterations; i++) { var bytesToGet = rng.GetRandomInt32(bytesPerRequestMin, bytesPerRequestMax); var bytes = generator.GetRandomBytes(bytesToGet); if (bytes == null) { await sw.WriteLineAsync("<null>"); } else { await sw.WriteLineAsync(bytes.ToHexString()); } } } }
public PingStatsSource(TimeSpan periodNormalPriority, TimeSpan periodHighPriority, TimeSpan periodLowPriority, IEnumerable <IPAddress> servers, int pingsPerSample, int serversPerSample, IRandomNumberGenerator rng) : base(periodNormalPriority, periodHighPriority, periodLowPriority) { if (pingsPerSample <= 0) { throw new ArgumentOutOfRangeException(nameof(pingsPerSample), pingsPerSample, "Pings per sample must be at least one."); } if (serversPerSample <= 0) { throw new ArgumentOutOfRangeException(nameof(serversPerSample), serversPerSample, "Servers per sample must be at least one."); } this._Servers = (servers ?? LoadInternalServerList()).ToList(); if (_Servers.Count <= 0) { throw new ArgumentOutOfRangeException(nameof(servers), servers, "At least one server must be provided."); } this._ServersPerSample = serversPerSample > 0 ? serversPerSample : 6; this._ServersPerSample = Math.Min(_ServersPerSample, _Servers.Count); this._PingsPerSample = pingsPerSample > 0 ? pingsPerSample : 6; this._Rng = rng ?? StandardRandomWrapperGenerator.StockRandom(); _Servers.ShuffleInPlace(_Rng); }