VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
plan.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
11 class DtPlan;
12 
13 #include <vlutil/vlString.h>
14 #include <vlutil/vlList.h>
15 #include "vrfutil/rwString.h"
16 #include "vrfutil/readerWriter.h"
17 #include "vrfplan/stmtIndex.h"
18 #include <vl/hostStructs.h>
19 #include "vrfutil/rwBoolean.h"
20 #include "vrfutil/rwIntegerList.h"
24 #include "vrfplan/vrfplanDefines.h"
25 #include "vrfutil/rwUUID.h"
26 
27 class DtStatement;
28 class DtSimTask;
29 class DtSetDataRequest;
31 class DtSimTrigger;
32 class DtSimBlock;
33 class DtSimCommand;
34 class DtPlanBlock;
35 class DtWhenBlock;
36 class DtSimMessage;
39 class DtPlanExecutor;
40 class DtSimCondExpr;
42 
45 {
46 public:
47  DtPlanStatus();
48  bool operator==(const DtPlanStatus& orig) const;
49  bool operator!=(const DtPlanStatus& orig) const;
50 
51 
53  bool isComplete;
56 };
57 
59  (const DtPlan& plan, void* usr);
60 
61 typedef void (*DtPlanCallbackFcn)
62  (const DtUUID& name, const std::vector<DtSimStatement*>& statements, bool append,
63  void* usr);
64 
65 typedef void (*DtPlanStatementCallbackFcn)
66  (const DtUUID& name, DtPlanStatus planStatus, void* usr);
67 
68 typedef void (*DtPlanCompleteCallbackFcn)
69  (const DtUUID& name, void* usr);
70 
72  (DtIfMultiplePlanResponse*, void* usr);
73 
83 {
84 public:
86  {
87  None = 0,
88  IsQuickLaunch = 0x00000001,
89  ShowOnQuickLaunchToolbar = 0x00000002,
90  Launched = 0x00000004
91  };
92 
99  DtPlan();
100 
106  DtPlan(const DtUUID& planName,
107  DtPlanExecutor* planExecutor,
108  const DtString& name = "Plan",
109  DtReaderWriterRegistry* parentRegistry = NULL);
110 
114 
118  DtPlan(const DtString& name, const DtUUID& planName,
119  const DtPlan& orig, DtReaderWriterRegistry* parentRegistry = NULL);
120 
122  virtual ~DtPlan();
123 
125  virtual void init();
126 
129  virtual DtPlan* clone(const DtString& name,
130  const DtUUID& planName,
131  DtReaderWriterRegistry* parentRegistry = NULL) const;
132 
137  DtPlan& operator=(const DtPlan& orig);
138 
140  virtual bool operator==(const DtPlan& orig) const;
141 
142  virtual const DtUUID& planName() const;
143  virtual void setPlanName(const DtUUID& name);
144  virtual bool planNameSpecified() const;
145 
150  virtual void setIsQuickLaunch(bool);
151  virtual bool isQuickLaunch() const;
152 
154  virtual void setShowOnQuickLaunchToolbar(bool);
155  virtual bool showOnQuickLaunchToolbar() const;
156 
160  virtual void setIsLaunched(bool);
161  virtual bool isLaunched() const;
162 
164  virtual void setQuickLaunchIcon(const DtString&);
165  virtual const DtString& quickLaunchIcon() const;
166 
168  virtual void setOrdinal(int);
169  virtual int ordinal() const;
170 
172  //virtual DtSimManager* simManager() const;
173 
174  virtual void setPlanExecutor(DtPlanExecutor* planExecutor);
175  virtual DtPlanExecutor* planExecutor() const;
176 
179  virtual void enableExecutionState();
180  virtual void disableExecutionState();
181  virtual bool executionState() const;
182 
185  virtual void awaitingTask();
186 
188  virtual bool isAwatingTask() const;
189 
195  virtual void pushExecutionStack();
196 
204  virtual void popExecutionStack(bool forceStep = false);
205 
208  virtual void executeTrigger(DtWhenBlock* whenBlock);
209 
211  virtual void executeBlock(DtSimBlock* block);
212 
214  virtual bool taskRequestPending() const;
215 
217  virtual void setTaskRequestPending(bool newValue = true);
218 
222  virtual bool executeTask(const DtSimTask& taskToSend) const;
223 
227  virtual bool executeSetDataRequest(
228  const DtSetDataRequest& setToSend) const;
229 
233  virtual bool executeSimCommand(const DtSimCommand& command) const;
234 
237  virtual bool evaluateConditional(const DtSimCondExpr* condExpr) const;
238 
240  virtual DtStmtIndex firstStmt() const;
241 
243  virtual DtPlanBlock* mainBlock() const;
244 
246  virtual bool isEmpty() const;
247 
249  virtual DtList* triggerList();
250  virtual const DtList* triggerList() const;
251 
253  virtual void addTrigger(DtSimTrigger* trigger);
255  virtual void removeTrigger(DtSimTrigger* trigger);
256 
258  virtual DtList* executionStack();
259  virtual const DtList* executionStack() const;
260 
263  virtual bool validatePlan();
264 
268  virtual const DtStmtIndex& currentStmt() const;
270  virtual void setCurrentStmt(const DtStmtIndex& nextStatement);
271 
273  virtual void setCurrentStatementExecutionId(int id);
274 
276  virtual bool isComplete() const;
279  virtual void setIsComplete(bool completeFlag = true);
280 
283  virtual bool isAbandoned() const;
286  virtual void setIsAbandoned(bool v);
287 
289  virtual bool isExecuting() const;
290 
292  virtual DtPlanStatus currentStatus() const;
293 
295  virtual void reset();
296 
301  virtual void abandonPlan(bool sendWaitTask);
302 
306  virtual void restartPlan(bool sendWaitTask = true);
307 
312  virtual bool translateIndex(DtStmtIndex& stmtIndex) const;
313 
317  virtual void translateIndices(DtList& stmtIndexList) const;
318 
320  virtual void tick();
321 
325  virtual void mergeEditedPlanWith(const DtPlan& oldPlan);
326 
329  virtual DtRecursiveSimBlockIterator* spawnRecursiveIterator() const;
330 
334  virtual void putSelf(FILE *fp, int indentLevel = 0,
335  bool writeUnspecified = false, const DtFilename& path = DtReaderWriter::appPath());
336 
340  virtual void getSelf(DtlObjPtr args,
343 
346  virtual void addStatementChangedCallback(
347  DtCurrentStatementChangedCallbackFcn fcn, void* usrData);
348 
350  virtual void removeStatementChangedCallback(
351  DtCurrentStatementChangedCallbackFcn fcn, void* usrData);
352 
353 protected:
354 
356  virtual void processAwaitingTask();
357 
360  virtual void createMainBlock();
361 
365  virtual void copyMainBlock(const DtPlan& otherPlan);
366 
370  virtual void copyAndTranslateExecutionStack(const DtPlan& otherPlan);
371 
375  virtual void copyAndTranslateTriggers(const DtPlan& otherPlan);
376 
379  virtual void curStmtChanged();
380 
383  virtual void continuePlan();
384 
388  virtual void stepStatement();
389 
393  virtual void executeStatement();
394 
397  virtual void clearTriggerList();
398 
402  virtual void clearExecutionStack();
403 
405  virtual void emtpyExecutionStack();
406 
408 
409 
410  virtual void mapExecutionStackToRwExecutionStack(DtRwPlanExecutionStack& rwExecutionStack);
411  virtual void mapPendingTriggersToPendingTriggerDataList();
413 
415 
416 
417  virtual void mapOldExecutionCursorStackToExecutionStack(const DtRwIntegerList& executionCursorStack);
419  virtual void mapRwExecutionStackToExecutionStack(const DtRwPlanExecutionStack& rwExecutionStack);
420  virtual void mapPendingTriggerDataToPendingTriggers();
422 
425  virtual int statementIdToCursor(DtStmtIdType statementId);
426  virtual DtStmtIdType cursorToStatementId(int cursor);
427 
430  virtual DtSimStatement* lookupStatementByCursor(int cursor);
431 
432 protected:
433 
440 
444 
450 
454 
458 
461 
464  //DtList myStatementChangedCbs;
465 
469 
472 
477 
480 
482 
484 
486 
489 
495 };
496 
497 namespace DtBufferSerialize
498 {
501  DT_DLL_vrfplan int getSize(const DtPlan& contentPtr);
502 
506  DT_DLL_vrfplan char *encode(const DtPlan& adminContentPtr, char *buffer);
507 
512  DT_DLL_vrfplan const char *decode(DtPlan& adminContentPtr, const char *buffer);
513 }

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)