/[projects]/smsdaemon/Task.h
ViewVC logotype

Annotation of /smsdaemon/Task.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 96 - (hide annotations) (download)
Mon Jun 16 14:04:19 2008 UTC (15 years, 11 months ago) by torben
File MIME type: text/plain
File size: 1476 byte(s)
Finish the task interface

1 torben 26 #ifndef __TASK_H__
2     #define __TASK_H__
3    
4 torben 96 #include <string>
5    
6 torben 92 class IGsmModem;
7 torben 26
8 torben 96 /* A Task is some piece of code that must be executed regularly, no matter whether
9     * the daemon has received any SMS.
10     *
11     * Tasks exist in two flavours: normal and temporary.
12     *
13     * A normal task is one which lives throughout the execution of the smsdaemon instance.
14     * A pointer to a normal tasks can be retrieved via TaskManager::GetTask(std::string name),
15     * and thus it must have a unique name.
16     *
17     * A temporary tasks is of a more short-lived nature. It behaves like a fire-and-forget piece of code.
18     * A temporary task can be created at any time by any piece of code. This creation must be dynamicaly
19     * through the new() operator. When created it registers itself with the task manager, and here after any
20     * references to the task must be nulled.
21     * When the temporary task has done its work it must set the protected variale to true, and the
22     * task instance will here after be deleted by the task-manager.
23     * Temporary tasks does not need a unique name, and once created you cannot get a pointer to it again.
24     */
25    
26 torben 26 class Task
27     {
28     public:
29 torben 96 Task(std::string name, bool isTemporary);
30    
31     std::string GetName() {return _name;}
32    
33 torben 92 virtual void ExecuteTask(IGsmModem& modem) = 0;
34 torben 96
35     bool IsTemporary() { return _isTemporary; }
36     bool IsFinished() { return _isFinished; }
37    
38 torben 26 virtual ~Task() {}
39 torben 96 protected:
40     bool _isFinished;
41    
42     private:
43     std::string _name;
44     bool _isTemporary;
45 torben 26 };
46    
47     #endif // __TASK_H__

  ViewVC Help
Powered by ViewVC 1.1.20