![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00008 00010 00011 #pragma once 00012 00013 #include "vrfobjcore/taskCtlrCmpnt.h" 00014 00019 class DT_DLL_vrfobjcore DtSingleTaskControllerComponent : public DtTaskControllerComponent 00020 { 00021 00022 public: 00023 00029 DtSingleTaskControllerComponent(const DtString& name, DtVrfObject* owner, 00030 DtSimManager* simManager, 00031 DtComponentDescriptor* compDesc = 0, 00032 DtReaderWriterRegistry* parentRegistry = 0); 00033 00035 virtual ~DtSingleTaskControllerComponent(); 00036 00041 virtual void postTick(); 00042 00051 virtual bool beginProcessingTask(const DtTaskMessage& task, 00052 DtSimTaskStatePtr taskState); 00053 00056 virtual void taskNotify(const DtSimTask & task); 00057 00058 00063 virtual void taskComplete(bool success = true); 00064 00068 virtual void clearTask(); 00069 00073 virtual int sendSubtask(DtSimTask& task); 00074 00078 virtual void clearSubtask(int subtaskId); 00079 00083 virtual void addPendingSubtaskId(int subtaskId); 00084 00089 virtual bool findPendingSubtaskId(int subtaskId); 00090 00095 virtual void removePendingSubtaskId(int subtaskId); 00096 00099 virtual void removeAllPendingSubtaskIds(); 00100 00102 virtual std::vector<int> currentPendingSubstaskIds() const; 00103 00106 //virtual DtTaskMessage* pendingSubtask(int subtaskId, DtString& controller) const; 00107 00109 virtual void clearCurrentTaskMessage(); 00110 00112 virtual DtTaskMessage * currentTaskMessage() const; 00113 00119 virtual DtSimTaskStatePtr currentTaskState() const; 00120 00130 virtual bool decideToGiveUpTask() const; 00131 00135 virtual void giveUpTask(); 00136 00138 virtual bool taskActive(int taskId) const; 00139 00141 virtual bool clearTopLevelTasks(); 00142 00144 virtual void clearConflictingTopLevelTasks(int conflictId); 00145 00147 virtual void clearTasksByType(int taskType); 00148 00150 virtual void clearTaskById(int taskId); 00151 00153 virtual std::list<DtTaskMessage*> currentTaskMessages() const; 00154 00156 virtual DtTaskWithTaskStateListPtr topLevelTasks() const; 00157 00158 protected: 00161 virtual void clearPendingSubtasks(); 00162 00166 virtual void clearSubtasksByType(int taskType); 00167 };