protected ModelBase(bool dispatchAsync, int concurrency, ISession session) { ConsumerDispatcher = dispatchAsync ? (IConsumerDispatcher) new AsyncConsumerDispatcher(this, concurrency) : new ConsumerDispatcher(this, concurrency); _emptyBasicProperties = CreateBasicProperties(); Action <Exception, string> onException = (exception, context) => OnCallbackException(CallbackExceptionEventArgs.Build(exception, context)); _basicAcksWrapper = new EventingWrapper <BasicAckEventArgs>("OnBasicAck", onException); _basicNacksWrapper = new EventingWrapper <BasicNackEventArgs>("OnBasicNack", onException); _basicRecoverOkWrapper = new EventingWrapper <EventArgs>("OnBasicRecover", onException); _basicReturnWrapper = new EventingWrapper <BasicReturnEventArgs>("OnBasicReturn", onException); _callbackExceptionWrapper = new EventingWrapper <CallbackExceptionEventArgs>(string.Empty, (exception, context) => { }); _flowControlWrapper = new EventingWrapper <FlowControlEventArgs>("OnFlowControl", onException); _modelShutdownWrapper = new EventingWrapper <ShutdownEventArgs>("OnModelShutdown", onException); _recoveryWrapper = new EventingWrapper <EventArgs>("OnModelRecovery", onException); session.CommandReceived = HandleCommand; session.SessionShutdown += OnSessionShutdown; Session = session; }
protected ModelBase(ConnectionConfig config, ISession session) { ContinuationTimeout = config.ContinuationTimeout; ConsumerDispatcher = config.DispatchConsumersAsync ? (IConsumerDispatcher) new AsyncConsumerDispatcher(this, config.DispatchConsumerConcurrency) : new ConsumerDispatcher(this, config.DispatchConsumerConcurrency); Action <Exception, string> onException = (exception, context) => OnCallbackException(CallbackExceptionEventArgs.Build(exception, context)); _basicAcksWrapper = new EventingWrapper <BasicAckEventArgs>("OnBasicAck", onException); _basicNacksWrapper = new EventingWrapper <BasicNackEventArgs>("OnBasicNack", onException); _basicRecoverOkWrapper = new EventingWrapper <EventArgs>("OnBasicRecover", onException); _basicReturnWrapper = new EventingWrapper <BasicReturnEventArgs>("OnBasicReturn", onException); _callbackExceptionWrapper = new EventingWrapper <CallbackExceptionEventArgs>(string.Empty, (exception, context) => { }); _flowControlWrapper = new EventingWrapper <FlowControlEventArgs>("OnFlowControl", onException); _modelShutdownWrapper = new EventingWrapper <ShutdownEventArgs>("OnModelShutdown", onException); _recoveryWrapper = new EventingWrapper <EventArgs>("OnModelRecovery", onException); session.CommandReceived = HandleCommand; session.SessionShutdown += OnSessionShutdown; Session = session; }
protected ModelBase(ISession session, ConsumerWorkService workService) { if (workService is AsyncConsumerWorkService asyncConsumerWorkService) { ConsumerDispatcher = new AsyncConsumerDispatcher(this, asyncConsumerWorkService); } else { ConsumerDispatcher = new ConcurrentConsumerDispatcher(this, workService); } _emptyBasicProperties = CreateBasicProperties(); Action <Exception, string> onException = (exception, context) => OnCallbackException(CallbackExceptionEventArgs.Build(exception, context)); _basicAcksWrapper = new EventingWrapper <BasicAckEventArgs>("OnBasicAck", onException); _basicNacksWrapper = new EventingWrapper <BasicNackEventArgs>("OnBasicNack", onException); _basicRecoverOkWrapper = new EventingWrapper <EventArgs>("OnBasicRecover", onException); _basicReturnWrapper = new EventingWrapper <BasicReturnEventArgs>("OnBasicReturn", onException); _callbackExceptionWrapper = new EventingWrapper <CallbackExceptionEventArgs>(string.Empty, (exception, context) => { }); _flowControlWrapper = new EventingWrapper <FlowControlEventArgs>("OnFlowControl", onException); _modelShutdownWrapper = new EventingWrapper <ShutdownEventArgs>("OnModelShutdown", onException); _recoveryWrapper = new EventingWrapper <EventArgs>("OnModelRecovery", onException); Initialise(session); }