Changeset 36 for nrEngine


Ignore:
Timestamp:
04/16/2007 08:41:06 PM (12 years ago)
Author:
art
Message:
 
Location:
nrEngine
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • nrEngine/include/ITask.h

    r35 r36  
    308308                Result addTaskDependency(SharedPtr<ITask> task); 
    309309         
     310                /** 
     311                * Add a new task on which one this task depends. 
     312                * 
     313                * @param id Unique ID of a task on which one this depends 
     314                * @return either OK or: 
     315                *               - 
     316                **/ 
     317                Result addTaskDependency(TaskId id); 
     318                 
     319                /** 
     320                * Add a new task on which one this task depends. 
     321                * 
     322                * @param name Unique name of a task on which one this depends 
     323                * @return either OK or: 
     324                *               - 
     325                **/ 
     326                Result addTaskDependency(const std::string& name); 
     327                 
    310328        protected: 
    311329 
  • nrEngine/include/Script.h

    r28 r36  
    5555         * Scripts could include subscripts. Subscripts are defined between 
    5656         * {} - brackets. The string between this brackets is used as a scipts 
    57          * if it was used in an explicit file. So the string is parsed 
     57         * as if it was used in an explicit file. So the string is parsed 
    5858         * as a script and runs also parallel to the parent script. For timed 
    5959         * and non-timed commands the same restrictions are used as in non-subscripts. 
    60          * Subscripts could define new subscripts. 
     60         * Subscripts could define new subscripts. Because scripts are running as task,  
     61         * we add a task dependency between parent script and subscript. So parent script  
     62         * depends on subscript. This means parent script can only step forward after 
     63         * subscripts has done their steps. 
    6164         * 
    6265         * NOTE: 
  • nrEngine/src/Engine.cpp

    r31 r36  
    2929        // Here we store the instances of singletons 
    3030        SharedPtr<Engine>       Engine::sSingleton; 
    31         Log*                            Engine::_logger = NULL; 
    32         Kernel*                         Engine::_kernel = NULL; 
    33         Clock*                          Engine::_clock = NULL; 
    34         Profiler*                       Engine::_profiler = NULL; 
     31        Log*                    Engine::_logger = NULL; 
     32        Kernel*                 Engine::_kernel = NULL; 
     33        Clock*                  Engine::_clock = NULL; 
     34        Profiler*               Engine::_profiler = NULL; 
    3535        ResourceManager*        Engine::_resmgr = NULL; 
    3636        ScriptEngine*           Engine::_script = NULL; 
  • nrEngine/src/ITask.cpp

    r35 r36  
    1717#include "ITask.h" 
    1818#include "Log.h" 
     19#include "Kernel.h" 
    1920 
    2021namespace nrEngine{ 
     
    133134         
    134135        //-------------------------------------------------------------------- 
    135         /*Result ITask::addTaskDependency(TaskId id) 
     136        Result ITask::addTaskDependency(TaskId id) 
    136137        { 
    137                 _taskDependencies.push_back(id); 
     138                // get task from kernel based on id 
     139                SharedPtr<ITask> task = Engine::sKernel()->getTaskByID(id); 
     140                 
     141                if (task != NULL) 
     142                { 
     143                        return addTaskDependency(task); 
     144                } 
    138145 
    139                 NR_Log(Log::LOG_KERNEL, Log::LL_DEBUG, "Task %s depends now on task id=%i", getTaskName(), id); 
    140  
    141                 return OK; 
     146                return KERNEL_NO_TASK_FOUND; 
    142147        } 
    143148 
    144149        //-------------------------------------------------------------------- 
    145         Result ITask::addTaskDependency(const ITask& task) 
     150        Result ITask::addTaskDependency(const std::string& name) 
     151        { 
     152                // get task from kernel based on id 
     153                SharedPtr<ITask> task = Engine::sKernel()->getTaskByName(name); 
     154                 
     155                if (task != NULL) 
     156                { 
     157                        return addTaskDependency(task); 
     158                } 
     159 
     160                return KERNEL_NO_TASK_FOUND; 
     161        } 
     162        //-------------------------------------------------------------------- 
     163        /*Result ITask::addTaskDependency(const ITask& task) 
    146164        { 
    147165                return addTaskDependency(task.getTaskID()); 
  • nrEngine/src/Script.cpp

    r35 r36  
    568568                                // now execute the script  
    569569                                subscript->execute(); 
     570                                 
     571                                // setup dependencies 
     572                                addTaskDependency(subscript->getTaskID()); 
    570573                        } 
    571574                         
Note: See TracChangeset for help on using the changeset viewer.