13 #include <vlutil/vlString.h>
14 #include <vlutil/vlList.h>
18 #include <vl/hostStructs.h>
70 (
const DtUUID& name,
const std::vector<DtSimStatement*>& statements,
bool append,
96 IsQuickLaunch = 0x00000001,
97 ShowOnQuickLaunchToolbar = 0x00000002,
136 virtual void addVariables();
153 virtual const DtUUID& planName()
const;
154 virtual void setPlanName(
const DtUUID& name);
155 virtual bool planNameSpecified()
const;
161 virtual void setIsQuickLaunch(
bool);
162 virtual bool isQuickLaunch()
const;
165 virtual void setShowOnQuickLaunchToolbar(
bool);
166 virtual bool showOnQuickLaunchToolbar()
const;
171 virtual void setIsLaunched(
bool);
172 virtual bool isLaunched()
const;
175 virtual void setQuickLaunchIcon(
const DtString&);
176 virtual const DtString& quickLaunchIcon()
const;
179 virtual void setOrdinal(
int);
180 virtual int ordinal()
const;
190 virtual void enableExecutionState();
191 virtual void disableExecutionState();
192 virtual bool executionState()
const;
196 virtual void awaitingTask();
199 virtual bool isAwatingTask()
const;
209 virtual void removeTrigger(
const DtUUID&);
212 virtual void renameTrigger(
const DtUUID&,
const DtString& newName);
228 virtual void pushExecutionStack();
232 virtual void suspendExecutionStack();
241 virtual void popExecutionStack(
bool forceStep =
false);
251 virtual bool taskRequestPending()
const;
254 virtual void setTaskRequestPending(
bool newValue =
true);
263 virtual void clearVariables();
274 virtual bool executeTask(
const DtSimTask& taskToSend)
const;
279 virtual bool executeSetDataRequest(
295 virtual bool evaluateConditional(
const DtSimCondExpr* condExpr)
const;
304 virtual void empty();
307 virtual bool isEmpty()
const;
310 virtual DtList* triggerList();
311 virtual const DtList* triggerList()
const;
314 virtual void addTriggerToExecute(
DtSimTrigger* trigger);
316 virtual void removeTriggerFromPendingExecution(
DtSimTrigger* trigger);
319 virtual DtList* executionStack();
320 virtual const DtList* executionStack()
const;
324 virtual bool validatePlan();
331 virtual void setCurrentStmt(
const DtStmtIndex& nextStatement);
334 virtual void setCurrentStatementExecutionId(
int id);
337 virtual bool isComplete()
const;
341 virtual void setIsComplete(
bool completeFlag =
true);
345 virtual void setLastStatementExecuted(
bool);
346 virtual bool lastStatementExecuted()
const;
351 virtual bool isAbandoned()
const;
354 virtual void setIsAbandoned(
bool v);
357 virtual bool isExecuting()
const;
363 virtual void reset();
369 virtual void abandonPlan(
bool sendWaitTask);
374 virtual void restartPlan(
bool sendWaitTask =
true);
380 virtual bool translateIndex(
DtStmtIndex& stmtIndex)
const;
385 virtual void translateIndices(DtList& stmtIndexList)
const;
393 virtual void mergeEditedPlanWith(
const DtPlan& oldPlan);
402 virtual void putSelf(std::string& fp,
int indentLevel = 0,
408 virtual void getSelf(DtlObjPtr args,
414 virtual void addStatementChangedCallback(
418 virtual void removeStatementChangedCallback(
425 virtual void pushExecutingTrigger(
int);
426 virtual void popExecutingTrigger();
427 virtual int executingTriggerStatementId()
const;
430 virtual std::vector<int> executingTriggerStatementIds()
const;
433 virtual DtUUID executingTriggerName()
const;
436 virtual std::vector<DtUUID> executingTriggerNames()
const;
439 virtual std::vector<DtUUID> registeredTriggerNames()
const;
442 virtual bool triggerIsRunning(
const DtUUID&)
const;
445 virtual bool triggerIsRegistered(
const DtUUID&)
const;
448 virtual void removeScheduledTriggers(
const DtUUID&);
451 virtual void mapRegisteredTriggersToTriggerStatements();
459 virtual void setContinuePlan(
bool);
465 virtual std::vector<DtReaderWriter*> substituteVariablesIn(
DtReaderWriter*)
const;
468 virtual std::vector<DtReaderWriter*> substitutedValues(
const DtReaderWriter*)
const;
476 virtual void processAwaitingTask();
480 virtual void createMainBlock();
485 virtual void copyMainBlock(
const DtPlan& otherPlan);
490 virtual void copyAndTranslateExecutionStack(
const DtPlan& otherPlan);
495 virtual void copyAndTranslateTriggers(
const DtPlan& otherPlan);
499 virtual void curStmtChanged();
503 virtual void continuePlan();
511 virtual void stepStatement(
bool forceStep =
false);
516 virtual void executeStatement();
520 virtual void clearTriggerList();
525 virtual void clearExecutionStack();
528 virtual void emtpyExecutionStack();
534 virtual void mapPendingTriggersToPendingTriggerDataList();
539 virtual void mapOldExecutionCursorStackToExecutionStack(
const DtRwIntegerList& executionCursorStack);
543 virtual void mapPendingTriggerDataToPendingTriggers();
548 virtual int statementIdToCursor(
DtStmtIdType statementId);
554 virtual void createTriggersFromWhenBlocks();
555 virtual void createTriggersFromWhenBlocks(
DtSimBlock*);
563 virtual void mapExecutionStackToExecutingTriggers();
642 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:629
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:582
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:576
DtRwBoolean myTaskRequestPending
The TaskRequestPending flag is set to true when an Entity requests a new task, and is cleared when a ...
Definition: plan.h:572
DtList myPendingTriggers
A list of all registered DtSimTriggers.
Definition: plan.h:597
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:63
const DtRwTriggersList & triggers() const
Returns plans triggers.
Definition: plan.h:221
DtRwTriggersList myTriggers
List of all possible triggers in the plan.
Definition: plan.h:612
class DtRwTriggerDataList:
Definition: rwTriggerDataList.h:27
DtRwInt myOrdinal
Definition: plan.h:635
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:29
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:626
bool myContinuePlan
Definition: plan.h:624
File: simMsg.h.
Definition: simMessage.h:35
Description: Readable, Writable int.
Definition: rwInt.h:25
std::vector< int > executingTriggerStatementIds
Definition: plan.h:57
void(* DtPlanCallbackFcn)(const DtUUID &name, const std::vector< DtSimStatement * > &statements, bool append, void *usr)
Definition: plan.h:70
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
bool isExecuting
Definition: plan.h:62
DtRwUUID myPlanName
Definition: plan.h:622
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:616
DtCallbackList< const DtPlan & > myStatementChangedCbs
A list of all the DtCurrentStatementChangedCallbackFcn callbacks.
Definition: plan.h:600
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:80
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:90
void(* DtPlanStatementCallbackFcn)(const DtUUID &name, DtPlanStatus planStatus, void *usr)
Definition: plan.h:74
DtSimCondExpr is an abstract base class representing various Conditional Expressions used by the Plan...
Definition: simCondExpr.h:49
bool myWantsExecutionStateEnabled
Definition: plan.h:617
Small container class that holds the status of a running DtPlan.
Definition: plan.h:50
static const DtVariableBindingsList & nullVariableReference()
class DtIfMultiplePlanResponse:
Definition: ifMultiplePlanResponse.h:32
DtRwBoolean myLastStatementExecuted
myLastStatementExecuted makes sure that nothing will get executed in the plan after triggers have bee...
Definition: plan.h:590
QuickLaunchFlags
Definition: plan.h:93
Description: Readable, Writable bool.
Definition: rwBoolean.h:26
class DtSimTrigger:
Definition: simTrigger.h:28
const DtRwVariableBindings & variables() const
Returns plan variables.
Definition: plan.h:257
The DtRwPlanVariable is a base class that minimally implements a plan variable.
Definition: rwPlanVariable.h:18
class DtSimStatement:
Definition: simStatement.h:41
std::vector< DtUUID > registeredTriggerNames
Definition: plan.h:59
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:33
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
void(* DtCurrentStatementChangedCallbackFcn)(const DtPlan &plan, void *usr)
Definition: plan.h:67
DtRwIntegerList myExecutingTriggers
Definition: plan.h:637
DtRwBoolean myAbandoned
True if this plan has been abandoned.
Definition: plan.h:594
DtRwVariableBindings myPlanVariables
Definition: plan.h:639
#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)
Definition: simInterfaceContent.h:45
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:77
DtRwInt myQuickLaunchFlags
Additional data used to indicate if this is a quick launch plan and the icon associated with it...
Definition: plan.h:633
bool myAwaitingTaskFlag
Flag indicating we've received an awaiting task request.
Definition: plan.h:620
std::vector< DtUUID > executingTriggerNames
Definition: plan.h:58
DtRwTriggerDataList myPendingTriggerDataList
Reader-writer members used to hold checkpoint information about the plan.
Definition: plan.h:608
static const DtFilename & appPath()
Gets the current working directory.
int currentStatementId
Definition: plan.h:60
DtRwBoolean myIsComplete
myIsComplete Disables awaitingTask() and causes it to emit continuous Wait tasks. ...
Definition: plan.h:586
DtRwString myQuickLaunchIcon
Definition: plan.h:634
Instances of DtRwTriggersList are lists of readable, writeable when statements (triggers) The list co...
Definition: rwTriggersList.h:21
Definition: vrfMessageInterface.h:46
bool isComplete
Definition: plan.h:61
DtBoost::shared_ptr< DtSimCommandContext > DtSimCommandContextPtr
Definition: simCommandStmt.h:28