using System; using System.Collections.Generic; using System.Threading; using FrostFS.SDK.ModelsV2; using Grpc.Core.Interceptors; namespace FrostFS.SDK.ClientV2; public class Context() { private List interceptors; public CancellationToken CancellationToken { get; set; } = default; public TimeSpan Timeout { get; set; } = default; public string SessionToken { get; set; } = string.Empty; public DateTime? Deadline => Timeout.Ticks > 0 ? DateTime.UtcNow.Add(Timeout) : null; public Action Callback { get; set; } public List Interceptors { get { return interceptors ??= []; } set { interceptors = value; } } }