Example #1
0
 internal PathfindingContext(IGraphData <T> graphData, Algorithms algorithm)
 {
     this.graphData   = graphData;
     this.algorithm   = algorithm;
     this.openList    = new UniquePriorityQueue <NodeWrapper <T> >(Comparer <NodeWrapper <T> > .Create((o1, o2) => o2.CompareTo(o1)));
     this.nodeMapping = new Dictionary <T, NodeWrapper <T> >();
 }
Example #2
0
        public static T TryDequeue <T>(this UniquePriorityQueue <T> upq)
        {
            if (upq.Count > 0)
            {
                return(upq.Dequeue());
            }

            return(default);
Example #3
0
        public static bool Update <T>(this UniquePriorityQueue <T> upq, T item)
        {
            if (upq.Remove(item))
            {
                upq.Enqueue(item);
                return(true);
            }

            return(false);
        }
Example #4
0
        public static void Test()
        {
            UniquePriorityQueue <int> queue = new UniquePriorityQueue <int>();

            Assert.IsTrue(queue.Enqueue(2));
            Assert.IsTrue(queue.Enqueue(3));
            Assert.IsTrue(queue.Enqueue(0));
            Assert.IsTrue(queue.Enqueue(1));

            Assert.AreEqual(queue.Count, 4);
            Assert.AreEqual(queue.Dequeue(), 3);
            Assert.AreEqual(queue.Dequeue(), 2);
            Assert.AreEqual(queue.Dequeue(), 1);
            Assert.AreEqual(queue.Dequeue(), 0);
            Assert.AreEqual(queue.Count, 0);
        }
 /// <summary>
 /// Resets the manager with a new precision time to discard messages
 /// </summary>
 /// <remarks>
 /// This method erases all messages on the manager! Should be called carefully
 /// </remarks>
 /// <param name="precision">The precision time to decide if two messages are equal or not</param>
 public void ResetManager(double precision)
 {
     messageQueue = new UniquePriorityQueue <Message>(new MessageComparer(precision));
 }
 /// <summary>
 /// Default constructor
 /// </summary>
 private MessageManagerRouter()
 {
     messageQueue = new UniquePriorityQueue <Message>(new MessageComparer(1000));
 }
Example #7
0
 /// <summary>
 /// Resets the manager with a new precision time to discard messages
 /// </summary>
 /// <remarks>
 /// This method erases all info on the manager! Should be called carefully
 /// </remarks>
 /// <param name="precision">The precision time to decide if two messages are equal or not</param>
 public void ResetManager(double precision)
 {
     messageQueue       = new UniquePriorityQueue <Message>(new MessageComparer(precision));
     registeredEntities = new Dictionary <MessageType, Dictionary <int, MessageHandlerDelegate> >();
 }
Example #8
0
 /// <summary>
 /// Default constructor
 /// </summary>
 private MessageManagerHandler()
 {
     messageQueue       = new UniquePriorityQueue <Message>(new MessageComparer(1000));
     registeredEntities = new Dictionary <MessageType, Dictionary <int, MessageHandlerDelegate> >();
 }
		/// <summary>
		/// Resets the manager with a new precision time to discard messages
		/// </summary>
		/// <remarks>
		/// This method erases all messages on the manager! Should be called carefully
		/// </remarks>
		/// <param name="precision">The precision time to decide if two messages are equal or not</param>
		public void ResetManager(double precision)
		{
			messageQueue = new UniquePriorityQueue<Message>(new MessageComparer(precision));
		}
		/// <summary>
		/// Default constructor
		/// </summary>
		private MessageManagerRouter()
		{
			messageQueue = new UniquePriorityQueue<Message>(new MessageComparer(1000));
		}
		/// <summary>
		/// Resets the manager with a new precision time to discard messages
		/// </summary>
		/// <remarks>
		/// This method erases all info on the manager! Should be called carefully
		/// </remarks>
		/// <param name="precision">The precision time to decide if two messages are equal or not</param>
		public void ResetManager(double precision)
		{
			messageQueue = new UniquePriorityQueue<Message>(new MessageComparer(precision));
			registeredEntities = new Dictionary<MessageType, Dictionary<int, MessageHandlerDelegate>>();
		}
		/// <summary>
		/// Default constructor
		/// </summary>
		private MessageManagerHandler()
		{
			messageQueue = new UniquePriorityQueue<Message>(new MessageComparer(1000));
			registeredEntities = new Dictionary<MessageType, Dictionary<int, MessageHandlerDelegate>>();
		}