ROOT
6.07/01
Reference Guide
|
This class works together with TProcPool to allow the execution of functions in server processes.
Depending on the exact task that the worker is required to execute, a different version of the class can be called.
The most general case, used by TProcPool::MapReduce(F func, T& args, R redfunc). This worker is build with:
A few partial specializations are provided for less general cases:
Since all the important data are passed to TPoolWorker at construction time, the kind of messages that client and workers have to exchange are usually very simple.
Definition at line 40 of file TPoolWorker.h.
Public Member Functions | |
TPoolWorker (F func, const std::vector< T > &args, R redfunc) | |
~TPoolWorker () | |
void | HandleInput (MPCodeBufPair &msg) |
Handle a message with an EMPCode. More... | |
Public Member Functions inherited from TMPWorker | |
TMPWorker () | |
Class constructor. More... | |
virtual | ~TMPWorker () |
TMPWorker (const TMPWorker &)=delete | |
TMPWorker & | operator= (const TMPWorker &)=delete |
virtual void | Init (int fd, unsigned workerN) |
This method is called by children processes right after forking. More... | |
void | Run () |
TSocket * | GetSocket () |
pid_t | GetPid () |
unsigned | GetNWorker () const |
Private Attributes | |
F | fFunc |
the function to be executed More... | |
std::vector< T > | fArgs |
a vector containing the arguments that must be passed to fFunc More... | |
R | fRedFunc |
the reduce function More... | |
decltype(fFunc(fArgs.front())) | fReducedResult |
the result of the execution More... | |
bool | fCanReduce |
true if fReducedResult can be reduced with a new result, false until we have produced one result More... | |
#include <TPoolWorker.h>
|
inline |
Definition at line 45 of file TPoolWorker.h.
|
inline |
Definition at line 49 of file TPoolWorker.h.
|
inlinevirtual |
Handle a message with an EMPCode.
This method is called upon receiving a message with a code >= 1000 (i.e. EMPCode). It handles the most generic types of messages.
Classes inheriting from TMPWorker should implement their own HandleInput function, that should be able to handle codes specific to that application.
The appropriate version of the HandleInput method (TMPWorker's or the overriding version) is automatically called depending on the message code.
msg | Execute instructions received from a TProcPool client |
Reimplemented from TMPWorker.
Definition at line 51 of file TPoolWorker.h.
|
private |
a vector containing the arguments that must be passed to fFunc
Definition at line 80 of file TPoolWorker.h.
Referenced by TPoolWorker< F, T, R >::HandleInput(), and TPoolWorker< F, T, void >::HandleInput().
|
private |
true if fReducedResult can be reduced with a new result, false until we have produced one result
Definition at line 83 of file TPoolWorker.h.
Referenced by TPoolWorker< F, T, R >::HandleInput().
|
private |
the function to be executed
Definition at line 79 of file TPoolWorker.h.
Referenced by TPoolWorker< F, T, R >::HandleInput(), TPoolWorker< F, void, R >::HandleInput(), and TPoolWorker< F, T, void >::HandleInput().
|
private |
the reduce function
Definition at line 81 of file TPoolWorker.h.
Referenced by TPoolWorker< F, T, R >::HandleInput(), and TPoolWorker< F, void, R >::HandleInput().
|
private |
the result of the execution
Definition at line 82 of file TPoolWorker.h.
Referenced by TPoolWorker< F, T, R >::HandleInput(), and TPoolWorker< F, void, R >::HandleInput().