wangzhengquan
2020-07-20 f85c9b875b060681b51f57b15074ba1c7c9f5636
test/test_queue.c
@@ -1,7 +1,8 @@
#include "test.h"
using namespace std;
int main () {
void testStruct() {
   unsigned int i = 0;
   
   int key = 2;
@@ -19,13 +20,13 @@
      }
   }
   for(i = 0; i < qsize; i++) {
   // for(i = 0; i < qsize; i++) {
      
      //queue.dequeue(item);
   //    //queue.dequeue(item);
      
      item = (*queue)[i];
      cout << "i=" << i << " item " << item.pic << "," << item.info << endl;
   }
   //    item = (*queue)[i];
   //    cout << "i=" << i << " item " << item.pic << "," << item.info << endl;
   // }
    
@@ -39,6 +40,89 @@
   }
   delete queue;
   mm_destroy();
}
void testString() {
   unsigned int i = 0;
   std::ostringstream outstr;
   int key = 2;
   shmstring item;
   size_t qsize = 16;
     //LockFreeQueue<struct Item> *queue = QueueFactory::createQueue<struct Item> (key, qsize);
   SHMQueue<shmstring> *queue = new SHMQueue<shmstring>(key, 16);
   // LockFreeQueue<struct Item> queue(16);
   for(i = 0; i < qsize; i++) {
      outstr.seekp(0);
      outstr << "hello " << i ;
      if(queue->push(outstr.str().c_str())) {
          cout << i << " push:" << outstr.str() << endl;
      }
   }
   // for(i = 0; i < qsize; i++) {
   //    //queue.dequeue(item);
   //    item = (*queue)[i];
   //    cout << "i=" << i << ":" << item << endl;
   // }
   struct timespec timeout = {1, 0};
   i = 0;
   while((queue->pop_timeout(item, &timeout)) ) {
       cout << i << " pop:" << item << endl;
      // cout <<  item.pic << endl;
       i++;
   }
   delete queue;
}
// void testArr(unsigned size) {
//    unsigned int i = 0;
//    int key = 2;
//    char item[size];
//    size_t qsize = 16;
//      //LockFreeQueue<struct Item> *queue = QueueFactory::createQueue<struct Item> (key, qsize);
//    SHMQueue<char[size]> *queue = new SHMQueue<char[size]>(key, 16);
//    // LockFreeQueue<struct Item> queue(16);
//    for(i = 0; i < qsize; i++) {
//       sprintf(item, "%d hello", i);
//       if(queue->push(item)) {
//           cout << i << " push:" << item << endl;
//       }
//    }
//    struct timespec timeout = {1, 0};
//    i = 0;
//    while((queue->pop_timeout(item, &timeout)) ) {
//        cout << i << " pop:" << item << endl;
//       // cout <<  item.pic << endl;
//        i++;
//    }
//    delete queue;
// }
int main () {
   mm_init(512);
   // testArr(12);
   testStruct();
   mm_destroy();
   return 0;
}