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 DeliveryProperties SetPriority(MessageDeliveryPriority value) { _Priority = value; packing_flags |= 2048; Dirty = true; return(this); }
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(); } }