source: nrEngine/src/ITask.cpp @ 1

Revision 1, 4.6 KB checked in by art, 13 years ago (diff)
Line 
1/***************************************************************************
2 *                                                                         *
3 *   (c) Art Tevs, MPI Informatik Saarbruecken                             *
4 *       mailto: <tevs@mpi-sb.mpg.de>                                      *
5 *                                                                         *
6 *   This program is free software; you can redistribute it and/or modify  *
7 *   it under the terms of the GNU General Public License as published by  *
8 *   the Free Software Foundation; either version 2 of the License, or     *
9 *   (at your option) any later version.                                   *
10 *                                                                         *
11 ***************************************************************************/
12
13
14//----------------------------------------------------------------------------------
15// Includes
16//----------------------------------------------------------------------------------
17#include "ITask.h"
18#include "Log.h"
19
20namespace nrEngine{
21
22        //--------------------------------------------------------------------
23        ITask::ITask() : IThread(){
24                init();
25        }
26
27        //--------------------------------------------------------------------
28        ITask::ITask(const ::std::string& name){
29                init();
30                setTaskName(_taskName);
31        }
32
33        //--------------------------------------------------------------------
34        void ITask::init(){
35                _taskCanKill = false;
36                _taskOrder = ORDER_NORMAL;
37                _taskID = 0;
38                _taskState = TASK_STOPPED;
39                _orderChanged = false;
40                _taskType = TASK_USER;
41                _taskGraphColor = 0;
42                _taskProperty = TASK_NONE;
43                setTaskName("");
44        }
45       
46        //--------------------------------------------------------------------
47        ITask::~ITask(){
48
49        }
50
51        //--------------------------------------------------------------------
52        bool ITask::operator <  (const ITask &t){
53                return this->_taskOrder < t._taskOrder;
54        }
55
56        //--------------------------------------------------------------------
57        bool ITask::operator == (const ITask &t){
58                return this->_taskOrder == t._taskOrder;
59        }
60
61        //--------------------------------------------------------------------
62        bool ITask::operator <= (const ITask &t){
63                return (*this < t) || (*this == t);
64        }
65
66        //--------------------------------------------------------------------
67        bool ITask::operator >  (const ITask &t){
68                return !(*this <= t) ;
69        }
70
71        //--------------------------------------------------------------------
72        bool ITask::operator >= (const ITask &t){
73                return !(*this < t) || (*this == t);
74        }
75
76        //--------------------------------------------------------------------
77        bool ITask::operator != (const ITask &t){
78                return !(*this == t);
79        }
80
81        //--------------------------------------------------------------------
82        void ITask::setTaskOrder(TaskOrder order){
83                _taskOrder = order;
84                _orderChanged = true;
85        }
86        //--------------------------------------------------------------------
87        void ITask::setTaskType(TaskType type){
88                this->_taskType = type;
89        }
90
91        //--------------------------------------------------------------------
92        void ITask::setTaskID(TaskId id){
93                this->_taskID = id;
94        }
95
96        //--------------------------------------------------------------------
97        void ITask::setTaskState(TaskState state){
98                this->_taskState = state;
99        }
100       
101        //--------------------------------------------------------------------
102        void ITask::setTaskProperty(TaskProperty proper){
103                this->_taskProperty = proper;
104        }
105
106        //--------------------------------------------------------------------
107        void ITask::setTaskName(const ::std::string& name){
108                strncpy(_taskName, name.c_str(), 63);
109        }
110
111        //--------------------------------------------------------------------
112        Result ITask::addTaskDependency(TaskId id)
113        {
114                _taskDependencies.push_back(id);
115
116                NR_Log(Log::LOG_KERNEL, Log::LL_DEBUG, "Task %s depends now on task id=%i", getTaskName(), id);
117
118                return OK;
119        }
120
121        //--------------------------------------------------------------------
122        Result ITask::addTaskDependency(const ITask& task)
123        {
124                return addTaskDependency(task.getTaskID());
125        }
126
127        //--------------------------------------------------------------------
128        Result ITask::addTaskDependency(const ITask* pTask)
129        {
130                return addTaskDependency(pTask->getTaskID());
131        }
132
133        //--------------------------------------------------------------------
134        void ITask::_noticeSuspend(){
135                onSuspendTask();
136        }
137
138        //--------------------------------------------------------------------
139        void ITask::_noticeResume(){
140                onResumeTask();
141        }
142
143        //--------------------------------------------------------------------
144        void ITask::_noticeUpdate(){
145                updateTask();
146        }
147
148        //--------------------------------------------------------------------
149        void ITask::_noticeStop(){
150                stopTask();
151        }
152
153}; // end namespace
154
Note: See TracBrowser for help on using the repository browser.