⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queues.cpp

📁 ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework)
💻 CPP
字号:
// Queues.cpp,v 1.4 2004/05/20 15:30:32 shuston Exp#include "ace/OS_Memory.h"#include "ace/Log_Msg.h"#include "ace/Containers.h"#include "DataElement.h"class QueueExample{public:  // Illustrate the various ACE Queues.  int run (void);private:  // Illustrate the ACE unbounded queue  // that has copies of the data elements.  int runStackUnboundedQueue (void);  // Illustrate the ACE unbounded queue  // with pointers to elements on the heap.  int runHeapUnboundedQueue (void);};int QueueExample::run (void){  ACE_TRACE (ACE_TEXT ("QueueExample::run"));  // Illustrate the queue with elements on the stack.  if (this->runStackUnboundedQueue () != 0)    {      return -1;    }  ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n# of live objects %d\n"),              DataElement::numOfActiveObjects ()));  // Illustrate the queue with elements on the heap.  if (this->runHeapUnboundedQueue () != 0)    {      return -1;    }  ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n# of live objects %d\n"),              DataElement::numOfActiveObjects ()));  return 0;}// Listing 1 code/ch05int QueueExample::runStackUnboundedQueue (void){  ACE_TRACE (ACE_TEXT ("QueueExample::runStackUnboundedQueue"));  ACE_Unbounded_Queue<DataElement> queue;  DataElement elem1[10];  int i;  for (i = 0; i < 10; i++)    {      elem1[i].setData (9-i);      queue.enqueue_head (elem1[i]);    }  DataElement elem2[10];  for (i = 0; i < 10; i++)    {      elem2[i].setData (i+10);      queue.enqueue_tail (elem2[i]);    }  for (ACE_Unbounded_Queue_Iterator<DataElement> iter (queue);       !iter.done ();       iter.advance ())    {      DataElement *elem;      iter.next (elem);      ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%d:"), elem->getData ()));    }  return 0;}// Listing 1// Listing 2 code/ch05int QueueExample::runHeapUnboundedQueue (void){  ACE_TRACE (ACE_TEXT ("QueueExample::runHeapUnboundedQueue"));  ACE_Unbounded_Queue<DataElement*> queue;  for (int i = 0; i < 20; i++)    {      DataElement *elem;      ACE_NEW_RETURN(elem, DataElement (i), -1);      queue.enqueue_head (elem);    }  for (ACE_Unbounded_Queue_Iterator<DataElement*> iter         = queue.begin ();       !iter.done ();       iter.advance ())    {      DataElement **elem;      iter.next(elem);      ACE_DEBUG        ((LM_DEBUG, ACE_TEXT ("%d:"), (*elem)->getData ()));      delete (*elem);    }  return 0;}// Listing 2int ACE_TMAIN (int, ACE_TCHAR *[]){  QueueExample que;  return que.run ();}#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)template class ACE_Node<DataElement>;template class ACE_Node<DataElement*>;template class ACE_Unbounded_Queue<DataElement*>;template class ACE_Unbounded_Queue_Iterator<DataElement*>;template class ACE_Unbounded_Queue<DataElement>;template class ACE_Unbounded_Queue_Iterator<DataElement>;#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)#pragma instantiate ACE_Node<DataElement>#pragma instantiate ACE_Node<DataElement*>#pragma instantiate ACE_Unbounded_Queue<DataElement*>#pragma instantiate ACE_Unbounded_Queue_Iterator<DataElement*>#pragma instantiate ACE_Unbounded_Queue<DataElement>#pragma instantiate ACE_Unbounded_Queue_Iterator<DataElement>#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -