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);
235 virtual void pushExecutionStack();
239 virtual void suspendExecutionStack();
248 virtual void popExecutionStack(
bool forceStep =
false);
258 virtual bool taskRequestPending()
const;
261 virtual void setTaskRequestPending(
bool newValue =
true);
270 virtual void clearVariables();
281 virtual bool executeTask(
const DtSimTask& taskToSend)
const;
286 virtual bool executeSetDataRequest(
302 virtual bool evaluateConditional(
const DtSimCondExpr* condExpr)
const;
311 virtual void empty();
314 virtual bool isEmpty()
const;
317 virtual DtList* triggerList();
318 virtual const DtList* triggerList()
const;
321 virtual void addTriggerToExecute(
DtSimTrigger* trigger);
323 virtual void removeTriggerFromPendingExecution(
DtSimTrigger* trigger);
326 virtual DtList* executionStack();
327 virtual const DtList* executionStack()
const;
331 virtual bool validatePlan();
338 virtual void setCurrentStmt(
const DtStmtIndex& nextStatement);
341 virtual void setCurrentStatementExecutionId(
int id);
344 virtual bool isComplete()
const;
348 virtual void setIsComplete(
bool completeFlag =
true);
352 virtual void setLastStatementExecuted(
bool);
353 virtual bool lastStatementExecuted()
const;
358 virtual bool isAbandoned()
const;
361 virtual void setIsAbandoned(
bool v);
364 virtual bool isExecuting()
const;
370 virtual void reset();
376 virtual void abandonPlan(
bool sendWaitTask);
381 virtual void restartPlan(
bool sendWaitTask =
true);
387 virtual bool translateIndex(
DtStmtIndex& stmtIndex)
const;
392 virtual void translateIndices(DtList& stmtIndexList)
const;
400 virtual void mergeEditedPlanWith(
const DtPlan& oldPlan);
409 virtual void putSelf(std::string& fp,
int indentLevel = 0,
415 virtual void getSelf(DtlObjPtr args,
421 virtual void addStatementChangedCallback(
425 virtual void removeStatementChangedCallback(
429 virtual void addTickCallback(
433 virtual void removeTickCallback(
440 virtual void pushExecutingTrigger(
int);
441 virtual void popExecutingTrigger();
442 virtual int executingTriggerStatementId()
const;
445 virtual std::vector<int> executingTriggerStatementIds()
const;
448 virtual DtUUID executingTriggerName()
const;
451 virtual std::vector<DtUUID> executingTriggerNames()
const;
454 virtual std::vector<DtUUID> registeredTriggerNames()
const;
457 virtual bool triggerIsRunning(
const DtUUID&)
const;
460 virtual bool triggerIsRegistered(
const DtUUID&)
const;
463 virtual void removeScheduledTriggers(
const DtUUID&);
466 virtual void mapRegisteredTriggersToTriggerStatements();
474 virtual void setContinuePlan(
bool);
480 virtual std::vector<DtReaderWriter*> substituteVariablesIn(
DtReaderWriter*)
const;
483 virtual std::vector<DtReaderWriter*> substitutedValues(
const DtReaderWriter*)
const;
492 virtual void removeTopExecutionStack();
500 virtual void invokeSkipTaskCallbacks();
505 virtual void processAwaitingTask();
509 virtual void createMainBlock();
514 virtual void copyMainBlock(
const DtPlan& otherPlan);
519 virtual void copyAndTranslateExecutionStack(
const DtPlan& otherPlan);
524 virtual void copyAndTranslateTriggers(
const DtPlan& otherPlan);
528 virtual void curStmtChanged();
532 virtual void continuePlan();
540 virtual void stepStatement(
bool forceStep =
false);
545 virtual void executeStatement();
549 virtual void clearTriggerList();
554 virtual void clearExecutionStack();
557 virtual void emtpyExecutionStack();
563 virtual void mapPendingTriggersToPendingTriggerDataList();
568 virtual void mapOldExecutionCursorStackToExecutionStack(
const DtRwIntegerList& executionCursorStack);
572 virtual void mapPendingTriggerDataToPendingTriggers();
577 virtual int statementIdToCursor(
DtStmtIdType statementId);
583 virtual void createTriggersFromWhenBlocks();
584 virtual void createTriggersFromWhenBlocks(
DtSimBlock*);
592 virtual void mapExecutionStackToExecutingTriggers();
683 namespace DtBufferSerialize
bool operator==(const DtReaderWriter &) const
Equivalence operator.
UUID is a unique ID wrapper class.
Definition: rwUUID.h:229
DtPlanStatus myLastSentStatus
The status that was last sent out though the curretStatement callbacks.
Definition: plan.h:666
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:611
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:605
DtRwBoolean myTaskRequestPending
The TaskRequestPending flag is set to true when an Entity requests a new task, and is cleared when a ...
Definition: plan.h:601
DtList myPendingTriggers
A list of all registered DtSimTriggers.
Definition: plan.h:626
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:649
class DtRwTriggerDataList:
Definition: rwTriggerDataList.h:27
DtRwInt myOrdinal
Definition: plan.h:672
Iterator for iterating over a DtRwIntrusiveList of DtSimStatements and all its descendants (as repres...
Definition: recursiveSimBlockIterator.h:32
Description: Readable, Writable uuid string. Use this class in order to convert from object marking t...
Definition: rwUUID.h:431
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:663
bool myContinuePlan
Definition: plan.h:661
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:659
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:653
DtCallbackList< const DtPlan & > myStatementChangedCbs
A list of all the DtCurrentStatementChangedCallbackFcn callbacks.
Definition: plan.h:629
DtNoArgumentCallbackList myStatementSkipTaskCbs
A list of all the DtStmtTickCallbackFcn callbacks.
Definition: plan.h:637
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:654
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:633
DtRwBoolean myLastStatementExecuted
myLastStatementExecuted makes sure that nothing will get executed in the plan after triggers have bee...
Definition: plan.h:619
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:264
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
A version of DtRwList that contains a homogeneous list of a templated RW type. The templated type spe...
Definition: rwTemplatedList.h:26
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:676
void(* DtCurrentStatementChangedCallbackFcn)(const DtPlan &plan, void *usr)
Definition: plan.h:62
DtRwIntegerList myExecutingTriggers
Definition: plan.h:678
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:623
DtRwVariableBindings myPlanVariables
Definition: plan.h:680
#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:60
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:670
bool myAwaitingTaskFlag
Flag indicating we've received an awaiting task request.
Definition: plan.h:657
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:645
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:615
DtRwString myQuickLaunchIcon
Definition: plan.h:671
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