#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; shmstring 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; // } 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 () { testString(); mm_destroy(); return 0; }