removed a using statement (#20541)

This commit is contained in:
devhl-labs 2025-01-31 04:23:35 -05:00 committed by GitHub
parent 8b52b0afe3
commit 187af2ec4e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
35 changed files with 255 additions and 290 deletions

View File

@ -7,7 +7,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace {{packageName}}.{{clientPackage}} namespace {{packageName}}.{{clientPackage}}
{ {
@ -17,7 +16,7 @@ namespace {{packageName}}.{{clientPackage}}
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
{{>visibility}} class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase {{>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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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)); token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40));
{{#lambda.copy}} {{#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}} {{/lambda.copy}}
{{#hasApiKeyMethods}} {{#hasApiKeyMethods}}
if (container is TokenContainer<ApiKeyToken> apiKeyTokenContainer) if (container is TokenContainer<ApiKeyToken> apiKeyTokenContainer)
@ -43,12 +42,12 @@ namespace {{packageName}}.{{clientPackage}}
foreach (string header in headers) 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 else
@ -64,14 +63,14 @@ namespace {{packageName}}.{{clientPackage}}
{{/lambda.paste}} {{/lambda.paste}}
{{/hasApiKeyMethods}} {{/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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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}}) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -14,7 +14,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -24,7 +23,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) 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 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -11,7 +11,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) foreach(TTokenBase token in _tokens)
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40)); 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -11,7 +11,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) foreach(TTokenBase token in _tokens)
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40)); 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -11,7 +11,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) foreach(TTokenBase token in _tokens)
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40)); 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -11,7 +11,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) 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 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -11,7 +11,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) foreach(TTokenBase token in _tokens)
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40)); 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -11,7 +11,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) 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 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -11,7 +11,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) foreach(TTokenBase token in _tokens)
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40)); 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -11,7 +11,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) foreach(TTokenBase token in _tokens)
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40)); 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -11,7 +11,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) foreach(TTokenBase token in _tokens)
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40)); 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -11,7 +11,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) foreach(TTokenBase token in _tokens)
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40)); 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -11,7 +11,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) 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 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -11,7 +11,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) foreach(TTokenBase token in _tokens)
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40)); 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -11,7 +11,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) 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 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -11,7 +11,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) foreach(TTokenBase token in _tokens)
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40)); 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -13,7 +13,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) foreach(TTokenBase token in _tokens)
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40)); 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -13,7 +13,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) foreach(TTokenBase token in _tokens)
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40)); 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -13,7 +13,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) foreach(TTokenBase token in _tokens)
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40)); 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -11,7 +11,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) 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 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -13,7 +13,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) 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 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -13,7 +13,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) foreach(TTokenBase token in _tokens)
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40)); 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -11,7 +11,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) 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 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -13,7 +13,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) 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 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -13,7 +13,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) foreach(TTokenBase token in _tokens)
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40)); 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -13,7 +13,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) foreach(TTokenBase token in _tokens)
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40)); 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -13,7 +13,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) foreach(TTokenBase token in _tokens)
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40)); 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -13,7 +13,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) foreach(TTokenBase token in _tokens)
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40)); 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -11,7 +11,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) 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 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -13,7 +13,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) 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 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -13,7 +13,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) foreach(TTokenBase token in _tokens)
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40)); 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -11,7 +11,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) 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 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -13,7 +13,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) 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 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -13,7 +13,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -23,7 +22,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) foreach(TTokenBase token in _tokens)
token.StartTimer(token.Timeout ?? TimeSpan.FromMilliseconds(40)); 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);

View File

@ -11,7 +11,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Channels;
namespace Org.OpenAPITools.Client namespace Org.OpenAPITools.Client
{ {
@ -21,7 +20,7 @@ namespace Org.OpenAPITools.Client
/// <typeparam name="TTokenBase"></typeparam> /// <typeparam name="TTokenBase"></typeparam>
public class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase 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> /// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout. /// 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) 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 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++) for (int i = 0; i < _tokens.Length; i++)
_tokens[i].TokenBecameAvailable += ((sender) => tokens.Writer.TryWrite((TTokenBase) sender)); _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) 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}'."); throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false); return await tokens.Reader.ReadAsync(cancellation).ConfigureAwait(false);