82 unsigned long initSec,
83 unsigned long initNsec,
84 unsigned long intervalSec,
85 unsigned long intervaNsec,
86 SIGNALTASK_HANDLER_FN(*handler));
92 SIGNALTASK_HANDLER_FN(*handler),
105 SIGNALTASK_HANDLER_FN(*handler),
133 pthread_t getThreadId();
142 TimerInfo(std::string name,
144 unsigned long initSec,
145 unsigned long initNsec,
146 unsigned long intervalSec,
147 unsigned long intervalNsec);
164 unsigned long initSec_;
166 unsigned long initNsec_;
168 unsigned long intervalSec_;
170 unsigned long intervalNsec_;
186 SignalHandler(
int sigNo, SIGNALTASK_HANDLER_FN(*handler),
void* arg=NULL);
193 SIGNALTASK_HANDLER_FN(*handler),
210 void addHandler(SIGNALTASK_HANDLER_FN(*handler),
void* arg=NULL);
228 HandlerPair(SIGNALTASK_HANDLER_FN(*handler),
void* args) {
233 SIGNALTASK_HANDLER_FN(*handler_);
240 std::vector<HandlerPair> handlers_;
263 void privateConstructor();
289 std::vector<TimerInfo*> timers_;
307 static THREAD_START(startUp);
313 std::vector<SignalHandler*> signalHandlers_;
318 void installTimer(SignalTaskMsg* msg);
323 void installTimer(std::string name,
325 unsigned long initSec,
326 unsigned long initNsec,
327 unsigned long intervalSec,
328 unsigned long intervalNsec,
329 SIGNALTASK_HANDLER_FN(*handler));
334 void addHandler(std::string name, SIGNALTASK_HANDLER_FN(*handler),
void* args=NULL);
339 void removeHandler(std::string name, SIGNALTASK_HANDLER_FN(*handler));
351 TimerInfo* getTimer(
int sigNo);
357 TimerInfo* getTimer(std::string name);
362 void installSignal(SignalTaskMsg* msg);
367 void installSignal(
int sigNo, SIGNALTASK_HANDLER_FN(*handler),
void* arg=NULL);
372 void addHandler(
int sigNo, SIGNALTASK_HANDLER_FN(*handler),
void* args=NULL);
377 void removeHandler(
int sigNo, SIGNALTASK_HANDLER_FN(*handler));
382 void enableTimer(SignalTaskMsg* msg);
387 void startTimer(std::string name);
392 void stopTimer(std::string name);
402 void processTaskMsg(
bool* stop);
408 static SIGNALTASK_HANDLER_FN(checkMsgQ);
413 void fwdTaskMsg(SignalTaskMsg* msg);
419 #endif // End #ifndef
virtual void run()
Run, handling signals.
Tagged: Fri Nov 14 12:39:36 UTC 2003.
Tagged: Fri Nov 14 12:39:33 UTC 2003.
void sendEnableTimerMsg(std::string name, bool enable)
Send a message to enable/disable a timer.
~SignalHandler()
Destructor.
void addHandler(SIGNALTASK_HANDLER_FN(*handler), void *arg=NULL)
Add a handler to the set attached to this signal.
int getIoSig()
Query what signal this object uses for I/O events.
sigset_t handledSignals_
The set of signals handled by this task.
virtual ~SignalTask()
Making the destructor virtual ensures that the right destructor will be called for classes which inhe...
void sendAddHandlerMsg(std::string name, SIGNALTASK_HANDLER_FN(*handler), bool add)
Send a message to attach a handler to an existing timer.
All tasks will have the following functionality:
void serviceMsgQ()
Service our message queue.
void stopTimers()
Stop all timers.
Tagged: Fri Nov 14 12:39:30 UTC 2003.
SignalHandler(int sigNo, SIGNALTASK_HANDLER_FN(*handler), void *arg=NULL)
Constructors.
void removeHandler(SIGNALTASK_HANDLER_FN(*handler))
Remove a handler to the set attached to this signal.
A class to manage signal handlers for all handled signals.
Class used to set up repetitive or one-shot timers on integral boundries relative to the system clock...
void sendInstallTimerMsg(std::string name, int sigNo, unsigned long initSec, unsigned long initNsec, unsigned long intervalSec, unsigned long intervaNsec, SIGNALTASK_HANDLER_FN(*handler))
Send a message to install a timer.
A generic base-class task for handling timers & signals.
void reArm()
Re-arm any periodic timer associated with this handler.
SignalTask(bool spawnThread=false)
Constructor for SignalTask.
void sendInstallSignalMsg(int sigNo, SIGNALTASK_HANDLER_FN(*handler), void *arg=NULL)
Send a message to install a signal.
Define a class to encapsulate thread handling.