public RabbitModelPublisher(IModel model, IRequestModelPublisher requestModelPublisher)
        {
            _model = model;
            _requestModelPublisher = requestModelPublisher;

            if (_requestModelPublisher.WaitForPublishAcks)
            {
                _model.ConfirmSelect();
                _model.BasicAcks +=
                    (sender, args) =>
                {
                    _self.Tell(args, null);
                };
            }

            _messagesWaitingForAcks = new Dictionary <ulong, MessageWaitingForAck>();

            _ackTimeout = requestModelPublisher.AckTimeout;

            Ready();
        }
 public static Props CreateProps(IModel model, IRequestModelPublisher requestModelPublisher)
 {
     return(Props.Create <RabbitModelPublisher>(model, requestModelPublisher));
 }