VR-Forces 4.3 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 
30 //
36 //
42 //
47 //
51 
53 {
54 public:
56  DtVrfObject* owner, DtSimManager* simManager, DtComponentDescriptor* desc,
57  DtReaderWriterRegistry* parentRegistry);
58 
60 
61  virtual DtString 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);
103 
104  virtual bool createPSR();
105 
106  static DtSimComponent* creator(const DtString& name,
107  DtVrfObject* owner, DtSimManager* simManager, DtComponentDescriptor* desc,
108  DtReaderWriterRegistry* parentRegistry);
109 
110  virtual std::vector<std::string> availableReactiveTasks() const;
111  virtual DtString systemFor(const DtString& scriptId) const;
112 
113 protected:
117 
118  virtual bool shouldInvokeCheck(DtRwScriptReactiveTaskEntry* entry);
119 
120  virtual DtRwScriptReactiveTaskEntry* createDefaultEntry(const DtString& scriptId, const DtString& system = "");
121  virtual bool createAndInitScriptInterface(DtRwScriptReactiveTaskEntry* entry, DtRwVariableBindings* params, bool loadState = false);
122 
123  virtual void activateReactiveTask(DtRwScriptReactiveTaskEntry* entry);
124  virtual void disableReactiveTask(DtRwScriptReactiveTaskEntry* entry, bool cancelActive);
125 
126  virtual void processSetReactiveTaskCallback(DtSetDataRequest* setMsg);
127  virtual void processSetCancel(DtSetReactiveTaskCancel* setMsg);
128  virtual void processSetDisabled(DtSetReactiveTaskDisabled* setMsg);
129  virtual void processSetEnabled(DtSetReactiveTaskEnabled* setMsg);
130  virtual void processSetPriority(DtSetReactiveTaskPriority* setMsg);
131  virtual void processSetTable(DtSetReactiveTaskTable* setMsg);
132 
133  virtual void setupReactiveTasks();
134 
135  virtual void processScriptUpdatedCallback(const DtScriptedTaskManagerCallbackInfo& info);
136 
137  virtual bool doesScriptIdApply(const DtString& scriptId) const;
138  virtual bool isForMyEntityType(const DtScriptedTaskMetaData& metaData) const;
139 
140  static void userQuestionOperationCallback(DtSimMessage* msg, void* usrData);
141  virtual void processUserQuestionOperation(DtSimMessage*);
142 
143  virtual void sendOffOutstandingQuestionFor(const DtString& scriptId);
144 
145 protected:
147  DtForceType myCurrentForceType;
148 
149  std::map<DtString, DtString> myAdditionalReactiveTasks;
150 };

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)