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()); } }
public MainForm() { InitializeComponent(); for (int i = 0; i < 10; i++) { int item = random.Next(-10, 10); queue.Enqueue(item); } tmrNewValue.Enabled = true; tmrUpdate.Enabled = true; }
IQueueAck ExecRout(QueueItem item, QueueHost qh) { if (qh == null) { throw new MessageException(MessageState.InvalidMessageHost, "Invalid QueueHost for Routing " + item.Host); } IQueueAck ack = null; if (qh.IsLocal) { item.Host = qh.HostName; MQueue Q = Get(item.Host); if (Q == null) { throw new MessageException(MessageState.InvalidMessageHost, "message.RoutHostName not found " + item.Host); } ack = Q.Enqueue(item); return(ack);// ptr.MessageState; } var api = new QueueApi(qh.NetProtocol); ack = api.SendAsync(item, 0); return(ack); }
public IQueueAck AddItem(QueueItem item) { if (SendDirect) { //ack = SendSubscriber(subscriber, copy); return(Controller.TopicDispatcher.AddItem(item, Publisher)); } else { List <IQueueAck> acks = new List <IQueueAck>(); IQueueAck ack; foreach (var subscriber in Publisher.Subscribers.Values) { var copy = item.Copy(); //if (SendDirect) //{ // //ack = SendSubscriber(subscriber, copy); // ack = Controller.TopicDispatcher.AddItem(item, subscriber); //} //else //{ copy.Host = subscriber.HostName; ack = Q.Enqueue(copy); //} acks.Add(ack); } return(new QueueAck(MessageState.Arrived, item)); } //return new QueueAck(acks.ToArray()); }
internal IQueueAck ExecSet(QueueItem item) { if (item == null) { throw new ArgumentNullException("QueueManager.ExecSet request"); } if (item.Host == null) { throw new ArgumentNullException("QueueManager.ExecSet request.Host is invalid"); } MQueue Q = Get(item.Host); if (Q == null) { throw new MessageException(MessageState.InvalidMessageHost, "message.HostName not found " + item.Host); } //var item = new QueueItem(request, QueueCmd.Enqueue); if (Q.Mode == CoverMode.Rout) { return(ExecRout(item, Q.RoutHost)); } var ack = Q.Enqueue(item); return(ack);// ptr.MessageState; //return QueueItem.Ack(item, ptr.MessageState, ptr.Retry, null, ptr.Identifier); }
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()); } }
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()); }
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()); }
internal MessageState ExecSet(QItemStream item) { if (item == null) { throw new ArgumentNullException("QueueManager.ExecSet request"); } if (item.Destination == null) { throw new ArgumentNullException("QueueManager.ExecSet request.Host is invalid"); } MQueue Q = Get(item.Destination); if (Q == null) { throw new MessageException(MessageState.InvalidMessageHost, "message.HostName not found " + item.Destination); } //var item = new QItemStream(request, QueueCmd.Enqueue); var ptr = Q.Enqueue(item); return(ptr.MessageState); }
internal MessageState ExecSet(QueueMessage request) { try { if (request == null) { throw new ArgumentNullException("QueueManager.ExecSet message"); } if (request.Host == null)// || message.Host.Count == 0) { throw new ArgumentNullException("QueueManager.ExecSet message.Host is invalid"); } MQueue Q = Get(request.Host); if (Q == null) { throw new MessageException(MessageState.InvalidMessageHost, "message.Host is invalid " + request.Host); } Q.Enqueue(request.GetQueueItem()); //TODO: DISTREBUTING TO HOSTS LIST //foreach (var host in request.Host) //{ // if (host.IsLocal) // { // MQueue Q = Get(host.HostName); // if (Q == null) // { // throw new MessageException(MessageState.InvalidMessageHost, "message.Host is invalid " + message.Host); // } // Q.Enqueue(item); // } // else // { // //TODO:not supported // throw new Exception("Host not IsLocal not supported!"); // } //} } catch (MessageException mex) { QLogger.ErrorFormat("ExecSet MessageException: " + mex.Message); return(MessageState.MessageError); } catch (ArgumentException ase) { QLogger.ErrorFormat("ExecSet ArgumentException: " + ase.Message); return(MessageState.ArgumentsError); } catch (SerializationException se) { QLogger.ErrorFormat("ExecSet SerializationException: " + se.Message); return(MessageState.SerializeError); } catch (Exception ex) { QLogger.ErrorFormat("ExecSet Exception: " + ex.Message); return(MessageState.UnExpectedError); } return(MessageState.Ok); }