Apache.NMS.ActiveMQ.Util.FifoMessageDispatchChannel.Peek C# (CSharp) Method

Peek() public method

public Peek ( ) : MessageDispatch
return Apache.NMS.ActiveMQ.Commands.MessageDispatch
        public MessageDispatch Peek()
        {
            lock(this.mutex)
            {
                if( Closed || !Running || Empty )
                {
                    return null;
                }

                return channel.First.Value;
            }
        }

Usage Example

 public void TestPeek() 
 {
     FifoMessageDispatchChannel channel = new FifoMessageDispatchChannel();
     MessageDispatch dispatch1 = new MessageDispatch();
     MessageDispatch dispatch2 = new MessageDispatch();
 
     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() == dispatch2 );
     Assert.IsTrue( channel.DequeueNoWait() == dispatch2 );
     Assert.IsTrue( channel.Peek() == dispatch1 );
     Assert.IsTrue( channel.DequeueNoWait() == dispatch1 );
 }