public void TestDequeue() { SimplePriorityMessageDispatchChannel channel = new SimplePriorityMessageDispatchChannel(); MessageDispatch dispatch1 = new MessageDispatch(); MessageDispatch dispatch2 = new MessageDispatch(); MessageDispatch dispatch3 = new MessageDispatch(); Message message1 = new Message(); Message message2 = new Message(); Message message3 = new Message(); message1.Priority = 1; message2.Priority = 2; message3.Priority = 3; dispatch1.Message = message1; dispatch2.Message = message2; dispatch3.Message = message3; channel.Start(); Assert.IsTrue( channel.Running == true ); DateTime timeStarted = DateTime.Now; Assert.IsTrue( channel.Dequeue(TimeSpan.FromMilliseconds(1000)) == null ); DateTime timeFinished = DateTime.Now; TimeSpan elapsed = timeFinished - timeStarted; Assert.IsTrue( elapsed.TotalMilliseconds >= 999 ); channel.Enqueue( dispatch1 ); channel.Enqueue( dispatch2 ); channel.Enqueue( dispatch3 ); Assert.IsTrue( channel.Empty == false ); Assert.IsTrue( channel.Count == 3 ); Assert.IsTrue( channel.Dequeue( TimeSpan.FromMilliseconds(Timeout.Infinite) ) == dispatch3 ); Assert.IsTrue( channel.Dequeue( TimeSpan.Zero ) == dispatch2 ); Assert.IsTrue( channel.Dequeue( TimeSpan.FromMilliseconds(1000) ) == dispatch1 ); Assert.IsTrue( channel.Count == 0 ); Assert.IsTrue( channel.Empty == true ); }
protected void SetContent(Message message, String text) { MemoryStream mstream = new MemoryStream(); EndianBinaryWriter dataOut = new EndianBinaryWriter(mstream); dataOut.WriteString32(text); dataOut.Close(); message.Content = mstream.ToArray(); }
public void TestRemoveAll() { SimplePriorityMessageDispatchChannel channel = new SimplePriorityMessageDispatchChannel(); MessageDispatch dispatch1 = new MessageDispatch(); MessageDispatch dispatch2 = new MessageDispatch(); MessageDispatch dispatch3 = new MessageDispatch(); Message message1 = new Message(); Message message2 = new Message(); Message message3 = new Message(); message1.Priority = 1; message2.Priority = 2; message3.Priority = 3; dispatch1.Message = message1; dispatch2.Message = message2; dispatch3.Message = message3; channel.Enqueue( dispatch1 ); channel.Enqueue( dispatch2 ); channel.Enqueue( dispatch3 ); channel.Start(); Assert.IsTrue( channel.Running == true ); Assert.IsTrue( channel.Empty == false ); Assert.IsTrue( channel.Count == 3 ); Assert.IsTrue( channel.RemoveAll().Length == 3 ); Assert.IsTrue( channel.Count == 0 ); Assert.IsTrue( channel.Empty == true ); }
public void TestPeek() { SimplePriorityMessageDispatchChannel channel = new SimplePriorityMessageDispatchChannel(); MessageDispatch dispatch1 = new MessageDispatch(); MessageDispatch dispatch2 = new MessageDispatch(); Message message1 = new Message(); Message message2 = new Message(); message1.Priority = 2; message2.Priority = 1; dispatch1.Message = message1; dispatch2.Message = message2; Assert.IsTrue( channel.Empty == true ); Assert.IsTrue( channel.Count == 0 ); channel.EnqueueFirst( dispatch1 ); Assert.IsTrue( channel.Empty == false ); Assert.IsTrue( channel.Count == 1 ); channel.EnqueueFirst( dispatch2 ); Assert.IsTrue( channel.Empty == false ); Assert.IsTrue( channel.Count == 2 ); Assert.IsTrue( channel.Peek() == null ); channel.Start(); Assert.IsTrue( channel.Peek() == dispatch1 ); Assert.IsTrue( channel.DequeueNoWait() == dispatch1 ); Assert.IsTrue( channel.Peek() == dispatch2 ); Assert.IsTrue( channel.DequeueNoWait() == dispatch2 ); }
public override Response processMessage(Message send) { if(send != null) { if(TrackTransactions && send.TransactionId != null) { ConnectionId connectionId = send.ProducerId.ParentId.ParentId; if(connectionId != null) { ConnectionState cs = connectionStates[connectionId]; if(cs != null) { TransactionState transactionState = cs[send.TransactionId]; if(transactionState != null) { transactionState.addCommand(send); } } } return TRACKED_RESPONSE_MARKER; } else if(TrackMessages) { messageCache.Add(send.MessageId, (Message) send.Clone()); RemoveEldestInCache(); } } return null; }
public virtual Response processMessage(Message send) { return null; }