VR-Forces 4.1.1 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"
18 
19 
21 {
22 public:
24  DtVrfObject* owner, DtSimManager* simManager, DtComponentDescriptor* desc,
25  DtReaderWriterRegistry* parentRegistry);
26 
27  virtual ~DtScriptMultiTaskController();
28 
29  virtual DtString type() const;
30 
31  virtual bool init();
32 
33  virtual void preFirstTickInit();
34 
35  virtual void tick();
36 
37  virtual bool beginProcessingTask(const DtTaskMessage& task, DtSimTaskStatePtr taskState);
38 
39  virtual void clearTask(int taskId);
40 
41  virtual void taskComplete(int taskId, bool success);
42 
43  virtual bool createPSR();
44 
45  virtual void registerScriptTaskCallbacks();
46  virtual void unregisterScriptTaskCallbacks();
47 
48  virtual void registerTaskMsgCallbacks();
49  virtual void unregisterTaskMsgCallbacks();
50 
53  virtual bool isTypeTaskable(const DtSimTaskMessageType& taskType) const;
54  virtual void addTypeTaskable(const DtSimTaskMessageType& taskType);
55  virtual void removeTypeTaskable(const DtSimTaskMessageType& taskType);
56 
61  virtual void sweepMarkedForDeletion(bool clearFromPsr = true);
62 
63  virtual DtScriptedTaskManager* scriptManager() const { return myScriptManager; }
64 
68  virtual void setScriptTickPeriod(const DtString& scriptId, double period);
69 
70  static void scriptUpdatedCallback(const DtScriptedTaskManagerCallbackInfo& info, void* usr);
71  static void scenarioSaveCallback(void* usr);
72 
73  static DtSimComponent* creator(const DtString& name,
74  DtVrfObject* owner, DtSimManager* simManager, DtComponentDescriptor* desc,
75  DtReaderWriterRegistry* parentRegistry);
76 
77 protected:
80 
81  virtual void processScriptUpdatedCallback(const DtScriptedTaskManagerCallbackInfo& info);
82  virtual void processScenarioSaveCallback();
83 
84  virtual DtScriptInterface* createScriptInterface(const DtSimTaskMessageType& taskType);
85  virtual void destroyScriptInterface(DtScriptInterface* iFace);
86  virtual void propagateScriptIdChange(const DtString& oldId, const DtString& newId);
87  virtual bool isForMyEntityType(const DtScriptedTaskMetaData& metaData);
88  virtual void processMetaDataChange(const DtScriptedTaskManagerCallbackInfo& info);
89  virtual void restartScriptInterfaceByType(const DtSimTaskMessageType& taskType);
90 
92  std::map<DtSimTaskMessageType, int> myAvailableScripts;
94  std::map<int, DtScriptInterface*> myCurrentTaskMap;
95  std::list<int> myMarkedForDeletionList;
98 };

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)