Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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());
                    }
                }
            }
        }
Exemplo n.º 4
0
        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);
        }