Exemplo n.º 1
0
            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;
                }
            }
Exemplo n.º 2
0
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 ());
}
Exemplo n.º 3
0
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;
}
Exemplo n.º 4
0
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;
            }