VR-Forces 4.0.4 Class Documentation
include/vrfobjcore/multiTaskControllerComponent.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2010 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 
00008 
00010 
00011 #pragma once
00012 
00013 #include "vrfobjcore/vrfobjcoreDefines.h"
00014 #include "vrfobjcore/taskCtlrCmpnt.h"
00015 
00020 class DT_DLL_vrfobjcore DtMultiTaskControllerComponent : public DtTaskControllerComponent
00021 {
00022 
00023 public:
00024 
00030    DtMultiTaskControllerComponent(const DtString& name, DtVrfObject* owner, 
00031       DtSimManager* simManager, 
00032       DtComponentDescriptor* compDesc = 0,
00033       DtReaderWriterRegistry* parentRegistry = 0);
00034 
00036    virtual ~DtMultiTaskControllerComponent();
00037 
00042    virtual void postTick();
00043 
00052    virtual bool beginProcessingTask(const DtTaskMessage& task, 
00053       DtSimTaskStatePtr taskState);
00054 
00060    virtual void taskComplete(int taskId, bool success);
00061 
00063    virtual void clearTask(int taskId);
00064 
00066    virtual DtTaskMessage* currentTaskMessage(int taskId);
00067 
00073    virtual DtSimTaskStatePtr currentTaskState(int taskId) const;
00074 
00078    virtual int sendSubtask(DtSimTask& task, int taskId);
00079 
00084    virtual void clearSubtask(int subtaskId, int taskId);
00085 
00089    virtual void addPendingSubtaskId(int subtaskId, int taskId);
00090 
00095    virtual bool findPendingSubtaskId(int subtaskId, int taskId);
00096 
00101    virtual void removePendingSubtaskId(int subtaskId, int taskId);
00102 
00105    virtual void removeAllPendingSubtaskIds(int taskId);
00106 
00108    virtual std::vector<int> currentPendingSubstaskIds(int taskId) const;
00109 
00112    virtual bool decideToGiveUpTask() const;
00113 
00117    virtual void giveUpTask();
00118 
00120    virtual bool taskActive(int taskId) const;
00121 
00123    virtual bool clearTopLevelTasks();
00124 
00126    virtual void clearConflictingTopLevelTasks(int conflictId);
00127 
00129    virtual void clearTasksByType(int taskType);
00130 
00132    virtual void clearTaskById(int taskId);
00133 
00135    virtual std::list<DtTaskMessage*> currentTaskMessages() const;
00136 
00138    virtual DtTaskWithTaskStateListPtr topLevelTasks() const;
00139 
00140 protected:
00142    virtual void addCurrentTaskMessage(const DtTaskMessage* taskMessage);
00145    virtual void clearCurrentTaskMessage(int taskId);
00146 
00149    virtual void clearPendingSubtasks(int taskId);
00150 
00154    virtual void clearSubtasksByType(int taskType, int taskId);
00155 
00158    virtual int taskIdWhichStartedSubtask(int subtaskId);
00159 };

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)