27 #include <boost/thread.hpp>
52 for(
unsigned int i = 0; i < 64; i++)
parms[i] = NULL;
57 fd[0] = 0;
fd[1] = 0;
fd[2] = 0;
116 int submitCmd(std::vector<std::string> &args);
168 int popen3(
int fd[3], pid_t *pid,
const char ** argv );
std::map< int, dmTask * > tasks
This map works like a sparse array :-)
Definition: TaskExec.h:173
void splitCmd()
Split che command string into the single parms.
int key
Definition: TaskExec.h:63
Definition: TaskExec.h:39
dmTaskExec * loggerinst
Definition: TaskExec.h:87
Definition: TaskExec.h:96
virtual void onLoggingRequest(Logger::Level lvl, std::string const &msg)=0
Event invoked internally to log stuff.
int popen3(int fd[3], pid_t *pid, const char **argv)
int waitResult(int taskID, int tmout=5)
const char * parms[64]
Definition: TaskExec.h:66
bool finished
Definition: TaskExec.h:71
dmTask(dmTaskExec *wheretolog)
int waitFinished(int tmout=5)
Wait until the task has finished or the timeout is expired.
void assignCmd(dmTask *task, std::vector< std::string > &args)
Split che command string into the single parms.
int submitCmd(std::string cmd)
time_t starttime
Definition: TaskExec.h:70
int fd[3]
Definition: TaskExec.h:73
int taskcnt
Used to create keys to be inserted into the map. This has to be treated modulo MAXINT or similar big ...
Definition: TaskExec.h:171
void notifyAll()
Definition: TaskExec.h:83
friend void taskfunc(dmTaskExec *, int)
boost::condition_variable condvar
Definition: TaskExec.h:46
std::string stdout
Definition: TaskExec.h:75
std::string instance
Definition: TaskExec.h:101
std::string cmd
Definition: TaskExec.h:65
int getTaskStdout(int taskID, std::string &stdout)
time_t endtime
Definition: TaskExec.h:70
pid_t pid
Definition: TaskExec.h:74
virtual void onTaskCompleted(dmTask &task)
int resultcode
Definition: TaskExec.h:68
virtual void onTaskRunning(dmTask &task)
NOTE the signature. This passes copies of Task objects, not the originals.
dmTask(const dmTask &o)
Definition: TaskExec.h:49
Level
Definition: logger.h:50
virtual void run(dmTask &task)
virtual void onErrLoggingRequest(std::string const &msg)=0
Event invoked internally to log stuff.
dmTask * getTask(int taskID)