/// <summary> /// Инициализирует новый экземпляр класса <see cref="RabbitChannel"/>. /// </summary> /// <param name="bus"> /// The bus. /// </param> /// <param name="native"> /// The native. /// </param> public RabbitChannel(RabbitBus bus, IModel native) { this.bus = bus; this.Native = native; Logger.TraceFormat("Channel is opened."); this.Native.ModelShutdown += (model, reason) => { this.isClosed = true; Logger.TraceFormat("Channel is closed due to \"{0}\".", reason.ToString()); }; }
/// <summary> /// Инициализирует новый экземпляр класса <see cref="Producer"/>. /// </summary> /// <param name="bus"> /// Конечная точка, для которой создается отправитель. /// </param> /// <param name="label"> /// Метка сообщения, которая будет использоваться при отправлении сообщений. /// </param> /// <param name="routeResolver"> /// Определитель маршрутов, по которым можно отсылать и получать сообщения. /// </param> /// <param name="confirmationIsRequired"> /// Если <c>true</c> - тогда отправитель будет ожидать подтверждения о том, что сообщение было сохранено в брокере. /// </param> public Producer(RabbitBus bus, MessageLabel label, IRouteResolver routeResolver, bool confirmationIsRequired) { this.Channel = bus.OpenChannel(); this.Label = label; this.RouteResolver = routeResolver; this.ConfirmationIsRequired = confirmationIsRequired; if (this.ConfirmationIsRequired) { this.confirmationTracker = new DefaultPublishConfirmationTracker(this.Channel); this.Channel.EnablePublishConfirmation(); this.Channel.OnConfirmation(this.confirmationTracker.HandleConfirmation); } this.Failed += _ => ((IBusAdvanced)bus).Panic(); }
/// <summary> /// Инициализирует новый экземпляр класса <see cref="ProducerRegistry"/>. /// </summary> /// <param name="bus"> /// The bus. /// </param> public ProducerRegistry(RabbitBus bus) { this._bus = bus; }
/// <summary> /// Инициализирует новый экземпляр класса <see cref="ListenerRegistry"/>. /// </summary> /// <param name="bus"> /// The bus. /// </param> public ListenerRegistry(RabbitBus bus) { this.bus = bus; }