11#ifndef __BE_PROCESS_MANAGER_H__
12#define __BE_PROCESS_MANAGER_H__
48 virtual std::shared_ptr<WorkerController>
50 std::shared_ptr<Worker> worker) = 0;
110 bool communicate =
false) = 0;
139 std::shared_ptr<WorkerController> worker,
141 bool communicate =
false) = 0;
178 std::shared_ptr<WorkerController> worker) = 0;
199 std::shared_ptr<WorkerController> &sender,
200 int *nextFD =
nullptr,
227 std::shared_ptr<WorkerController> &sender,
229 int numSeconds = -1)
const;
260 std::vector<std::shared_ptr<WorkerController>>
264 std::vector<std::shared_ptr<WorkerController>>
An interface for intranode process management classes.
std::vector< std::shared_ptr< WorkerController > > _workers
Workers that have been added.
virtual void stopWorker(std::shared_ptr< WorkerController > worker)=0
Ask Worker to return as soon as possible.
virtual std::shared_ptr< WorkerController > addWorker(std::shared_ptr< Worker > worker)=0
Adds a Worker to be managed by this Manager.
virtual void reset()
Reuse all Workers.
virtual bool waitForMessage(std::shared_ptr< WorkerController > &sender, int *nextFD=nullptr, int numSeconds=-1) const
Wait for a message from a Worker.
virtual void broadcastMessage(Memory::uint8Array &message) const
Send one message to all Workers.
virtual uint32_t getNumActiveWorkers() const
Obtain the number of Workers that are still working.
Manager()
Manager constructor.
virtual void startWorker(std::shared_ptr< WorkerController > worker, bool wait=true, bool communicate=false)=0
Start a Worker.
virtual uint32_t getTotalWorkers() const
Obtain the number of Workers this class is handling.
virtual void waitForWorkerExit()=0
Block until all Workers have exited.
std::vector< std::shared_ptr< WorkerController > > _pendingExit
Workers that are about to exit (stop requested).
virtual void _wait()=0
Do not return until all spawned processes exited.
virtual void startWorkers(bool wait=true, bool communicate=false)=0
Begin Worker's work.
virtual bool getNextMessage(std::shared_ptr< WorkerController > &sender, Memory::uint8Array &message, int numSeconds=-1) const
Obtain a message from a Worker.
virtual uint32_t getNumCompletedWorkers() const
Obtain the number of Workers that have exited.
virtual ~Manager()
Manager destructor.
This software was developed at the National Institute of Standards and Technology (NIST) by employees...