std::pair test()

in fbpcf/mpc/EmpTestUtil.h [27:54]


std::pair<OutputDataType, OutputDataType> test(
    InputDataType aliceInput,
    InputDataType bobInput) {
  auto queueA = std::make_shared<folly::Synchronized<std::queue<char>>>();
  auto queueB = std::make_shared<folly::Synchronized<std::queue<char>>>();

  auto lambda = [&queueA, &queueB](Party party, InputDataType input) {
    auto io = std::make_unique<QueueIO>(
        party == Party::Alice ? QueueIO{queueA, queueB}
                              : QueueIO{queueB, queueA});
    EmpGameClass game{std::move(io), party};

    try {
      return game.perfPlay(input);
    } catch (const std::exception& e) {
      std::cout << "Exception occured. " << e.what() << endl;
      exit(EXIT_FAILURE);
    }
  };

  auto futureAlice = std::async(lambda, Party::Alice, std::move(aliceInput));
  auto futureBob = std::async(lambda, Party::Bob, std::move(bobInput));

  auto resAlice = futureAlice.get();
  auto resBob = futureBob.get();

  return std::make_pair(resAlice, resBob);
}