private void before_each() { _bucketId = new BucketId("bucket-id"); _aggregate = new FakeAggregate(Guid.NewGuid()); _readStreams = new FakeIReadStreams(); _target = new UnitOfWork(_bucketId, _readStreams, null, null); }
public GatewayBucket(GatewayBucketType type, BucketId id, int count, int seconds) { Type = type; Id = id; WindowCount = count; WindowSeconds = seconds; }
public ClientBucket(ClientBucketType type, BucketId id, int count, int seconds) { Type = type; Id = id; WindowCount = count; WindowSeconds = seconds; }
static GatewayBucket() { var buckets = new[] { // Limit is 120/60s, but 3 will be reserved for heartbeats (2 for possible heartbeats in the same timeframe and a possible failure) new GatewayBucket(GatewayBucketType.Unbucketed, BucketId.Create(null, "<gateway-unbucketed>", null), 117, 60), new GatewayBucket(GatewayBucketType.Identify, BucketId.Create(null, "<gateway-identify>", null), 1, 5), new GatewayBucket(GatewayBucketType.PresenceUpdate, BucketId.Create(null, "<gateway-presenceupdate>", null), 5, 60), }; var builder = ImmutableDictionary.CreateBuilder <GatewayBucketType, GatewayBucket>(); foreach (var bucket in buckets) { builder.Add(bucket.Type, bucket); } DefsByType = builder.ToImmutable(); var builder2 = ImmutableDictionary.CreateBuilder <BucketId, GatewayBucket>(); foreach (var bucket in buckets) { builder2.Add(bucket.Id, bucket); } DefsById = builder2.ToImmutable(); }
public override int GetHashCode() { unchecked { return((BucketId.GetHashCode() * 397) ^ StreamId.GetHashCode()); } }
private void before_each() { _id = Guid.Parse("bcb724f5-562f-4706-b470-570fa7174ec0"); _bucketId = new BucketId("bucket-id"); _createSessions = new FakeICreateSessions(); _streams = new FakeIWriteStreams(); _target = new UnitOfWork(_bucketId, null, _createSessions, _streams); }
private void before_each() { _id = Guid.Parse("bcb724f5-562f-4706-b470-570fa7174ec0"); _bucketId = new BucketId("bucket-id"); _aggregate = new FakeAggregate(_id); _createSessions = new FakeICreateSessions(); _writeSessionStreams = new FakeIWriteStreams(); _readStreams = new FakeIReadStreams(); _target = new UnitOfWork(_bucketId, _readStreams, _createSessions, _writeSessionStreams); }
internal (RequestBucket, BucketId) UpdateBucketHash(BucketId id, string discordHash) { if (!id.IsHashBucket) { var bucket = BucketId.Create(discordHash, id); var hashReqQueue = (RequestBucket)_buckets.GetOrAdd(bucket, _buckets[id]); _buckets.AddOrUpdate(id, bucket, (oldBucket, oldObj) => bucket); return(hashReqQueue, bucket); } return(null, null); }
private RequestBucket GetOrCreateBucket(RequestOptions options, IRequest request) { BucketId bucketId = options.BucketId; object obj = _buckets.GetOrAdd(bucketId, x => new RequestBucket(this, request, x)); if (obj is BucketId hashBucket) { options.BucketId = hashBucket; return((RequestBucket)_buckets.GetOrAdd(hashBucket, x => new RequestBucket(this, request, x))); } return((RequestBucket)obj); }
private void when_create() { act = () => _bucketId = new BucketId(_value); it["has value"] = () => _bucketId.Value.ShouldBe(_value); context["and value is null"] = () => { before = () => _value = null; it["throws exception"] = expect <ArgumentOutOfRangeException>( "Specified argument was out of the range of valid values.\r\nParameter name: value" ); }; context["and value is empty string"] = () => { before = () => _value = string.Empty; it["throws exception"] = expect <ArgumentOutOfRangeException>( "Specified argument was out of the range of valid values.\r\nParameter name: value" ); }; }
public RequestBucket(RequestQueue queue, RestRequest request, BucketId id) { _queue = queue; Id = id; _lock = new object(); if (request.Options.IsClientBucket) { WindowCount = ClientBucket.Get(Id).WindowCount; } else { WindowCount = 1; //Only allow one request until we get a header back } _semaphore = WindowCount; _resetTick = null; LastAttemptAt = DateTimeOffset.UtcNow; }
static ClientBucket() { ClientBucket[] buckets = new[] { new ClientBucket(ClientBucketType.Unbucketed, BucketId.Create(null, "<unbucketed>", null), 10, 10), new ClientBucket(ClientBucketType.SendEdit, BucketId.Create(null, "<send_edit>", null), 10, 10) }; ImmutableDictionary <ClientBucketType, ClientBucket> .Builder builder = ImmutableDictionary.CreateBuilder <ClientBucketType, ClientBucket>(); foreach (ClientBucket bucket in buckets) { builder.Add(bucket.Type, bucket); } DefsByType = builder.ToImmutable(); ImmutableDictionary <BucketId, ClientBucket> .Builder builder2 = ImmutableDictionary.CreateBuilder <BucketId, ClientBucket>(); foreach (ClientBucket bucket in buckets) { builder2.Add(bucket.Id, bucket); } DefsById = builder2.ToImmutable(); }
static GatewayBucket() { GatewayBucket[] buckets = new[] { new GatewayBucket(GatewayBucketType.Unbucketed, BucketId.Create(null, "<gateway-unbucketed>", null), 120, 60), new GatewayBucket(GatewayBucketType.Identify, BucketId.Create(null, "<gateway-identify>", null), 1, 5), new GatewayBucket(GatewayBucketType.PresenceUpdate, BucketId.Create(null, "<gateway-presenceupdate>", null), 5, 60), }; ImmutableDictionary <GatewayBucketType, GatewayBucket> .Builder builder = ImmutableDictionary.CreateBuilder <GatewayBucketType, GatewayBucket>(); foreach (GatewayBucket bucket in buckets) { builder.Add(bucket.Type, bucket); } DefsByType = builder.ToImmutable(); ImmutableDictionary <BucketId, GatewayBucket> .Builder builder2 = ImmutableDictionary.CreateBuilder <BucketId, GatewayBucket>(); foreach (GatewayBucket bucket in buckets) { builder2.Add(bucket.Id, bucket); } DefsById = builder2.ToImmutable(); }
private void before_each() { _bucketId = new BucketId("bucket-id"); }
public static GatewayBucket Get(BucketId id) => DefsById[id];
private void before_each() { _target = new DefaultStreamIdentityFactory(); _bucketId = new BucketId("bucket-id"); _id = "aggregate-id"; }
public session_collision(BucketId bucketId, ICreateSessions sessions, IWriteStreams streams) { _bucketId = bucketId; _sessions = sessions; _streams = streams; }
internal async Task RaiseRateLimitTriggered(BucketId bucketId, RateLimitInfo?info, string endpoint) { await RateLimitTriggered(bucketId, info, endpoint).ConfigureAwait(false); }
private void before_each() { _bucketId = new BucketId("bucket-id"); _aggregateType = new AggregateType("aggregate-type"); _aggregateId = new AggregateId("aggregate-id"); }
/// <summary> /// Gets the hash code for this <see cref="RateLimitBucket"/>. /// </summary> /// <returns>The hash code for this <see cref="RateLimitBucket"/>.</returns> public override int GetHashCode() { return(BucketId.GetHashCode()); }
/// <summary> /// Gets the hash code for this <see cref="RateLimitBucket"/>. /// </summary> /// <returns>The hash code for this <see cref="RateLimitBucket"/>.</returns> public override int GetHashCode() => BucketId.GetHashCode();
public static ClientBucket Get(BucketId id) => DefsById[id];
private void before_each() { _bucketId = new BucketId("bucket-id"); _aggregate = new FakeICanBeRegistered(); _target = new UnitOfWork(_bucketId, null, null, null); }