VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ifStmt.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2018 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
8 
9 #pragma once
10 
11 #include "vrfutil/simCondExpr.h"
12 #include "vrfplan/rwCondExpr.h"
14 #include <vlutil/vlNetTypes.h>
15 
16 const char DtIfStmtTypeName[] = "If";
17 
18 class DtRwCondExpr;
19 class DtIfBlock;
20 
29 #include "vrfplan/vrfplanDefines.h"
31 {
32 public:
33 
36 
38  DtIfStmt(DtReaderWriterRegistry* parentRegistry = NULL);
39 
41  DtIfStmt(const DtIfStmt& orig,
42  DtReaderWriterRegistry* parentRegistry = NULL);
43 
45  virtual ~DtIfStmt();
46 
48  DtIfStmt& operator=(const DtIfStmt& orig);
49 
51 
52  virtual DtSimStatement* clone(
53  DtReaderWriterRegistry* parentRegistry = NULL) const;
54 
56  virtual int type() const;
57 
60  virtual void execute(DtPlan& planContext);
61 
64  virtual void step(DtPlan& planContext, bool forceStep = false);
65 
67  virtual int subBlockCount() const;
69  virtual DtSimBlock* subBlock(int index);
70 
81  virtual DtString stringRep(int subBlockIndex = DtSR_STMT) const;
82 
85  virtual void exitFromIf(DtPlan& planContext);
86 
88  virtual const DtSimCondExpr* condExpr() const;
89  virtual void setCondExpr(const DtSimCondExpr* arg);
90 
92  virtual DtIfBlock* thenBlock() const;
93  virtual void setThenBlock(DtIfBlock* arg);
94 
96  virtual DtIfBlock* elseBlock() const;
97  virtual void setElseBlock(DtIfBlock* arg);
98 
110  virtual int netRepSize() const;
111 
113  virtual bool setFromNet(const char* contentBuffer,
114  unsigned contentSize);
115 
127  virtual bool setToNet();
128 
130  virtual void upgradeTriggerUUID(const boost::unordered_map<DtUUID, DtUUID>&);
131 
133  virtual void reset();
134 
135 public:
136 
137  static DtSimStatement * creator(DtReaderWriterRegistry* parentRegistry = NULL);
138 
139 protected:
140  virtual bool compare(DtSimStatement* rhs);
141 
142 protected:
143 
145 
148  bool myResult;
149 
152 };
virtual void setCondExpr(const DtSimCondExpr *arg)=0
Sets the conditional expression used to evaluate the wait until.
const char DtIfStmtTypeName[]
Definition: ifStmt.h:16
virtual DtSimStatement * clone(DtReaderWriterRegistry *parentRegistry=NULL) const =0
virtual copy constructor A typical clone function.
virtual int subBlockCount() const
Get the number of blocks nested inside this statement.
class DtIfBlock:
Definition: ifBlock.h:28
DtIfBlock * myElseBlock
Definition: ifStmt.h:151
virtual void step(DtPlan &planContext, bool forceStep=false)
Asks the statement to step the context DtPlan to the next statement.
virtual void execute(DtPlan &planContext)=0
Execute the current statement and make any changes to the Plan state as appropriate.
Definition: readerWriterRegistry.h:39
class DtSimBlock:
Definition: simBlock.h:29
virtual void reset()
Called when the plan is reset, will iterate over all statements to reset as well. ...
class DtSimConditionalStatement:
Definition: simConditionalStatement.h:25
virtual DtSimBlock * subBlock(int index)
Get a pointer to any particular block nested inside this statement.
class DtIfStmt:
Definition: ifStmt.h:30
DtRwCondExpr myCondExpr
Definition: ifStmt.h:144
virtual bool setFromNet(const char *contentBuffer, unsigned contentSize)
Extracts statement Id from buffer.
DtIfBlock * myThenBlock
Definition: ifStmt.h:150
bool myResult
myResult temporarily holds the results of an evaluation of myCondExpr between the &quot;execute&quot; call and ...
Definition: ifStmt.h:148
virtual int netRepSize() const
Returns sizeof(DtNetSimStatement).
class DtPlan:
Definition: plan.h:90
DtSimCondExpr is an abstract base class representing various Conditional Expressions used by the Plan...
Definition: simCondExpr.h:49
class DtRwCondExpr:
Definition: rwCondExpr.h:24
class DtSimStatement:
Definition: simStatement.h:41
virtual bool setToNet()
Casts myNetRep to DtNetSimStatement* and fills in structure.
#define DT_DLL_vrfplan
This file is used to determine how to build.
Definition: vrfplanDefines.h:28
virtual void upgradeTriggerUUID(const boost::unordered_map< DtUUID, DtUUID > &)
For those statements that need to, map from the old to new trigger UUID.
virtual const DtSimCondExpr * condExpr() const =0
Returns the conditional expression used to evaluate the wait until.
DtSimStatement & operator=(const DtSimStatement &orig)
Assignment operator (protected because this is an abstract base class).
virtual int type() const =0
Returns the type of statement Type (defined in simStmtTypes.h)
virtual bool compare(DtSimStatement *)
Called from isSameStatement.
virtual DtString stringRep(int subBlockIndex=DtSR_STMT) const =0
Get a readable string representation of this statement.

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)