Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 3
0
        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);
        }