VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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/simMessage.h"
15 #include <set>
21 #include <boost/shared_ptr.hpp>
25 
27 class DtSimMessage;
28 
51 
53 {
54 public:
56  DtVrfObject* owner, DtSimManager* simManager, DtComponentDescriptor* desc,
57  DtReaderWriterRegistry* parentRegistry);
58 
60 
61  virtual const char* type() const;
62 
63  virtual bool init();
64 
65  virtual void preFirstTickInit();
66 
67  virtual void tick();
68 
69  virtual std::list<DtScriptedTaskTask> reactiveTaskStatus() const;
70 
71  virtual bool isReactiveTaskEnabled(const DtString& scriptId) const;
72  virtual void notifySuspend(const DtString& scriptId, int taskId);
73  virtual void notifyResume(const DtString& scriptId, int taskId);
74  virtual void processReturnScriptInterface(const DtString& scriptId, int taskId, boost::shared_ptr<DtScriptInterface> iFace);
75 
76  virtual void enableReactiveTask(const DtString& scriptId, DtRwVariableBindings& params, bool resetIfEnabled = false);
77 
78  static void setReactiveTaskCallback(DtSimMessage* msg, void* usr);
79  static void scriptUpdatedCallback(const DtScriptedTaskManagerCallbackInfo& info, void* usr);
80 
82  virtual void scriptSetTickPeriod(const DtString& scriptId, double period);
84  virtual void scriptSetRespondToNewSensorContacts(const DtString& scriptId, bool tick);
85  virtual void scriptTaskComplete(int taskId, bool success);
86  virtual int scriptSendSubtask(DtSimTask& task, int parentTaskId);
87  virtual std::vector<int> scriptPendingSubstaskIds(int taskId);
88  virtual DtSubtaskStatusEntry* scriptSubtaskStatus(int subtaskId, int parentTaskId);
89  virtual void scriptClearSubtask(int subtaskId, int parentTaskId);
90  virtual int scriptSendTask(DtSimTask& task, const DtString& entityName, int parentTaskId, bool actAsSubtask = true);
91 
92  virtual int askUserQuestion(const DtString& scriptId,
93  const DtTranslatableStream& title, const DtTranslatableStream& message,
94  const std::vector<DtTranslatableStream>& options, int displayFlag);
95  virtual int statusOfUserQuestion(int questionId);
96  virtual void cancelUserQuestion(int questionId);
97 
99  virtual void addReactiveTaskType(const DtString&, const DtString& system = "");
100 
101  virtual void notifyScriptTaskError(const DtString& scriptId, int taskId);
102 
104  virtual DtPointTaskVisualizationPtr pointTaskVisualization(int taskId, const DtString& visName);
106  virtual DtLineTaskVisualizationPtr lineTaskVisualization(int taskId, const DtString& visName);
108  virtual DtAreaTaskVisualizationPtr areaTaskVisualization(int taskId, const DtString& visName);
110  virtual DtTextTaskVisualizationPtr textTaskVisualization(int taskId, const DtString& visName);
112  virtual void deleteTaskVisualization(int taskId, const DtString& visName);
114 
115  virtual bool createPSR();
116 
117  static DtSimComponent* creator(const DtString& name,
118  DtVrfObject* owner, DtSimManager* simManager, DtComponentDescriptor* desc,
119  DtReaderWriterRegistry* parentRegistry);
120 
121  virtual std::vector<std::string> availableReactiveTasks() const;
122  virtual DtString systemFor(const DtString& scriptId) const;
123 
124 protected:
128 
129  virtual bool shouldInvokeCheck(DtRwScriptReactiveTaskEntry* entry);
130 
131  virtual DtRwScriptReactiveTaskEntry* createDefaultEntry(const DtString& scriptId, const DtString& system = "");
132  virtual bool createAndInitScriptInterface(DtRwScriptReactiveTaskEntry* entry, DtRwVariableBindings* params, bool loadState = false);
133 
134  virtual void activateReactiveTask(DtRwScriptReactiveTaskEntry* entry);
135  virtual void disableReactiveTask(DtRwScriptReactiveTaskEntry* entry, bool cancelActive);
136 
137  virtual void processSetReactiveTaskCallback(DtSetDataRequest* setMsg);
138  virtual void processSetCancel(DtSetReactiveTaskCancel* setMsg);
139  virtual void processSetDisabled(DtSetReactiveTaskDisabled* setMsg);
140  virtual void processSetEnabled(DtSetReactiveTaskEnabled* setMsg);
141  virtual void processSetPriority(DtSetReactiveTaskPriority* setMsg);
142  virtual void processSetTable(DtSetReactiveTaskTable* setMsg);
143 
144  virtual void setupReactiveTasks();
145 
146  virtual void processScriptUpdatedCallback(const DtScriptedTaskManagerCallbackInfo& info);
147 
148  virtual bool doesScriptIdApply(const DtString& scriptId) const;
149  virtual bool isForMyEntityType(const DtScriptedTaskMetaData& metaData) const;
150 
151  static void userQuestionOperationCallback(DtSimMessage* msg, void* usrData);
152  virtual void processUserQuestionOperation(DtSimMessage*);
153 
154  virtual void sendOffOutstandingQuestionFor(const DtString& scriptId);
155 
156 protected:
158  DtForceType myCurrentForceType;
159 
160  std::map<DtString, DtString> myAdditionalReactiveTasks;
161 };

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)