13 #include <vlutil/vlString.h>
14 #include <vlutil/vlList.h>
18 #include <vl/hostStructs.h>
71 (
const DtUUID& name,
const std::vector<DtSimStatement*>& statements,
bool append,
98 IsQuickLaunch = 0x00000001,
99 ShowOnQuickLaunchToolbar = 0x00000002,
100 Launched = 0x00000004
139 virtual void addVariables();
156 virtual const DtUUID& planName()
const;
157 virtual void setPlanName(
const DtUUID& name);
158 virtual bool planNameSpecified()
const;
164 virtual void setIsQuickLaunch(
bool);
165 virtual bool isQuickLaunch()
const;
168 virtual void setShowOnQuickLaunchToolbar(
bool);
169 virtual bool showOnQuickLaunchToolbar()
const;
174 virtual void setIsLaunched(
bool);
175 virtual bool isLaunched()
const;
178 virtual void setQuickLaunchIcon(
const DtString&);
179 virtual const DtString& quickLaunchIcon()
const;
182 virtual void setOrdinal(
int);
183 virtual int ordinal()
const;
186 virtual void setPlanSummary(
const DtString&);
187 virtual const DtString& planSummary()
const;
197 virtual void enableExecutionState();
198 virtual void disableExecutionState();
199 virtual bool executionState()
const;
203 virtual void awaitingTask();
206 virtual bool isAwatingTask()
const;
216 virtual void removeTrigger(
const DtUUID&);
219 virtual void renameTrigger(
const DtUUID&,
const DtString& newName);
236 virtual void pushExecutionStack();
240 virtual void suspendExecutionStack(
bool suspendedFromTrigger =
false);
249 virtual void popExecutionStack(
bool forceStep =
false);
259 virtual bool taskRequestPending()
const;
262 virtual void setTaskRequestPending(
bool newValue =
true);
271 virtual void clearVariables();
282 virtual bool executeTask(
const DtSimTask& taskToSend)
const;
287 virtual bool executeSetDataRequest(
303 virtual bool evaluateConditional(
const DtSimCondExpr* condExpr)
const;
312 virtual void empty();
315 virtual bool isEmpty()
const;
318 virtual DtList* triggerList();
319 virtual const DtList* triggerList()
const;
322 virtual void addTriggerToExecute(
DtSimTrigger* trigger);
324 virtual void removeTriggerFromPendingExecution(
DtSimTrigger* trigger);
327 virtual DtList* executionStack();
328 virtual const DtList* executionStack()
const;
332 virtual bool validatePlan();
339 virtual void setCurrentStmt(
const DtStmtIndex& nextStatement);
342 virtual void setCurrentStatementExecutionId(
int id);
345 virtual bool isComplete()
const;
349 virtual void setIsComplete(
bool completeFlag =
true);
353 virtual void setLastStatementExecuted(
bool);
354 virtual bool lastStatementExecuted()
const;
359 virtual bool isAbandoned()
const;
362 virtual void setIsAbandoned(
bool v);
365 virtual bool isExecuting()
const;
371 virtual void reset();
374 virtual void stopCurrentTask();
380 virtual void abandonPlan(
bool sendWaitTask);
385 virtual void restartPlan(
bool sendWaitTask =
true);
391 virtual bool translateIndex(
DtStmtIndex& stmtIndex)
const;
396 virtual void translateIndices(DtList& stmtIndexList)
const;
404 virtual void mergeEditedPlanWith(
const DtPlan& oldPlan);
413 virtual void putSelf(std::string& fp,
int indentLevel = 0,
419 virtual void getSelf(DtlObjPtr args,
425 virtual void addStatementChangedCallback(
429 virtual void removeStatementChangedCallback(
433 virtual void addTickCallback(
437 virtual void removeTickCallback(
444 virtual void pushExecutingTrigger(
int);
445 virtual void popExecutingTrigger();
446 virtual int executingTriggerStatementId()
const;
449 virtual std::vector<int> executingTriggerStatementIds()
const;
452 virtual DtUUID executingTriggerName()
const;
455 virtual std::vector<DtUUID> executingTriggerNames()
const;
458 virtual std::vector<DtUUID> registeredTriggerNames()
const;
461 virtual bool triggerIsRunning(
const DtUUID&)
const;
464 virtual bool triggerIsRegistered(
const DtUUID&)
const;
467 virtual void removeScheduledTriggers(
const DtUUID&);
470 virtual void mapRegisteredTriggersToTriggerStatements();
478 virtual void setContinuePlan(
bool);
484 virtual std::vector<DtReaderWriter*> substituteVariablesIn(
DtReaderWriter*)
const;
487 virtual std::vector<DtReaderWriter*> substitutedValues(
const DtReaderWriter*)
const;
496 virtual void removeTopExecutionStack();
504 virtual void invokeSkipTaskCallbacks();
509 virtual void processAwaitingTask();
513 virtual void createMainBlock();
518 virtual void copyMainBlock(
const DtPlan& otherPlan);
523 virtual void copyAndTranslateExecutionStack(
const DtPlan& otherPlan);
528 virtual void copyAndTranslateTriggers(
const DtPlan& otherPlan);
532 virtual void curStmtChanged();
536 virtual void continuePlan();
544 virtual void stepStatement(
bool forceStep =
false);
549 virtual void executeStatement();
553 virtual void clearTriggerList();
558 virtual void clearExecutionStack();
561 virtual void emtpyExecutionStack();
567 virtual void mapPendingTriggersToPendingTriggerDataList();
572 virtual void mapOldExecutionCursorStackToExecutionStack(
const DtRwIntegerList& executionCursorStack);
576 virtual void mapPendingTriggerDataToPendingTriggers();
581 virtual int statementIdToCursor(
DtStmtIdType statementId);
587 virtual void createTriggersFromWhenBlocks();
588 virtual void createTriggersFromWhenBlocks(
DtSimBlock*);
596 virtual void mapExecutionStackToExecutingTriggers();
687 namespace DtBufferSerialize
bool operator==(const DtReaderWriter &) const
Equivalence operator.
UUID is a unique ID wrapper class.
Definition: uuid.h:59
DtPlanStatus myLastSentStatus
The status that was last sent out though the curretStatement callbacks.
Definition: plan.h:670
class DtPlanBlock:
Definition: planBlock.h:22
An abstract interface for the execution of a plan. This class defines the interface that is used to c...
Definition: planExecutor.h:32
DtList myExecutionStack
The top of the execution stack is the Plan's current statement (fetched with currentStmt()). Whenever a retasking trigger fires, it pushes this stack down so that the Plan can pick up where it left off at the end of the trigger.
Definition: plan.h:615
DT_DLL_readerWriter int getSize(const DtString &val)
The number of bytes required to encode the value.
DtPlanBlock * myMainBlock
The main Block is the top-level Block of the plan and is the only Block that is considered to be "own...
Definition: plan.h:609
DtRwBoolean myTaskRequestPending
The TaskRequestPending flag is set to true when an Entity requests a new task, and is cleared when a ...
Definition: plan.h:605
DtList myPendingTriggers
A list of all registered DtSimTriggers.
Definition: plan.h:630
DT_DLL_terrainCS bool operator==(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
Definition: readerWriter.h:85
Description: Readable, Writable DtString Variable substitutions are done on this object when it is re...
Definition: rwString.h:20
class DtStmtIndex:
Definition: stmtIndex.h:24
Definition: readerWriterRegistry.h:39
Contains the DtUUID class declaration.
bool isAbandoned
Definition: plan.h:58
const DtRwTriggersList & triggers() const
Returns plans triggers.
Definition: plan.h:228
DtRwTriggersList myTriggers
List of all possible triggers in the plan. This will be a collection of when statements that represen...
Definition: plan.h:653
class DtRwTriggerDataList:
Definition: rwTriggerDataList.h:27
DtRwInt myOrdinal
Definition: plan.h:676
Iterator for iterating over a DtRwIntrusiveList of DtSimStatements and all its descendants (as repres...
Definition: recursiveSimBlockIterator.h:32
uuid class
Definition: rwUUID.h:26
ReaderWriter object that maintains a list of reader-writer variable bindings. It keeps a list of name...
Definition: rwVariableBindings.h:27
virtual void reset()
For those reader/writer items that support it, resets the reader/writer value to original state Defau...
class DtSimBlock:
Definition: simBlock.h:27
DtSetDataRequest is an abstract base class from which real setDataRequests can derive. It manages the read/write capability; derived classes need only use and register read/writatble data types for derived information.
Definition: setDataRequest.h:41
Instances of DtRwIntegerList are lists of readable, writeable integers (DtRwInts). The list contains pointers to DtRwInt instances.
Definition: rwIntegerList.h:19
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
DtPlanExecutor * myPlanExecutor
Definition: plan.h:667
bool myContinuePlan
Definition: plan.h:665
File: simMsg.h.
Definition: simMessage.h:35
Description: Readable, Writable int.
Definition: rwInt.h:25
std::vector< int > executingTriggerStatementIds
Definition: plan.h:52
void(* DtPlanCallbackFcn)(const DtUUID &name, const std::vector< DtSimStatement * > &statements, bool append, void *usr)
Definition: plan.h:71
This class works just as DtCalllbackTable, but manages callbacks that have no arguments, and therefore don't fit in the template defined by DtCallbackList.
Definition: noArgumentCallbackList.h:152
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
bool isExecuting
Definition: plan.h:57
DtRwUUID myPlanName
Definition: plan.h:663
void(* DtStmtTickCallbackFcn)(DtPlan &plan, void *usr)
Definition: plan.h:65
DtSimCommand is an abstract base class from which commands can derive. It manages the read/write capa...
Definition: simCommand.h:32
DT_DLL_readerWriter char * encode(const DtFilename &val, char *buffer)
Serializes the provided value val into buffer. buffer must have at least the number of bytes returned...
bool myExecutionIsEnabled
Flag indication whether execution is enabled (can we start or advance through plan statements...
Definition: plan.h:657
DtCallbackList< const DtPlan & > myStatementChangedCbs
A list of all the DtCurrentStatementChangedCallbackFcn callbacks.
Definition: plan.h:633
DtNoArgumentCallbackList myStatementSkipTaskCbs
A list of all the DtStmtTickCallbackFcn callbacks.
Definition: plan.h:641
virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
Top level to read itself from an input stream. searchPath is passed down to all DtReaderWriter member...
void(* DtMultiplePlanRequestCallbackFcn)(DtIfMultiplePlanResponse *, void *usr)
Definition: plan.h:81
virtual void putSelf(std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename())
Top level call to write itself to file. If write unspecified is true, will write entries that are uns...
class DtTriggerBlock:
Definition: triggerBlock.h:26
class DtPlan:
Definition: plan.h:92
void(* DtPlanStatementCallbackFcn)(const DtUUID &name, DtPlanStatus planStatus, void *usr)
Definition: plan.h:75
DtSimCondExpr is an abstract base class representing various Conditional Expressions used by the Plan...
Definition: simCondExpr.h:53
bool myWantsExecutionStateEnabled
Definition: plan.h:658
Small container class that holds the status of a running DtPlan.
Definition: plan.h:45
static const DtVariableBindingsList & nullVariableReference()
class DtIfMultiplePlanResponse:
Definition: ifMultiplePlanResponse.h:32
DtCallbackList< DtPlan & > myStatementTickCbs
A list of all the DtTickCallbackFcn callbacks.
Definition: plan.h:637
DtRwBoolean myLastStatementExecuted
myLastStatementExecuted makes sure that nothing will get executed in the plan after triggers have bee...
Definition: plan.h:623
QuickLaunchFlags
Definition: plan.h:95
Description: Readable, Writable bool.
Definition: rwBoolean.h:26
class DtSimTrigger:
Definition: simTrigger.h:28
const DtRwVariableBindings & variables() const
Returns plan variables.
Definition: plan.h:265
The DtRwPlanVariable is a base class that minimally implements a plan variable. Subclasses will imple...
Definition: rwPlanVariable.h:18
class DtSimStatement:
Definition: simStatement.h:38
std::vector< DtUUID > registeredTriggerNames
Definition: plan.h:54
DtRwTriggersList & triggers()
Definition: plan.h:229
Definition: rwTemplatedList.h:34
DtSimTask is an abstract base class from which real tasks can derive. It manages the read/write capab...
Definition: simTask.h:30
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtRwString myPlanSummary
Plan summary. Currently used by synchronization matrices only.
Definition: plan.h:680
void(* DtCurrentStatementChangedCallbackFcn)(const DtPlan &plan, void *usr)
Definition: plan.h:62
DtRwIntegerList myExecutingTriggers
Definition: plan.h:682
void(* DtSkipTaskCallbackFcn)(void *usr)
Definition: plan.h:68
DtRwBoolean myAbandoned
True if this plan has been abandoned. If the plan is abandoned, it will also show as "complete"...
Definition: plan.h:627
DtRwVariableBindings myPlanVariables
Definition: plan.h:684
#define DT_DLL_vrfplan
This file is used to determine how to build.
Definition: vrfplanDefines.h:28
const DtReaderWriter & operator=(const DtReaderWriter &orig)
assignment operator
DT_DLL_terrainCS bool operator!=(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
DT_DLL_readerWriter const char * decode(DtString &val, const char *buffer)
Decodes a value from buffer and places the result in val of the type specified by val...
Definition: triggerStmt.h:63
void(* DtPlanCompleteCallbackFcn)(const DtUUID &name, void *usr)
Definition: plan.h:78
DtRwInt myQuickLaunchFlags
Additional data used to indicate if this is a quick launch plan and the icon associated with it...
Definition: plan.h:674
bool myAwaitingTaskFlag
Flag indicating we've received an awaiting task request.
Definition: plan.h:661
std::vector< DtUUID > executingTriggerNames
Definition: plan.h:53
DtRwTriggerDataList myPendingTriggerDataList
Reader-writer members used to hold checkpoint information about the plan. These variables only contai...
Definition: plan.h:649
static const DtFilename & appPath()
Gets the current working directory. The first time this accessor is called, it determines the current...
int currentStatementId
Definition: plan.h:55
DtRwBoolean myIsComplete
myIsComplete Disables awaitingTask() and causes it to emit continuous Wait tasks. ...
Definition: plan.h:619
DtRwString myQuickLaunchIcon
Definition: plan.h:675
Instances of DtRwTriggersList are lists of readable, writeable when statements (triggers) The list co...
Definition: rwTriggersList.h:21
bool isComplete
Definition: plan.h:56
DtBoost::shared_ptr< DtSimCommandContext > DtSimCommandContextPtr
Definition: simCommandStmt.h:28