Program Listing for File loadBalancerWorker.h

Return to documentation for file (include/parpeloadbalancer/loadBalancerWorker.h)

#ifndef LOADBALANCERWORKER_H
#define LOADBALANCERWORKER_H

#include <parpecommon/parpeConfig.h>

#include <vector>
#include <functional>

constexpr int MPI_TAG_EXIT_SIGNAL = 0;

namespace parpe {

class LoadBalancerWorker {
  public:
    LoadBalancerWorker() = default;

    using messageHandlerFunc = std::function<void (std::vector<char> &buffer, int jobId)>;

    void run(const messageHandlerFunc &messageHandler);

  private:
    bool waitForAndHandleJobs(const messageHandlerFunc& messageHandler);
};

} // namespace parpe

#endif // LOADBALANCERWORKER_H