VR-Forces 4.2 Class Documentation
scriptMultiTaskController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 #pragma once
6 
8 
9 #include <map>
12 #include "vrftasks/radioMsgTypes.h"
16 #include "vrfmsgs/simMsg.h"
19 
20 
22 {
23 public:
25  DtVrfObject* owner, DtSimManager* simManager, DtComponentDescriptor* desc,
26  DtReaderWriterRegistry* parentRegistry);
27 
28  virtual ~DtScriptMultiTaskController();
29 
30  virtual DtString type() const;
31 
32  virtual bool init();
33 
34  virtual void preFirstTickInit();
35 
36  virtual void tick();
37 
38  virtual bool beginProcessingTask(const DtTaskMessage& task, DtSimTaskStatePtr taskState);
39 
40  virtual void clearTask(int taskId);
41 
42  virtual void taskComplete(int taskId, bool success);
43 
44  virtual void suspendTask(int taskId);
45 
47  virtual DtSimTaskStatePtr currentTaskState(int taskId) const;
48 
49  virtual bool createPSR();
50 
51  virtual void registerScriptTaskCallbacks();
52  virtual void unregisterScriptTaskCallbacks();
53 
54  virtual void registerTaskMsgCallbacks();
55  virtual void unregisterTaskMsgCallbacks();
56 
59  virtual bool isTypeTaskable(const DtSimTaskMessageType& taskType) const;
60  virtual void addTypeTaskable(const DtSimTaskMessageType& taskType);
61  virtual void removeTypeTaskable(const DtSimTaskMessageType& taskType);
62 
65  virtual void addRunnableTaskType(const DtSimTaskMessageType& taskType);
66 
71  virtual void sweepMarkedForDeletion(bool clearFromPsr = true);
72 
76  virtual void setScriptTickPeriod(const DtString& scriptId, double period);
77 
78  static void scriptUpdatedCallback(const DtScriptedTaskManagerCallbackInfo& info, void* usr);
79  static void scenarioSaveCallback(void* usr);
80 
82  virtual void scriptSetTickPeriod(const DtString& scriptId, double period);
83  virtual void scriptTaskComplete(int taskId, bool success);
84  virtual int scriptSendSubtask(DtSimTask& task, int parentTaskId);
85  virtual std::vector<int> scriptPendingSubstaskIds(int taskId);
86  virtual DtSubtaskStatusEntry* scriptSubtaskStatus(int subtaskId, int parentTaskId);
87  virtual void scriptClearSubtask(int subtaskId, int parentTaskId);
88 
91  virtual int scriptSendTask(DtSimTask& task, const DtString& entityName, int parentTaskId,
92  bool actAsSubtask = true);
93 
94  virtual void notifyScriptTaskError(const DtString& scriptId, int taskId);
96 
97  static DtSimComponent* creator(const DtString& name,
98  DtVrfObject* owner, DtSimManager* simManager, DtComponentDescriptor* desc,
99  DtReaderWriterRegistry* parentRegistry);
100 
101 protected:
104 
105  virtual void processScriptUpdatedCallback(const DtScriptedTaskManagerCallbackInfo& info);
106  virtual void processScenarioSaveCallback();
107 
108  virtual void propagateScriptIdChange(const DtString& oldId, const DtString& newId);
109  virtual bool isForMyEntityType(const DtScriptedTaskMetaData& metaData);
110  virtual void processMetaDataChange(const DtScriptedTaskManagerCallbackInfo& info);
111  virtual void restartScriptInterfaceByType(const DtSimTaskMessageType& taskType);
112 
114  virtual void clearAndRestoreTasks();
115 
116  std::map<DtSimTaskMessageType, int> myAvailableScripts;
117  std::map<int, boost::shared_ptr<DtScriptInterface> > myCurrentTaskMap;
118  std::list<int> myMarkedForDeletionList;
123  std::set<DtSimTaskMessageType> myAdditionalRunnableTaskTypes;
124 
125  DtForceType myCurrentForceType;
126 };

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)