/// <summary> /// Initializes a new instance of the <see cref="CachedMessageProducer"/> class. /// </summary> /// <param name="target">The target.</param> public CachedMessageProducer(IMessageProducer target) { this.target = target; deliveryMode = target.MsgDeliveryMode; priority = target.Priority; timeToLive = target.TimeToLive; }
public DeliveryProperties SetDeliveryMode(MessageDeliveryMode value) { _DeliveryMode = value; packing_flags |= 4096; Dirty = true; return(this); }
private static IMessage DoMapMessage( IMessage message, IMessageConverter converter, IRabbitHeaderMapper headerMapper, MessageDeliveryMode defaultDeliveryMode, bool headersMappedLast, bool reply) { var targetHeaders = new MessageHeaders(); IMessage amqpMessage; if (!headersMappedLast) { MapHeaders(message.Headers, targetHeaders, headerMapper, reply); } // if (converter is ContentTypeDe && headersMappedLast) { // String contentType = contentTypeAsString(message.getHeaders()); // if (contentType != null) // { // amqpMessageProperties.setContentType(contentType); // } // } amqpMessage = converter.ToMessage(message.Payload, targetHeaders); if (headersMappedLast) { MapHeaders(message.Headers, targetHeaders, headerMapper, reply); } // checkDeliveryMode(message, amqpMessageProperties, defaultDeliveryMode); return(amqpMessage); }
public DeliveryProperties(MessageDeliveryPriority Priority, MessageDeliveryMode DeliveryMode, long Ttl, long Timestamp, long Expiration, String Exchange, String RoutingKey, String ResumeId, long ResumeTtl, params Option[] options) { SetPriority(Priority); SetDeliveryMode(DeliveryMode); SetTtl(Ttl); SetTimestamp(Timestamp); SetExpiration(Expiration); SetExchange(Exchange); SetRoutingKey(RoutingKey); SetResumeId(ResumeId); SetResumeTtl(ResumeTtl); for (int i = 0; i < options.Length; i++) { switch (options[i]) { case Option.DISCARD_UNROUTABLE: packing_flags |= 256; break; case Option.IMMEDIATE: packing_flags |= 512; break; case Option.REDELIVERED: packing_flags |= 1024; break; case Option.NONE: break; default: throw new Exception("invalid option: " + options[i]); } } }
public BusConfigurationBuilder RegisterPublication <TMessage>( string exchangeName, string typeHeader, MessageDeliveryMode deliveryMode, Func <Message, string> routingKeyFunc) where TMessage : Message { var _messageType = typeof(TMessage); if (!this.MessagePublications.ContainsKey(_messageType)) { this.MessagePublications.Add(_messageType, new List <MessageDelivery>()); } var _isCommandAndCommandEntryAlreadyExists = (typeof(Command).IsAssignableFrom(_messageType) && this.MessagePublications[_messageType].Count > 0); Check.Ensure(!_isCommandAndCommandEntryAlreadyExists, "Commands can only have one publication entry"); this.MessagePublications[_messageType].Add( new MessageDelivery( exchangeName, typeHeader, deliveryMode, routingKeyFunc)); return(this); }
public void Send(IDestination destination, IBytesMessage message, MessageDeliveryMode deliveryMode, MessagePriority priority, TimeSpan timeToLive) { if (null == destination) { // See if this producer was created without a destination. if (null == _info.Destination) { throw new NotSupportedException(); } throw new InvalidDestinationException( $"The producer was created with a destination, but an invalid destination was specified. => Destination: '{_info.Destination}'"); } Destination dest; if (Equals(destination, _info.Destination)) { dest = destination as Destination; } else if (_info.Destination == null) { dest = Destination.Transform(destination); } else { throw new NotSupportedException("This producer can only send messages to: " + _info.Destination.PhysicalName); } var stompMessage = _messageTransformation.TransformMessage <BytesMessage>(message); stompMessage.ProducerId = _info.ProducerId; stompMessage.FromDestination = dest; stompMessage.StompDeliveryMode = deliveryMode; stompMessage.StompPriority = priority; // Always set the message Id regardless of the disable flag. var id = new MessageId(_info.ProducerId, Interlocked.Increment(ref _producerSequenceId)); stompMessage.MessageId = id; if (!DisableMessageTimestamp) { stompMessage.StompTimestamp = DateTime.UtcNow; } if (timeToLive != TimeSpan.Zero) { stompMessage.StompTimeToLive = timeToLive; } lock ( _closedLock ) { if (_closed) { throw new ConnectionClosedException(); } _session.DoSend(stompMessage, RequestTimeout); } }
/** * Map an o.s.m.Message to an o.s.a.core.Message. When using a * {@link ContentTypeDelegatingMessageConverter}, {@link AmqpHeaders#CONTENT_TYPE} and * {@link MessageHeaders#CONTENT_TYPE} will be used for the selection, with the AMQP * header taking precedence. * @param requestMessage the request message. * @param converter the message converter to use. * @param headerMapper the header mapper to use. * @param defaultDeliveryMode the default delivery mode. * @param headersMappedLast true if headers are mapped after conversion. * @return the mapped Message. */ public static IMessage MapMessage( IMessage requestMessage, IMessageConverter converter, IRabbitHeaderMapper headerMapper, MessageDeliveryMode defaultDeliveryMode, bool headersMappedLast) { return(DoMapMessage(requestMessage, converter, headerMapper, defaultDeliveryMode, headersMappedLast, false)); }
public virtual AbstractMessageBuilder <T> SetDeliveryModeIfAbsentOrDefault(MessageDeliveryMode deliveryMode) { if (Properties.DeliveryMode == null || Properties.DeliveryMode.Equals(MessageProperties.DEFAULT_DELIVERY_MODE)) { Properties.DeliveryMode = deliveryMode; } return(this); }
public BusConfigurationBuilder RegisterPublication <TMessage>( string exchangeName, string typeHeader, MessageDeliveryMode deliveryMode) where TMessage : Message { return(this.RegisterPublication <TMessage>( exchangeName, typeHeader, deliveryMode, message => string.Empty)); }
public MessageDelivery( string exchangeName, // Can be empty where publishing via direct exchange, string typeHeader, MessageDeliveryMode deliveryMode, Func <Message, string> routingKeyFunc) { Check.RequireArgument("exchangeName", exchangeName, (exchangeName == string.Empty || exchangeName.Trim() != string.Empty)); Check.RequireArgumentNotEmpty("typeHeader", typeHeader); Check.RequireArgument("deliveryMode", deliveryMode, Enum.IsDefined(typeof(MessageDeliveryMode), deliveryMode)); Check.RequireArgumentNotNull("routingKeyFunc", routingKeyFunc); this.ExchangeName = exchangeName; this.TypeHeader = typeHeader; this.DeliveryMode = deliveryMode; this.RoutingKeyFunc = routingKeyFunc; }
public MessageDelivery( string exchangeName, // Can be empty where publishing via direct exchange, string typeHeader, MessageDeliveryMode deliveryMode, Func<Message, string> routingKeyFunc) { Check.RequireArgument("exchangeName", exchangeName, (exchangeName == string.Empty || exchangeName.Trim() != string.Empty)); Check.RequireArgumentNotEmpty("typeHeader", typeHeader); Check.RequireArgument("deliveryMode", deliveryMode, Enum.IsDefined(typeof(MessageDeliveryMode), deliveryMode)); Check.RequireArgumentNotNull("routingKeyFunc", routingKeyFunc); this.ExchangeName = exchangeName; this.TypeHeader = typeHeader; this.DeliveryMode = deliveryMode; this.RoutingKeyFunc = routingKeyFunc; }
public override void Read(IDecoder dec) { packing_flags = (int)dec.ReadUint16(); if ((packing_flags & 2048) != 0) { _Priority = MessageDeliveryPriorityGetter.Get(dec.ReadUint8()); } if ((packing_flags & 4096) != 0) { _DeliveryMode = MessageDeliveryModeGetter.Get(dec.ReadUint8()); } if ((packing_flags & 8192) != 0) { _Ttl = dec.ReadUint64(); } if ((packing_flags & 16384) != 0) { _Timestamp = dec.ReadDatetime(); } if ((packing_flags & 32768) != 0) { _Expiration = dec.ReadDatetime(); } if ((packing_flags & 1) != 0) { _Exchange = dec.ReadStr8(); } if ((packing_flags & 2) != 0) { _RoutingKey = dec.ReadStr8(); } if ((packing_flags & 4) != 0) { _ResumeId = dec.ReadStr16(); } if ((packing_flags & 8) != 0) { _ResumeTtl = dec.ReadUint64(); } }
public void Send(Message message, MessageDeliveryMode deliveryMode, int priority, long timeToLive) { target.Send(message, deliveryMode, priority, timeToLive); }
public void Send(Destination dest, Message message, MessageDeliveryMode deliveryMode, int priority, long timeToLive) { nativeMessageProducer.Send(dest, message, deliveryMode, priority, timeToLive); }
public void Send(Message message, MessageDeliveryMode deliveryMode, int priority, long timeToLive) { nativeMessageProducer.Send(message, deliveryMode, priority, timeToLive); }
public void Send(IBytesMessage message, MessageDeliveryMode deliveryMode, MessagePriority priority, TimeSpan timeToLive) => Send(_info.Destination, message, deliveryMode, priority, timeToLive);
public void Send(Destination dest, Message message, MessageDeliveryMode deliveryMode, int priority, long timeToLive) { throw new NotImplementedException(); }
public void Send(Destination dest, Message message, MessageDeliveryMode deliveryMode, int priority, long timeToLive) { target.Send(dest, message, deliveryMode, priority, timeToLive); }
public static AbstractMessageBuilder SetDeliveryMode(this AbstractMessageBuilder builder, MessageDeliveryMode deliveryMode) { builder.SetHeader(RabbitMessageHeaders.DELIVERY_MODE, deliveryMode); return(builder); }
public virtual AbstractMessageBuilder <T> SetDeliveryMode(MessageDeliveryMode deliveryMode) { Properties.DeliveryMode = deliveryMode; return(this); }