Exemplo n.º 1
0
        internal IQueueItem ExecGet(IQueueMessage request)
        {
            if (request.Host == null)
            {
                throw new MessageException(MessageState.InvalidMessageHost, "Invalid message.Host ");
            }
            MQueue Q = Get(request.Host);

            if (Q == null)
            {
                throw new MessageException(MessageState.InvalidMessageHost, "message.HostName not found " + request.Host);
            }
            switch (request.QCommand)
            {
            case QueueCmd.Dequeue:
                return(Q.Dequeue());

            case QueueCmd.DequeuePriority:
                return(Q.Dequeue(request.Priority));

            case QueueCmd.Peek:
                return(Q.Peek());

            case QueueCmd.PeekPriority:
                return(Q.Peek(request.Priority));
            }

            return(null);
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            MQueue queue = new MQueue();

            for (int i = 0; i < 5; i++)
            {
                queue.Enqueue(i);
            }

            while (true)
            {
                Console.WriteLine("Нажмите любую клавишу...");

                queue.Dequeue();
                queue.Enqueue(new Random().Next(-10, 10));

                ConsoleKeyInfo c = Console.ReadKey();
                Console.Clear();

                Console.WriteLine("Состояние очереди:");
                foreach (var item in queue)
                {
                    Console.Write("{0}\t", item);
                }
                Console.WriteLine("\nМинимум:{0}\nМаксимум:{1}",
                                  queue.Min(), queue.Max());
            }
        }
Exemplo n.º 3
0
        public void TestMinMax2()
        {
            MQueue queue = new MQueue();

            queue.Enqueue(7, 0, 1);
            Assert.AreEqual(0, queue.Min());
            Assert.AreEqual(7, queue.Max());

            queue.Dequeue();
            Assert.AreEqual(0, queue.Min());
            Assert.AreEqual(1, queue.Max());

            queue.Dequeue();
            Assert.AreEqual(1, queue.Min());
            Assert.AreEqual(1, queue.Max());
        }
Exemplo n.º 4
0
        public void TestMinMax1()
        {
            MQueue queue = new MQueue();

            queue.Enqueue(1, 2, 3);
            Assert.AreEqual(1, queue.Min());
            Assert.AreEqual(3, queue.Max());

            queue.Dequeue();
            Assert.AreEqual(2, queue.Min());
            Assert.AreEqual(3, queue.Max());

            queue.Dequeue();
            Assert.AreEqual(3, queue.Min());
            Assert.AreEqual(3, queue.Max());
        }
Exemplo n.º 5
0
        public void TestEnqueueDequeue2(int[] items)
        {
            MQueue queue = new MQueue();

            queue.Enqueue(items);
            for (int i = 0; i < items.Length; i++)
            {
                Assert.AreEqual(items[i], queue.Dequeue());
            }
        }
Exemplo n.º 6
0
        internal IQueueItem ExecGet(QueueMessage request)
        {
            try
            {
                MQueue Q = Get(request.Host);
                if (Q == null)
                {
                    throw new MessageException(MessageState.InvalidMessageHost, "message.Host is invalid " + request.Host);
                }
                switch (request.Command)
                {
                case QueueCmd.Dequeue:
                    return(Q.Dequeue());

                case QueueCmd.DequeuePriority:
                    return(Q.Dequeue(request.Priority));

                case QueueCmd.Peek:
                    return(Q.Peek());

                case QueueCmd.PeekPriority:
                    return(Q.Peek(request.Priority));
                }
            }
            catch (MessageException mex)
            {
                QLogger.ErrorFormat("ExecGet MessageException: " + mex.Message);
            }
            catch (ArgumentException ase)
            {
                QLogger.ErrorFormat("ExecGet ArgumentException: " + ase.Message);
            }
            catch (SerializationException se)
            {
                QLogger.ErrorFormat("ExecGet SerializationException: " + se.Message);
            }
            catch (Exception ex)
            {
                QLogger.ErrorFormat("ExecGet Exception: " + ex.Message);
            }
            return(null);
        }
Exemplo n.º 7
0
        private void NewValue()
        {
            mutex.WaitOne();
            int item = random.Next(-10, 10);

            queue.Dequeue();
            queue.Enqueue(item);

            tbLastTen.Text = "";
            foreach (var i in queue)
            {
                tbLastTen.Text += i.ToString() + "   ";
            }

            mutex.ReleaseMutex();
        }