29 lines
952 B
C#
29 lines
952 B
C#
namespace SuiteLink.Client;
|
|
|
|
public sealed record class SuiteLinkRuntimeOptions
|
|
{
|
|
public SuiteLinkRuntimeOptions(
|
|
SuiteLinkRetryPolicy retryPolicy,
|
|
SuiteLinkCatchUpPolicy catchUpPolicy,
|
|
TimeSpan catchUpTimeout)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(retryPolicy);
|
|
|
|
if (catchUpTimeout <= TimeSpan.Zero)
|
|
{
|
|
throw new ArgumentOutOfRangeException(nameof(catchUpTimeout), catchUpTimeout, "Catch-up timeout must be positive.");
|
|
}
|
|
|
|
RetryPolicy = retryPolicy;
|
|
CatchUpPolicy = catchUpPolicy;
|
|
CatchUpTimeout = catchUpTimeout;
|
|
}
|
|
|
|
public SuiteLinkRetryPolicy RetryPolicy { get; init; }
|
|
public SuiteLinkCatchUpPolicy CatchUpPolicy { get; init; }
|
|
public TimeSpan CatchUpTimeout { get; init; }
|
|
|
|
public static SuiteLinkRuntimeOptions Default { get; } =
|
|
new(SuiteLinkRetryPolicy.Default, SuiteLinkCatchUpPolicy.None, TimeSpan.FromSeconds(2));
|
|
}
|