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,
97 IsQuickLaunch = 0x00000001,
98 ShowOnQuickLaunchToolbar = 0x00000002,
137 virtual void addVariables();
154 virtual const DtUUID& planName()
const;
155 virtual void setPlanName(
const DtUUID& name);
156 virtual bool planNameSpecified()
const;
162 virtual void setIsQuickLaunch(
bool);
163 virtual bool isQuickLaunch()
const;
166 virtual void setShowOnQuickLaunchToolbar(
bool);
167 virtual bool showOnQuickLaunchToolbar()
const;
172 virtual void setIsLaunched(
bool);
173 virtual bool isLaunched()
const;
176 virtual void setQuickLaunchIcon(
const DtString&);
177 virtual const DtString& quickLaunchIcon()
const;
180 virtual void setOrdinal(
int);
181 virtual int ordinal()
const;
191 virtual void enableExecutionState();
192 virtual void disableExecutionState();
193 virtual bool executionState()
const;
197 virtual void awaitingTask();
200 virtual bool isAwatingTask()
const;
210 virtual void removeTrigger(
const DtUUID&);
213 virtual void renameTrigger(
const DtUUID&,
const DtString& newName);
229 virtual void pushExecutionStack();
233 virtual void suspendExecutionStack();
242 virtual void popExecutionStack(
bool forceStep =
false);
252 virtual bool taskRequestPending()
const;
255 virtual void setTaskRequestPending(
bool newValue =
true);
264 virtual void clearVariables();
275 virtual bool executeTask(
const DtSimTask& taskToSend)
const;
280 virtual bool executeSetDataRequest(
296 virtual bool evaluateConditional(
const DtSimCondExpr* condExpr)
const;
305 virtual void empty();
308 virtual bool isEmpty()
const;
311 virtual DtList* triggerList();
312 virtual const DtList* triggerList()
const;
315 virtual void addTriggerToExecute(
DtSimTrigger* trigger);
317 virtual void removeTriggerFromPendingExecution(
DtSimTrigger* trigger);
320 virtual DtList* executionStack();
321 virtual const DtList* executionStack()
const;
325 virtual bool validatePlan();
332 virtual void setCurrentStmt(
const DtStmtIndex& nextStatement);
335 virtual void setCurrentStatementExecutionId(
int id);
338 virtual bool isComplete()
const;
342 virtual void setIsComplete(
bool completeFlag =
true);
346 virtual void setLastStatementExecuted(
bool);
347 virtual bool lastStatementExecuted()
const;
352 virtual bool isAbandoned()
const;
355 virtual void setIsAbandoned(
bool v);
358 virtual bool isExecuting()
const;
364 virtual void reset();
370 virtual void abandonPlan(
bool sendWaitTask);
375 virtual void restartPlan(
bool sendWaitTask =
true);
381 virtual bool translateIndex(
DtStmtIndex& stmtIndex)
const;
386 virtual void translateIndices(DtList& stmtIndexList)
const;
394 virtual void mergeEditedPlanWith(
const DtPlan& oldPlan);
403 virtual void putSelf(std::string& fp,
int indentLevel = 0,
409 virtual void getSelf(DtlObjPtr args,
415 virtual void addStatementChangedCallback(
419 virtual void removeStatementChangedCallback(
423 virtual void addTickCallback(
427 virtual void removeTickCallback(
434 virtual void pushExecutingTrigger(
int);
435 virtual void popExecutingTrigger();
436 virtual int executingTriggerStatementId()
const;
439 virtual std::vector<int> executingTriggerStatementIds()
const;
442 virtual DtUUID executingTriggerName()
const;
445 virtual std::vector<DtUUID> executingTriggerNames()
const;
448 virtual std::vector<DtUUID> registeredTriggerNames()
const;
451 virtual bool triggerIsRunning(
const DtUUID&)
const;
454 virtual bool triggerIsRegistered(
const DtUUID&)
const;
457 virtual void removeScheduledTriggers(
const DtUUID&);
460 virtual void mapRegisteredTriggersToTriggerStatements();
468 virtual void setContinuePlan(
bool);
474 virtual std::vector<DtReaderWriter*> substituteVariablesIn(
DtReaderWriter*)
const;
477 virtual std::vector<DtReaderWriter*> substitutedValues(
const DtReaderWriter*)
const;
486 virtual void removeTopExecutionStack();
494 virtual void invokeSkipTaskCallbacks();
499 virtual void processAwaitingTask();
503 virtual void createMainBlock();
508 virtual void copyMainBlock(
const DtPlan& otherPlan);
513 virtual void copyAndTranslateExecutionStack(
const DtPlan& otherPlan);
518 virtual void copyAndTranslateTriggers(
const DtPlan& otherPlan);
522 virtual void curStmtChanged();
526 virtual void continuePlan();
534 virtual void stepStatement(
bool forceStep =
false);
539 virtual void executeStatement();
543 virtual void clearTriggerList();
548 virtual void clearExecutionStack();
551 virtual void emtpyExecutionStack();
557 virtual void mapPendingTriggersToPendingTriggerDataList();
562 virtual void mapOldExecutionCursorStackToExecutionStack(
const DtRwIntegerList& executionCursorStack);
566 virtual void mapPendingTriggerDataToPendingTriggers();
571 virtual int statementIdToCursor(
DtStmtIdType statementId);
577 virtual void createTriggersFromWhenBlocks();
578 virtual void createTriggersFromWhenBlocks(
DtSimBlock*);
586 virtual void mapExecutionStackToExecutingTriggers();
673 namespace DtBufferSerialize
bool operator==(const DtReaderWriter &) const
Equivalence operator.
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
DtPlanStatus myLastSentStatus
The status that was last sent out though the curretStatement callbacks.
Definition: plan.h:660
class DtPlanBlock:
Definition: planBlock.h:22
An abstract interface for the execution of a plan.
Definition: planExecutor.h:32
DtList myExecutionStack
The top of the execution stack is the Plan's current statement (fetched with currentStmt()).
Definition: plan.h:605
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:599
DtRwBoolean myTaskRequestPending
The TaskRequestPending flag is set to true when an Entity requests a new task, and is cleared when a ...
Definition: plan.h:595
DtList myPendingTriggers
A list of all registered DtSimTriggers.
Definition: plan.h:620
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
bool isAbandoned
Definition: plan.h:58
const DtRwTriggersList & triggers() const
Returns plans triggers.
Definition: plan.h:222
DtRwTriggersList myTriggers
List of all possible triggers in the plan.
Definition: plan.h:643
class DtRwTriggerDataList:
Definition: rwTriggerDataList.h:27
DtRwInt myOrdinal
Definition: plan.h:666
Iterator for iterating over a DtRwIntrusiveList of DtSimStatements and all its descendants (as repres...
Definition: recursiveSimBlockIterator.h:32
Description: Readable, Writable uuid string.
Definition: rwUUID.h:419
ReaderWriter object that maintains a list of reader-writer variable bindings.
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.
Definition: setDataRequest.h:40
Instances of DtRwIntegerList are lists of readable, writeable integers (DtRwInts).
Definition: rwIntegerList.h:19
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
DtPlanExecutor * myPlanExecutor
Definition: plan.h:657
bool myContinuePlan
Definition: plan.h:655
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:653
void(* DtStmtTickCallbackFcn)(DtPlan &plan, void *usr)
Definition: plan.h:65
DtSimCommand is an abstract base class from which commands can derive.
Definition: simCommand.h:32
DT_DLL_readerWriter char * encode(const DtFilename &val, char *buffer)
Serializes the provided value val into buffer.
bool myExecutionIsEnabled
Flag indication whether execution is enabled (can we start or advance through plan statements...
Definition: plan.h:647
DtCallbackList< const DtPlan & > myStatementChangedCbs
A list of all the DtCurrentStatementChangedCallbackFcn callbacks.
Definition: plan.h:623
DtNoArgumentCallbackList myStatementSkipTaskCbs
A list of all the DtStmtTickCallbackFcn callbacks.
Definition: plan.h:631
virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
Top level to read itself from an input stream.
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.
class DtTriggerBlock:
Definition: triggerBlock.h:26
class DtPlan:
Definition: plan.h:91
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:49
bool myWantsExecutionStateEnabled
Definition: plan.h:648
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:627
DtRwBoolean myLastStatementExecuted
myLastStatementExecuted makes sure that nothing will get executed in the plan after triggers have bee...
Definition: plan.h:613
QuickLaunchFlags
Definition: plan.h:94
Description: Readable, Writable bool.
Definition: rwBoolean.h:26
class DtSimTrigger:
Definition: simTrigger.h:28
const DtRwVariableBindings & variables() const
Returns plan variables.
Definition: plan.h:258
The DtRwPlanVariable is a base class that minimally implements a plan variable.
Definition: rwPlanVariable.h:18
class DtSimStatement:
Definition: simStatement.h:35
std::vector< DtUUID > registeredTriggerNames
Definition: plan.h:54
A version of DtRwList that contains a homogeneous list of a templated RW type.
Definition: rwTemplatedList.h:26
DtSimTask is an abstract base class from which real tasks can derive.
Definition: simTask.h:31
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
void(* DtCurrentStatementChangedCallbackFcn)(const DtPlan &plan, void *usr)
Definition: plan.h:62
DtRwIntegerList myExecutingTriggers
Definition: plan.h:668
void(* DtSkipTaskCallbackFcn)(void *usr)
Definition: plan.h:68
DtRwBoolean myAbandoned
True if this plan has been abandoned.
Definition: plan.h:617
DtRwVariableBindings myPlanVariables
Definition: plan.h:670
#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
Definition: DtTacticalGraphicUtilities.h:57
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:58
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:664
bool myAwaitingTaskFlag
Flag indicating we've received an awaiting task request.
Definition: plan.h:651
std::vector< DtUUID > executingTriggerNames
Definition: plan.h:53
DtRwTriggerDataList myPendingTriggerDataList
Reader-writer members used to hold checkpoint information about the plan.
Definition: plan.h:639
static const DtFilename & appPath()
Gets the current working directory.
int currentStatementId
Definition: plan.h:55
DtRwBoolean myIsComplete
myIsComplete Disables awaitingTask() and causes it to emit continuous Wait tasks. ...
Definition: plan.h:609
DtRwString myQuickLaunchIcon
Definition: plan.h:665
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