@@ -184,16 +184,21 @@ public event AsyncEventHandler<RecoveringConsumerEventArgs> RecoveringConsumerAs
184184
185185 public IProtocol Protocol => Endpoint . Protocol ;
186186
187+ // TODO pass channel creation options?
187188 public async ValueTask < RecoveryAwareChannel > CreateNonRecoveringChannelAsync (
188189 bool publisherConfirmationsEnabled = false ,
189190 bool publisherConfirmationTrackingEnabled = false ,
191+ ushort ? maxOutstandingPublisherConfirmations = null ,
190192 ushort ? consumerDispatchConcurrency = null ,
191193 CancellationToken cancellationToken = default )
192194 {
193195 ISession session = InnerConnection . CreateSession ( ) ;
194196 var result = new RecoveryAwareChannel ( _config , session , consumerDispatchConcurrency ) ;
195197 return ( RecoveryAwareChannel ) await result . OpenAsync (
196- publisherConfirmationsEnabled , publisherConfirmationTrackingEnabled , cancellationToken )
198+ publisherConfirmationsEnabled ,
199+ publisherConfirmationTrackingEnabled ,
200+ maxOutstandingPublisherConfirmations ,
201+ cancellationToken )
197202 . ConfigureAwait ( false ) ;
198203 }
199204
@@ -266,11 +271,20 @@ public async Task<IChannel> CreateChannelAsync(CreateChannelOptions? options = d
266271 ushort cdc = options . ConsumerDispatchConcurrency . GetValueOrDefault ( _config . ConsumerDispatchConcurrency ) ;
267272
268273 RecoveryAwareChannel recoveryAwareChannel = await CreateNonRecoveringChannelAsync (
269- options . PublisherConfirmationsEnabled , options . PublisherConfirmationTrackingEnabled , cdc , cancellationToken )
274+ options . PublisherConfirmationsEnabled ,
275+ options . PublisherConfirmationTrackingEnabled ,
276+ options . MaxOutstandingPublisherConfirmations ,
277+ cdc ,
278+ cancellationToken )
270279 . ConfigureAwait ( false ) ;
271280
272- var autorecoveringChannel = new AutorecoveringChannel ( this , recoveryAwareChannel , cdc ,
273- options . PublisherConfirmationsEnabled , options . PublisherConfirmationTrackingEnabled ) ;
281+ // TODO just pass create channel options
282+ var autorecoveringChannel = new AutorecoveringChannel ( this ,
283+ recoveryAwareChannel ,
284+ cdc ,
285+ options . PublisherConfirmationsEnabled ,
286+ options . PublisherConfirmationTrackingEnabled ,
287+ options . MaxOutstandingPublisherConfirmations ) ;
274288 await RecordChannelAsync ( autorecoveringChannel , channelsSemaphoreHeld : false , cancellationToken : cancellationToken )
275289 . ConfigureAwait ( false ) ;
276290 return autorecoveringChannel ;
0 commit comments