1 #ifndef GCP_UTIL_GENERICMASTERTASK_H
2 #define GCP_UTIL_GENERICMASTERTASK_H
13 #include "gcp/util/common/GenericTask.h"
14 #include "gcp/util/common/GenericMasterTaskMsg.h"
15 #include "gcp/util/common/SignalTask.h"
16 #include "gcp/util/common/TimeVal.h"
54 unsigned long intervalSec,
55 unsigned long intervalNsec,
56 SIGNALTASK_HANDLER_FN(*handler));
62 unsigned long initSec,
63 unsigned long initNsec,
64 unsigned long intervalSec,
65 unsigned long intervalNsec,
66 SIGNALTASK_HANDLER_FN(*handler));
107 SIGNALTASK_HANDLER_FN(*handler),
126 DBPRINT(
true, Debug::DEBUG7,
"Inside MasterTask constructor");
146 switch (msg.genericMsgType_) {
162 case Msg::INSTALL_TIMER:
165 case Msg::INSTALL_SIGNAL:
166 DBPRINT(
true, Debug::DEBUG31,
"Got an install signal message");
169 case Msg::ADD_HANDLER:
172 case Msg::ENABLE_TIMER:
173 DBPRINT(
true, Debug::DEBUG10,
"Got an enable timer message");
190 unsigned long initSec,
191 unsigned long initNsec,
192 unsigned long intervalSec,
193 unsigned long intervalNsec,
194 SIGNALTASK_HANDLER_FN(*handler))
196 DBPRINT(
true, DEBUG_SIGNAL,
"Inside");
200 msg.packInstallTimerMsg(name, sigNo,
202 intervalSec, intervalNsec,
214 unsigned long intervalSec,
215 unsigned long intervalNsec,
216 SIGNALTASK_HANDLER_FN(*handler))
218 DBPRINT(
true, DEBUG_SIGNAL,
"Inside");
222 msg.packInstallTimerMsg(name, sigNo, intervalSec, intervalNsec, handler);
235 DBPRINT(
true, Debug::DEBUG2,
"Signal_ is: "
236 << (signal_ == 0 ?
"NULL" :
"not NULL"));
239 signal_->sendInstallTimerMsg(msg->genericMasterBody.installTimer.name,
240 msg->genericMasterBody.installTimer.sigNo,
241 msg->genericMasterBody.installTimer.initSec,
242 msg->genericMasterBody.installTimer.initNsec,
243 msg->genericMasterBody.installTimer.intervalSec,
244 msg->genericMasterBody.installTimer.intervalNsec,
245 msg->genericMasterBody.installTimer.handler);
259 SIGNALTASK_HANDLER_FN(*handler))
263 DBPRINT(
true, Debug::DEBUG2,
"Signal_ is: "
264 << (signal_ == 0 ?
"NULL" :
"not NULL"));
266 msg.packInstallSignalMsg(sigNo, handler);
279 DBPRINT(
true, Debug::DEBUG2,
"Signal_ is: "
280 << (signal_ == 0 ?
"NULL" :
"not NULL"));
284 signal_->sendInstallSignalMsg(msg->genericMasterBody.installSignal.sigNo,
285 msg->genericMasterBody.installSignal.handler);
300 DBPRINT(
true, Debug::DEBUG2,
"Inside");
304 msg.packEnableTimerMsg(name, enable);
314 SIGNALTASK_HANDLER_FN(*handler),
317 DBPRINT(
true, Debug::DEBUG2,
"Inside, name = " << name
318 <<
" add = " << add);
321 msg.packAddHandlerMsg(name, handler, add);
332 DBPRINT(
true, Debug::DEBUG2,
"Signal_ is: "
333 << (signal_ == 0 ?
"NULL" :
"not NULL"));
336 signal_->sendEnableTimerMsg(msg->genericMasterBody.enableTimer.name,
337 msg->genericMasterBody.enableTimer.enable);
349 DBPRINT(
true, DEBUG_DELAY,
350 "Adding a handler to: " << msg->genericMasterBody.addHandler.name <<
" "
354 DBPRINT(
true, Debug::DEBUG2,
"Signal_ is: "
355 << (signal_ == 0 ?
"NULL" :
"not NULL"));
358 signal_->sendAddHandlerMsg(msg->genericMasterBody.addHandler.name,
359 msg->genericMasterBody.addHandler.handler,
360 msg->genericMasterBody.addHandler.add);
369 #endif // End #ifndef GCP_UTIL_GENERICMASTERTASK_H
virtual void respondToHeartBeat()
Definition: GenericTask.h:442
void sendEnableTimerMsg(std::string name, bool enable)
Definition: GenericMasterTask.h:298
void addHandler(Msg *msg)
Definition: GenericMasterTask.h:344
Definition: SignalTask.h:53
void installTimer(Msg *msg)
Definition: GenericMasterTask.h:231
void sendInstallSignalMsg(int sigNo, SIGNALTASK_HANDLER_FN(*handler))
Definition: GenericMasterTask.h:258
virtual void installTimers()
Definition: GenericMasterTask.h:252
void sendInstallTimerMsg(std::string name, int sigNo, unsigned long intervalSec, unsigned long intervalNsec, SIGNALTASK_HANDLER_FN(*handler))
Definition: GenericMasterTask.h:213
void setToCurrentTime(clockid_t clock=CLOCK_REALTIME)
Definition: TimeVal.cc:710
Definition: GenericMasterTask.h:22
GenericMasterMsgType
Definition: GenericMasterTaskMsg.h:43
unsigned int getSeconds()
Definition: TimeVal.cc:636
void enableTimer(Msg *msg)
Definition: GenericMasterTask.h:330
void processTaskMsg(bool *stop)
Definition: GenericMasterTask.h:140
GenericMasterTask()
Definition: GenericMasterTask.h:123
void installSignal(Msg *msg)
Definition: GenericMasterTask.h:275
void sendAddHandlerMsg(std::string name, SIGNALTASK_HANDLER_FN(*handler), bool add)
Definition: GenericMasterTask.h:313
gcp::util::SignalTask * signal_
Definition: GenericMasterTask.h:42
virtual void restart(void)
Definition: GenericTask.h:351
virtual void installSignals()
Definition: GenericMasterTask.h:292
virtual ~GenericMasterTask()
Definition: GenericMasterTask.h:134
Definition: GenericTask.h:33
static bool debugging(Level level=Debug::DEBUGANY)
Definition: Debug.cc:62