11 #include "core/Command.h" 50 bool *p_program_terminated);
70 enum state_t { idle, busy, terminated };
80 void createWorker(
const std::string& input_string);
83 void terminateWorker();
89 bool probeMessage()
const;
92 bool probeSignal()
const;
95 std::string receiveMessage()
const;
98 int receiveSignal()
const;
101 void sendMessageToMaster(
const std::string& message_string);
104 void sendSignalToMaster(
int signal);
107 void sendErrorCodeToMaster(
int error_code);
111 state_t m_state = idle;
120 bool *m_p_program_terminated;
123 std::unique_ptr<AbstractWorkerHandler> m_p_worker_handler;
126 std::string m_message_buffer;
129 MPI_Request m_message_request = MPI_REQUEST_NULL;
135 MPI_Request m_signal_request = MPI_REQUEST_NULL;
138 int m_error_code_buffer;
141 MPI_Request m_error_code_request = MPI_REQUEST_NULL;
Manager(const Command &simulator, worker_t worker_type, bool *p_program_terminated)