public override Task AddMessageAsync(IQueueMessage <object, int> message, QueueSettings queueSettings, CancellationToken cancellationToken = default(CancellationToken)) { message.Id = IdInternal; Queue.Add(IdInternal, SerializerBinary.CloneStatic(message)); ++IdInternal; return(Task.Delay(0, cancellationToken)); }
public override Task <IEnumerable <IQueueMessage <object, int> > > PeekMessagesAsync(QueueSettings queueSettings, CancellationToken cancellationToken = default(CancellationToken)) { var values = Queue .Values .Select(m => SerializerBinary.CloneStatic(m)) .ToList() .AsEnumerable(); return(Task.FromResult(values)); }
public override Task <IQueueMessage <object, int> > PeekMessageAsync(QueueSettings queueSettings, CancellationToken cancellationToken = default(CancellationToken)) { var returnValue = Task.FromResult(default(IQueueMessage <object, int>)); if (Queue.Any()) { var pair = Queue.First(); returnValue = Task.FromResult(SerializerBinary.CloneStatic(pair.Value)); } return(returnValue); }