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

Diff of /smsdaemon/Task.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 26 by torben, Mon Jun 9 18:15:53 2008 UTC revision 196 by torben, Thu Dec 18 06:53:29 2008 UTC
# Line 1  Line 1 
1  #ifndef __TASK_H__  #ifndef __TASK_H__
2  #define __TASK_H__  #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  class Task
27  {  {
28  public:  public:
29          virtual void ExecuteTask() = 0;          Task(std::string name, bool isTemporary);
30    
31            std::string GetName()
32            {
33                    return _name;
34            }
35    
36            virtual void ExecuteTask(ISmsTransceiver& modem) = 0;
37    
38            bool IsTemporary()
39            {
40                    return _isTemporary;
41            }
42            bool IsFinished()
43            {
44                    return _isFinished;
45            }
46    
47          virtual ~Task() {}          virtual ~Task() {}
48    protected:
49            bool _isFinished;
50    
51    private:
52            std::string _name;
53            bool _isTemporary;
54  };  };
55    
56  #endif // __TASK_H__  #endif // __TASK_H__

Legend:
Removed from v.26  
changed lines
  Added in v.196

  ViewVC Help
Powered by ViewVC 1.1.20