diff --git a/src/FrostFS.SDK.ClientV2/Services/ObjectReader.cs b/src/FrostFS.SDK.ClientV2/Services/ObjectReader.cs index 19c65d8..647a7ad 100644 --- a/src/FrostFS.SDK.ClientV2/Services/ObjectReader.cs +++ b/src/FrostFS.SDK.ClientV2/Services/ObjectReader.cs @@ -5,13 +5,14 @@ using Grpc.Core; using FrostFS.Object; using FrostFS.SDK.ModelsV2; +using System.Threading; namespace FrostFS.SDK.ClientV2; public class ObjectReader(AsyncServerStreamingCall call) : IObjectReader { private bool disposed = false; - + public AsyncServerStreamingCall Call { get; private set; } = call; internal async Task ReadHeader() @@ -32,9 +33,9 @@ public class ObjectReader(AsyncServerStreamingCall call) : IObjectR }; } - public async Task ReadChunk() + public async Task ReadChunk(CancellationToken cancellationToken = default) { - if (!await Call.ResponseStream.MoveNext()) + if (!await Call.ResponseStream.MoveNext(cancellationToken)) return null; var response = Call.ResponseStream.Current; diff --git a/src/FrostFS.SDK.ModelsV2/Object/IObjectReader.cs b/src/FrostFS.SDK.ModelsV2/Object/IObjectReader.cs index 3822dce..4c5ce3d 100644 --- a/src/FrostFS.SDK.ModelsV2/Object/IObjectReader.cs +++ b/src/FrostFS.SDK.ModelsV2/Object/IObjectReader.cs @@ -1,9 +1,10 @@ using System; +using System.Threading; using System.Threading.Tasks; namespace FrostFS.SDK.ModelsV2; public interface IObjectReader : IDisposable { - Task ReadChunk(); + Task ReadChunk(CancellationToken cancellationToken = default); }