#include "test.h" using namespace std; void testStruct() { unsigned int i = 0; int key = 2; struct Item item; size_t qsize = 16; //LockFreeQueue *queue = QueueFactory::createQueue (key, qsize); SHMQueue *queue = new SHMQueue(key, 16); // LockFreeQueue queue(16); for(i = 0; i < qsize; i++) { if(queue->push({i, i})) { cout << i << " push:" << i << endl; } } // for(i = 0; i < qsize; i++) { // //queue.dequeue(item); // item = (*queue)[i]; // cout << "i=" << i << " item " << item.pic << "," << item.info << endl; // } struct timespec timeout = {1, 0}; i = 0; while((queue->pop_timeout(item, &timeout)) ) { cout << i << " pop:" << item.pic << ", " << item.info << endl; // cout << item.pic << endl; i++; } delete queue; } void testString() { unsigned int i = 0; std::ostringstream outstr; int key = 2; std::string item; size_t qsize = 16; //LockFreeQueue *queue = QueueFactory::createQueue (key, qsize); SHMQueue *queue = new SHMQueue(key, 16); // LockFreeQueue 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; // } shm_remove_queue(key); 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 *queue = QueueFactory::createQueue (key, qsize); // SHMQueue *queue = new SHMQueue(key, 16); // // LockFreeQueue 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); testString(); mm_destroy(); return 0; }