@@ -6,21 +6,21 @@ namespace Ydb.Sdk;
66
77public interface IDriver : IAsyncDisposable , IDisposable
88{
9- internal Task < TResponse > UnaryCall < TRequest , TResponse > (
9+ public Task < TResponse > UnaryCall < TRequest , TResponse > (
1010 Method < TRequest , TResponse > method ,
1111 TRequest request ,
1212 GrpcRequestSettings settings )
1313 where TRequest : class
1414 where TResponse : class ;
1515
16- internal ServerStream < TResponse > ServerStreamCall < TRequest , TResponse > (
16+ public ServerStream < TResponse > ServerStreamCall < TRequest , TResponse > (
1717 Method < TRequest , TResponse > method ,
1818 TRequest request ,
1919 GrpcRequestSettings settings )
2020 where TRequest : class
2121 where TResponse : class ;
2222
23- internal BidirectionalStream < TRequest , TResponse > BidirectionalStreamCall < TRequest , TResponse > (
23+ public IBidirectionalStream < TRequest , TResponse > BidirectionalStreamCall < TRequest , TResponse > (
2424 Method < TRequest , TResponse > method ,
2525 GrpcRequestSettings settings )
2626 where TRequest : class
@@ -29,6 +29,15 @@ internal BidirectionalStream<TRequest, TResponse> BidirectionalStreamCall<TReque
2929 ILoggerFactory LoggerFactory { get ; }
3030}
3131
32+ public interface IBidirectionalStream < in TRequest , out TResponse > : IDisposable
33+ {
34+ public Task Write ( TRequest request ) ;
35+
36+ public ValueTask < bool > MoveNextAsync ( ) ;
37+
38+ public TResponse Current { get ; }
39+ }
40+
3241public abstract class BaseDriver : IDriver
3342{
3443 protected readonly DriverConfig Config ;
@@ -95,7 +104,7 @@ public ServerStream<TResponse> ServerStreamCall<TRequest, TResponse>(
95104 return new ServerStream < TResponse > ( call , e => { OnRpcError ( endpoint , e ) ; } ) ;
96105 }
97106
98- public BidirectionalStream < TRequest , TResponse > BidirectionalStreamCall < TRequest , TResponse > (
107+ public IBidirectionalStream < TRequest , TResponse > BidirectionalStreamCall < TRequest , TResponse > (
99108 Method < TRequest , TResponse > method ,
100109 GrpcRequestSettings settings )
101110 where TRequest : class
@@ -213,7 +222,7 @@ public async ValueTask<bool> MoveNextAsync()
213222 }
214223}
215224
216- public sealed class BidirectionalStream < TRequest , TResponse > : IDisposable
225+ public class BidirectionalStream < TRequest , TResponse > : IBidirectionalStream < TRequest , TResponse >
217226{
218227 private readonly AsyncDuplexStreamingCall < TRequest , TResponse > _stream ;
219228 private readonly Action < RpcException > _rpcErrorAction ;
0 commit comments