forked from loafle/openapi-generator-original
removed a using statement (#20541)
This commit is contained in:
parent
8b52b0afe3
commit
187af2ec4e
@ -7,7 +7,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace {{packageName}}.{{clientPackage}}
|
||||
{
|
||||
@ -17,7 +16,7 @@ namespace {{packageName}}.{{clientPackage}}
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
{{>visibility}} class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new{{^net70OrLater}} Dictionary<string, Channel<TTokenBase>>{{/net70OrLater}}();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new{{^net70OrLater}} Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>{{/net70OrLater}}();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -29,12 +28,12 @@ namespace {{packageName}}.{{clientPackage}}
|
||||
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40));
|
||||
|
||||
{{#lambda.copy}}
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
{{/lambda.copy}}
|
||||
{{#hasApiKeyMethods}}
|
||||
if (container is TokenContainer<ApiKeyToken> apiKeyTokenContainer)
|
||||
@ -43,12 +42,12 @@ namespace {{packageName}}.{{clientPackage}}
|
||||
|
||||
foreach (string header in headers)
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(header, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(header, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -64,14 +63,14 @@ namespace {{packageName}}.{{clientPackage}}
|
||||
{{/lambda.paste}}
|
||||
{{/hasApiKeyMethods}}
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default{{^netstandard20OrLater}}(global::System.Threading.CancellationToken){{/netstandard20OrLater}})
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase>{{nrt?}} tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>{{nrt?}} tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -14,7 +14,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -24,7 +23,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -41,32 +40,32 @@ namespace Org.OpenAPITools.Client
|
||||
|
||||
foreach (string header in headers)
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(header, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(header, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase>? tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -11,7 +11,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, Channel<TTokenBase>>();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -32,21 +31,21 @@ namespace Org.OpenAPITools.Client
|
||||
foreach(TTokenBase token in _tokens)
|
||||
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40));
|
||||
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase> tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -11,7 +11,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, Channel<TTokenBase>>();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -32,21 +31,21 @@ namespace Org.OpenAPITools.Client
|
||||
foreach(TTokenBase token in _tokens)
|
||||
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40));
|
||||
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase> tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -11,7 +11,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, Channel<TTokenBase>>();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -32,21 +31,21 @@ namespace Org.OpenAPITools.Client
|
||||
foreach(TTokenBase token in _tokens)
|
||||
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40));
|
||||
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase> tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -11,7 +11,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, Channel<TTokenBase>>();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -38,32 +37,32 @@ namespace Org.OpenAPITools.Client
|
||||
|
||||
foreach (string header in headers)
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(header, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(header, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase> tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -11,7 +11,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, Channel<TTokenBase>>();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -32,21 +31,21 @@ namespace Org.OpenAPITools.Client
|
||||
foreach(TTokenBase token in _tokens)
|
||||
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40));
|
||||
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase> tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -11,7 +11,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, Channel<TTokenBase>>();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -38,32 +37,32 @@ namespace Org.OpenAPITools.Client
|
||||
|
||||
foreach (string header in headers)
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(header, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(header, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase> tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -11,7 +11,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, Channel<TTokenBase>>();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -32,21 +31,21 @@ namespace Org.OpenAPITools.Client
|
||||
foreach(TTokenBase token in _tokens)
|
||||
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40));
|
||||
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase> tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -11,7 +11,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, Channel<TTokenBase>>();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -32,21 +31,21 @@ namespace Org.OpenAPITools.Client
|
||||
foreach(TTokenBase token in _tokens)
|
||||
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40));
|
||||
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase> tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -11,7 +11,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, Channel<TTokenBase>>();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -32,21 +31,21 @@ namespace Org.OpenAPITools.Client
|
||||
foreach(TTokenBase token in _tokens)
|
||||
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40));
|
||||
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase> tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -11,7 +11,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, Channel<TTokenBase>>();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -32,21 +31,21 @@ namespace Org.OpenAPITools.Client
|
||||
foreach(TTokenBase token in _tokens)
|
||||
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40));
|
||||
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase> tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -11,7 +11,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, Channel<TTokenBase>>();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -38,32 +37,32 @@ namespace Org.OpenAPITools.Client
|
||||
|
||||
foreach (string header in headers)
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(header, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(header, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase> tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -11,7 +11,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, Channel<TTokenBase>>();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -32,21 +31,21 @@ namespace Org.OpenAPITools.Client
|
||||
foreach(TTokenBase token in _tokens)
|
||||
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40));
|
||||
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase> tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -11,7 +11,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, Channel<TTokenBase>>();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -38,32 +37,32 @@ namespace Org.OpenAPITools.Client
|
||||
|
||||
foreach (string header in headers)
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(header, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(header, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase> tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -11,7 +11,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, Channel<TTokenBase>>();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -32,21 +31,21 @@ namespace Org.OpenAPITools.Client
|
||||
foreach(TTokenBase token in _tokens)
|
||||
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40));
|
||||
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase> tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -13,7 +13,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -34,21 +33,21 @@ namespace Org.OpenAPITools.Client
|
||||
foreach(TTokenBase token in _tokens)
|
||||
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40));
|
||||
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase>? tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -13,7 +13,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -34,21 +33,21 @@ namespace Org.OpenAPITools.Client
|
||||
foreach(TTokenBase token in _tokens)
|
||||
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40));
|
||||
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase>? tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -13,7 +13,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -34,21 +33,21 @@ namespace Org.OpenAPITools.Client
|
||||
foreach(TTokenBase token in _tokens)
|
||||
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40));
|
||||
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase>? tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -11,7 +11,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -38,32 +37,32 @@ namespace Org.OpenAPITools.Client
|
||||
|
||||
foreach (string header in headers)
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(header, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(header, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase> tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -13,7 +13,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -40,32 +39,32 @@ namespace Org.OpenAPITools.Client
|
||||
|
||||
foreach (string header in headers)
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(header, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(header, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase>? tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -13,7 +13,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -34,21 +33,21 @@ namespace Org.OpenAPITools.Client
|
||||
foreach(TTokenBase token in _tokens)
|
||||
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40));
|
||||
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase>? tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -11,7 +11,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -38,32 +37,32 @@ namespace Org.OpenAPITools.Client
|
||||
|
||||
foreach (string header in headers)
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(header, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(header, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase> tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -13,7 +13,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -40,32 +39,32 @@ namespace Org.OpenAPITools.Client
|
||||
|
||||
foreach (string header in headers)
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(header, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(header, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase>? tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -13,7 +13,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -34,21 +33,21 @@ namespace Org.OpenAPITools.Client
|
||||
foreach(TTokenBase token in _tokens)
|
||||
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40));
|
||||
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase>? tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -13,7 +13,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -34,21 +33,21 @@ namespace Org.OpenAPITools.Client
|
||||
foreach(TTokenBase token in _tokens)
|
||||
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40));
|
||||
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase>? tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -13,7 +13,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -34,21 +33,21 @@ namespace Org.OpenAPITools.Client
|
||||
foreach(TTokenBase token in _tokens)
|
||||
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40));
|
||||
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase>? tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -13,7 +13,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -34,21 +33,21 @@ namespace Org.OpenAPITools.Client
|
||||
foreach(TTokenBase token in _tokens)
|
||||
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40));
|
||||
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase>? tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -11,7 +11,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -38,32 +37,32 @@ namespace Org.OpenAPITools.Client
|
||||
|
||||
foreach (string header in headers)
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(header, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(header, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase> tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -13,7 +13,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -40,32 +39,32 @@ namespace Org.OpenAPITools.Client
|
||||
|
||||
foreach (string header in headers)
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(header, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(header, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase>? tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -13,7 +13,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -34,21 +33,21 @@ namespace Org.OpenAPITools.Client
|
||||
foreach(TTokenBase token in _tokens)
|
||||
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40));
|
||||
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase>? tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -11,7 +11,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -38,32 +37,32 @@ namespace Org.OpenAPITools.Client
|
||||
|
||||
foreach (string header in headers)
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(header, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(header, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase> tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -13,7 +13,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -40,32 +39,32 @@ namespace Org.OpenAPITools.Client
|
||||
|
||||
foreach (string header in headers)
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(header, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(header, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase>? tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -13,7 +13,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -34,21 +33,21 @@ namespace Org.OpenAPITools.Client
|
||||
foreach(TTokenBase token in _tokens)
|
||||
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40));
|
||||
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase>? tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>? tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
@ -11,7 +11,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Channels;
|
||||
|
||||
namespace Org.OpenAPITools.Client
|
||||
{
|
||||
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
|
||||
/// <typeparam name="TTokenBase"></typeparam>
|
||||
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
|
||||
{
|
||||
internal Dictionary<string, Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, Channel<TTokenBase>>();
|
||||
internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>();
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
|
||||
@ -38,32 +37,32 @@ namespace Org.OpenAPITools.Client
|
||||
|
||||
foreach (string header in headers)
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(apiKeyTokenContainer.Tokens.Count(t => ClientUtils.ApiKeyHeaderToString(t.Header).Equals(header)))
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(header, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(header, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
BoundedChannelOptions options = new BoundedChannelOptions(_tokens.Length)
|
||||
global::System.Threading.Channels.BoundedChannelOptions options = new global::System.Threading.Channels.BoundedChannelOptions(_tokens.Length)
|
||||
{
|
||||
FullMode = BoundedChannelFullMode.DropWrite
|
||||
FullMode = global::System.Threading.Channels.BoundedChannelFullMode.DropWrite
|
||||
};
|
||||
|
||||
AvailableTokens.Add(string.Empty, Channel.CreateBounded<TTokenBase>(options));
|
||||
AvailableTokens.Add(string.Empty, global::System.Threading.Channels.Channel.CreateBounded<TTokenBase>(options));
|
||||
}
|
||||
|
||||
foreach(Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
foreach(global::System.Threading.Channels.Channel<TTokenBase> tokens in AvailableTokens.Values)
|
||||
for (int i = 0; i < _tokens.Length; i++)
|
||||
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender));
|
||||
}
|
||||
|
||||
internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default)
|
||||
{
|
||||
if (!AvailableTokens.TryGetValue(header, out Channel<TTokenBase> tokens))
|
||||
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase> tokens))
|
||||
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
|
||||
|
||||
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);
|
||||
|
Loading…
x
Reference in New Issue
Block a user