VR-Forces 4.2 Class Documentation
scriptReactiveTaskController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 #pragma once
6 
8 
10 #include "vrfmsgs/simMsg.h"
11 #include "vrfmsgs/setDtaRqMsg.h"
15 #include <set>
21 #include <boost/shared_ptr.hpp>
24 #include "vrfobjcore/cntrlCmpnt.h"
25 
27 
29 //
35 //
41 //
46 //
50 
52 {
53 public:
55  DtVrfObject* owner, DtSimManager* simManager, DtComponentDescriptor* desc,
56  DtReaderWriterRegistry* parentRegistry);
57 
59 
60  virtual DtString type() const;
61 
62  virtual bool init();
63 
64  virtual void preFirstTickInit();
65 
66  virtual void tick();
67 
68  virtual std::list<DtScriptedTaskTask> reactiveTaskStatus() const;
69 
70  virtual bool isReactiveTaskEnabled(const DtString& scriptId) const;
71  virtual void notifySuspend(const DtString& scriptId, int taskId);
72  virtual void notifyResume(const DtString& scriptId, int taskId);
73  virtual void processReturnScriptInterface(const DtString& scriptId, int taskId, boost::shared_ptr<DtScriptInterface> iFace);
74 
75  static void setReactiveTaskCallback(DtSimMessage* msg, void* usr);
76  static void scriptUpdatedCallback(const DtScriptedTaskManagerCallbackInfo& info, void* usr);
77 
79  virtual void scriptSetTickPeriod(const DtString& scriptId, double period);
80  virtual void scriptTaskComplete(int taskId, bool success);
81  virtual int scriptSendSubtask(DtSimTask& task, int parentTaskId);
82  virtual std::vector<int> scriptPendingSubstaskIds(int taskId);
83  virtual DtSubtaskStatusEntry* scriptSubtaskStatus(int subtaskId, int parentTaskId);
84  virtual void scriptClearSubtask(int subtaskId, int parentTaskId);
85  virtual int scriptSendTask(DtSimTask& task, const DtString& entityName, int parentTaskId, bool actAsSubtask = true);
86 
87  virtual void notifyScriptTaskError(const DtString& scriptId, int taskId);
89 
90  virtual bool createPSR();
91 
92  static DtSimComponent* creator(const DtString& name,
93  DtVrfObject* owner, DtSimManager* simManager, DtComponentDescriptor* desc,
94  DtReaderWriterRegistry* parentRegistry);
95 
96 protected:
100 
101  virtual bool shouldInvokeCheck(DtRwScriptReactiveTaskEntry* entry);
102 
103  virtual DtRwScriptReactiveTaskEntry* createDefaultEntry(const DtString& scriptId);
104  virtual bool createAndInitScriptInterface(DtRwScriptReactiveTaskEntry* entry, DtRwVariableBindings* params, bool loadState = false);
105 
106  virtual void activateReactiveTask(DtRwScriptReactiveTaskEntry* entry);
107  virtual void disableReactiveTask(DtRwScriptReactiveTaskEntry* entry, bool cancelActive);
108 
109  virtual void processSetReactiveTaskCallback(DtSetDataRequest* setMsg);
110  virtual void processSetCancel(DtSetReactiveTaskCancel* setMsg);
111  virtual void processSetDisabled(DtSetReactiveTaskDisabled* setMsg);
112  virtual void processSetEnabled(DtSetReactiveTaskEnabled* setMsg);
113  virtual void processSetPriority(DtSetReactiveTaskPriority* setMsg);
114  virtual void processSetTable(DtSetReactiveTaskTable* setMsg);
115 
116  virtual void setupReactiveTasks();
117 
118  virtual void processScriptUpdatedCallback(const DtScriptedTaskManagerCallbackInfo& info);
119 
120  virtual bool doesScriptIdApply(const DtString& scriptId) const;
121  virtual bool isForMyEntityType(const DtScriptedTaskMetaData& metaData) const;
122 
124  DtForceType myCurrentForceType;
125 };

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)