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

Contents of /smsdaemon/Task.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 149 - (show annotations) (download)
Sun Dec 7 20:58:41 2008 UTC (15 years, 5 months ago) by torben
File MIME type: text/plain
File size: 1499 byte(s)
Refactoring / rename:
        IGsmModem -> ISmsTransceiver
        GsmModem -> ModemTransceiver
        DebugGsmModem -> DebugTransceiver

Move DebugTransceiver to its own files.


1 #ifndef __TASK_H__
2 #define __TASK_H__
3
4 #include <string>
5
6 class ISmsTransceiver;
7
8 /* 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: persistant and temporary.
12 *
13 * A persistant task is one which lives throughout the execution of the smsdaemon instance.
14 * A pointer to a persistant task 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 class Task
27 {
28 public:
29 Task(std::string name, bool isTemporary);
30
31 std::string GetName() {return _name;}
32
33 virtual void ExecuteTask(ISmsTransceiver& modem) = 0;
34
35 bool IsTemporary() { return _isTemporary; }
36 bool IsFinished() { return _isFinished; }
37
38 virtual ~Task() {}
39 protected:
40 bool _isFinished;
41
42 private:
43 std::string _name;
44 bool _isTemporary;
45 };
46
47 #endif // __TASK_H__

  ViewVC Help
Powered by ViewVC 1.1.20