Ejemplo n.º 1
0
static void
doB()
{
  cout << "[B] Initialized." << endl;

  NetClient* net = new MPIClient(1);
  mpz_t a;
  mpz_init_set_ui(a, 0);

  string header;
  header = net->waitForMessage();
  int valid = net->getDataAsZVector(&a, 1);
  cout << "[B] Recv " << valid << " mpz_t from A with the header: '" << header << "'" << endl;
  gmp_printf("[B] We got: %Zd\n", a);

  mpz_set_si(a, rand() + 2342);
  cout << "[B] Send " << 1 << " mpz_t to A." << endl;
  gmp_printf("[B] Should expect: %Zd\n", a);
  net->sendZVector("Vec from B.", &a, 1);

  header = net->waitForMessage();
  cout << "[B] Recv Empty from A." << endl;
  cout << "[B] H: " << header << endl;

  header = net->waitForMessage();
  cout << "[B] Recv MSG treated as empty from A." << endl;
  cout << "[B] H: " << header << endl;

  char* buf;
  header = net->waitForMessage();
  size_t len = net->getData(&buf);
  cout << "[B] Recv MSG from A." << endl;
  cout << "[B] H: " << header << endl;
  header.assign(buf, len);
  cout << "[B] len: " << len << " D: " << header << endl;

  cout << net->getGlobalStat() << endl;

  delete net;
}