TEST_F(ClientTxnTest, testTxnRollback) { util::CountDownLatch memberRemovedLatch(1); std::string queueName = "testTxnRollback"; MyLifecycleListener myLifecycleListener(memberRemovedLatch); client->getCluster().addMembershipListener(&myLifecycleListener); TransactionContext context = client->newTransactionContext(); context.beginTransaction(); TransactionalQueue<std::string> queue = context.getQueue<std::string>(queueName); queue.offer("item"); server->shutdown(); ASSERT_THROW(context.commitTransaction(), exception::IException); context.rollbackTransaction(); ASSERT_TRUE(memberRemovedLatch.await(10)); IQueue<std::string> q = client->getQueue<std::string>(queueName); try { ASSERT_EQ(0, q.size()); ASSERT_EQ(q.poll().get(), (std::string *)NULL); } catch (exception::IException& e) { std::cout << e.what() << std::endl; } }
int main () { typedef std::queue<int, std::list<int, std::allocator<int> > > IQueue; // Make a queue using a deque container. IQueue q; // Push a couple of values on and retrieve them. q.push (1); q.push (2); std::cout << q.front () << std::endl; std::cout << q.back () << std::endl; typedef std::queue<std::string, std::deque<std::string, std::allocator<std::string> > > SQueue; // Make a queue of strings using a deque container. SQueue qs; // Push on a few strings then pop them back off. for (std::string::size_type i = 0U; i != 10U; i++) { qs.push (std::string (i + 1, 'a')); std::cout << qs.front () << std::endl; } for (std::string::size_type j = 0U; j != 10U; j++) { std::cout << qs.front () << std::endl; qs.pop (); } // Return 0 if both containers are empty, a non-zero value otherwise. return !(2 == q.size () && qs.empty ()); }
int GraphTest::branchAndBoundWithExtendedList(int start, int stop) { //branch&branchAndBoundWithExtendedList int best = INT_MAX; int rozwiniecia=0; int syn=0, ojciec=0, wartosc=0; IQueue<int>* ojcowie = new Queue<int>(); IQueue<int>* synowie = new Queue<int>(); IQueue<int>* wartosci = new Queue<int>(); synowie -> enqueue (start); ojcowie -> enqueue(start); wartosci -> enqueue(0); while(!ojcowie->isEmpty()) { syn = synowie -> dequeue(); wartosc = wartosci -> dequeue(); ojciec = ojcowie ->dequeue(); for (int i = 0; i< rozmiarMacierzy; ++i) { if((kopiaMacierzy[syn][i] > 0)&&(i!=ojciec)) { if(wartosc < best) { rozwiniecia++; synowie -> enqueue(i); wartosci-> enqueue(Macierz[i][syn]+wartosc); ojcowie -> enqueue(syn); if ((i == stop) && (Macierz[i][syn]+wartosc < best )) { best = wartosc + Macierz[i][syn]; } if (i!=stop) { kopiaMacierzy[syn][i]=0; kopiaMacierzy[i][syn]=0; } } } } } cout << "Liczba rozwinięć: "<< rozwiniecia << endl; for(int i=0; i< rozmiarMacierzy;++i) delete[] kopiaMacierzy[i]; delete[] kopiaMacierzy; delete synowie; delete ojcowie; delete wartosci; return best; }
int GraphTest::BB(int start, int stop) { int best = INT_MAX; int rozwiniecia=0; int syn=0, ojciec=0, wartosc=0; IQueue<int>* ojcowie = new Queue<int>(); IQueue<int>* synowie = new Queue<int>(); IQueue<int>* wartosci = new Queue<int>(); synowie -> enqueue (start); ojcowie -> enqueue(start); wartosci -> enqueue(0); while(!ojcowie->isEmpty()) { syn = synowie -> dequeue(); wartosc = wartosci -> dequeue(); ojciec = ojcowie ->dequeue(); for (int i = 0; i< rozmiarMacierzy; ++i) { if((Macierz[syn][i] > 0)&&(i!=ojciec)) { if(wartosc < best) { rozwiniecia++; synowie -> enqueue(i); wartosci-> enqueue(Macierz[i][syn]+wartosc); ojcowie -> enqueue(syn); if ((i == stop) && (Macierz[i][syn]+wartosc < best )) { best = wartosc + Macierz[i][syn]; } //wartosc = Macierz[ojciec][i]; } } } } cout << "Liczba rozwinięć: "<< rozwiniecia << endl; delete synowie; delete ojcowie; delete wartosci; return best; }
void testOfferPollThread2(util::ThreadArgs &args) { IQueue<std::string> *q = (IQueue<std::string> *) args.arg0; util::sleep(2); q->offer("item1"); std::cout << "item1 is offered" << std::endl; }