11 cout <<
"Listening\n";
14 while (!flag && m_listening) {
15 MPI_Iprobe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &flag, &status);
17 cout <<
"Tag: " << status.MPI_TAG << endl;
19 if (status.MPI_TAG == 1 or status.MPI_TAG == 7) {
20 cout <<
"Received travellers " << status.MPI_TAG << endl;
23 MPI_Recv(&data, m_count, MPI_INT, MPI_ANY_SOURCE, status.MPI_TAG, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
27 if (status.MPI_TAG == 2 or status.MPI_TAG == 5) {
30 MPI_Recv(&data, m_count, MPI_INT, MPI_ANY_SOURCE, status.MPI_TAG, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
33 if (status.MPI_TAG == 3) {
36 MPI_Recv(&data, m_count, MPI_INT, MPI_ANY_SOURCE, status.MPI_TAG, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
40 if (status.MPI_TAG == 4) {
42 MPI_Recv(
nullptr, 0, MPI_INT, 0, status.MPI_TAG, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
43 std::cout <<
"Before timestep @ " << status.MPI_SOURCE << std::endl;
45 std::cout <<
"After timestep @ " << status.MPI_SOURCE << std::endl;
46 MPI_Send(
nullptr, 0, MPI_INT, 0, 4, MPI_COMM_WORLD);
48 if (status.MPI_TAG == 6) {
50 MPI_Recv(
nullptr, 0, MPI_INT, MPI_ANY_SOURCE, status.MPI_TAG, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
51 m_sim->returnForeignTravellers();
53 if (status.MPI_TAG == 10) {
54 MPI_Recv(
nullptr, 0, MPI_INT, MPI_ANY_SOURCE, status.MPI_TAG, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
55 std::cout <<
"No more messages\n";
string m_destination_facility
Time Dependent Person DataType.
string m_destination_simulator
vector< Simulator::TravellerType > m_travellers
string m_destination_district
pair< vector< uint >, vector< Health > > m_travellers