VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
triggerStmt.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 <readerWriter/rwString.h>
12 #include <readerWriter/rwBoolean.h>
13 #include "vrfutil/simCondExpr.h"
14 #include "vrfutil/rwUUID.h"
15 #include "vrfplan/rwCondExpr.h"
17 
18 #include <boost/unordered_map.hpp>
19 #include <set>
20 
21 const char DtWhenStmtTypeName[] = "When";
22 
23 class DtRwCondExpr;
24 class DtTriggerBlock;
25 
35 #include "vrfplan/vrfplanDefines.h"
36 
37 class DtTriggerStmt;
38 
40 {
41 public:
45 
46  void addTriggerStatement(DtTriggerStmt*);
47  void removeTriggerStatement(DtTriggerStmt*);
48  bool hasTriggerStatements() const { return (myTriggerStatements.size() != 0); };
49 
50  virtual DtString markingText();
51  virtual DtUUIDMarkingTextProvider* clone() const;
52 
53 protected:
54  std::set<DtTriggerStmt*> myTriggerStatements;
56 };
57 
59 {
60 public:
61 
63  DtTriggerStmt(DtReaderWriterRegistry* parentRegistry = NULL);
64 
66  DtTriggerStmt(const DtTriggerStmt& orig,
67  DtReaderWriterRegistry* parentRegistry = NULL);
68 
70  virtual ~DtTriggerStmt();
71 
74 
76 
77  virtual DtSimStatement* clone(
78  DtReaderWriterRegistry* parentRegistry = NULL) const;
79 
81  virtual int type() const;
82 
85  virtual void execute(DtPlan& planContext);
86 
88  virtual int subBlockCount() const;
90  virtual DtSimBlock* subBlock(int index);
91 
101  virtual DtString stringRep(int subBlockIndex = DtSR_STMT) const;
102 
106  virtual void exitFromTrigger(DtPlan& planContext);
107 
108  virtual const DtUUID& triggerUUID() const;
109  virtual void setTriggerUUID(const DtUUID&);
110 
112  virtual DtString triggerName() const;
113 
114  virtual const DtSimCondExpr* condExpr() const;
115  virtual void setCondExpr(const DtSimCondExpr* arg);
116 
122  virtual const DtString& option() const;
124  virtual void setOption(const DtString& arg);
125 
126  virtual DtTriggerBlock* triggerBlock() const;
127  virtual void setTriggerBlock(DtTriggerBlock* arg);
128 
130  virtual void setReregisterTrigger(bool);
131  virtual bool reregisterTrigger() const;
132 
139  virtual int netRepSize() const;
140 
142  virtual bool setFromNet(const char* contentBuffer,
143  unsigned contentSize);
144 
156  virtual bool setToNet();
157 
159  virtual void upgradeTriggerUUID(const boost::unordered_map<DtUUID, DtUUID>&);
160 
162  virtual void reset();
163 
164 protected:
167  static void addTriggerMarkingTextMapping(DtTriggerStmt*);
168  static void removeTriggerMarkingTextMapping(DtTriggerStmt*);
169 
170  virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths& searchPaths,
171  const DtVariableBindingsList& variableBindings);
172 
174  static DtString nextDefaultTriggerMarkingText();
175 
176 public:
177 
178  static DtSimStatement * creator(DtReaderWriterRegistry* parentRegistry = NULL);
179 
180 protected:
181 
182  virtual bool compare(DtSimStatement*);
183 
184 protected:
190 
191  typedef boost::unordered_map<DtUUID, DtTriggerStatementUUIDMarkingTextProvider*> NamedTriggers;
192 
194 };
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
virtual void setCondExpr(const DtSimCondExpr *arg)=0
Sets the conditional expression used to evaluate the wait until.
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.
bool hasTriggerStatements() const
Definition: triggerStmt.h:48
DtString myDefaultMarkingText
Definition: triggerStmt.h:55
static NamedTriggers theNamedTriggers
Definition: triggerStmt.h:193
Definition: triggerStmt.h:39
virtual void execute(DtPlan &planContext)=0
Execute the current statement and make any changes to the Plan state as appropriate.
Description: Readable, Writable DtString Variable substitutions are done on this object when it is re...
Definition: rwString.h:20
DtRwBoolean myReregisterTrigger
Definition: triggerStmt.h:189
Definition: readerWriterRegistry.h:39
Description: Readable, Writable uuid string.
Definition: rwUUID.h:419
class DtSimBlock:
Definition: simBlock.h:27
std::set< DtTriggerStmt * > myTriggerStatements
Definition: triggerStmt.h:54
virtual void reset()
Called when the plan is reset, will iterate over all statements to reset as well. ...
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
class DtSimConditionalStatement:
Definition: simConditionalStatement.h:25
DtTriggerBlock * myBlock
Definition: triggerStmt.h:188
virtual DtSimBlock * subBlock(int index)
Get a pointer to any particular block nested inside this statement.
DtRwCondExpr myCondExpr
Definition: triggerStmt.h:186
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
virtual bool setFromNet(const char *contentBuffer, unsigned contentSize)
Extracts statement Id from buffer.
virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
Top level to read itself from an input stream.
class DtTriggerBlock:
Definition: triggerBlock.h:26
virtual int netRepSize() const
Returns sizeof(DtNetSimStatement).
class DtPlan:
Definition: plan.h:91
DtSimCondExpr is an abstract base class representing various Conditional Expressions used by the Plan...
Definition: simCondExpr.h:49
DtRwUUID myTriggerUUID
Definition: triggerStmt.h:185
Description: Readable, Writable bool.
Definition: rwBoolean.h:26
class DtRwCondExpr:
Definition: rwCondExpr.h:24
class DtSimStatement:
Definition: simStatement.h:35
virtual bool setToNet()
Casts myNetRep to DtNetSimStatement* and fills in structure.
virtual DtString markingText()=0
#define DT_DLL_vrfplan
This file is used to determine how to build.
Definition: vrfplanDefines.h:28
const char DtWhenStmtTypeName[]
Definition: triggerStmt.h:21
virtual DtUUIDMarkingTextProvider * clone() const =0
Definition: triggerStmt.h:58
virtual void upgradeTriggerUUID(const boost::unordered_map< DtUUID, DtUUID > &)
For those statements that need to, map from the old to new trigger UUID.
boost::unordered_map< DtUUID, DtTriggerStatementUUIDMarkingTextProvider * > NamedTriggers
Definition: triggerStmt.h:191
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).
To allow for faster marking text lookups, the DtUUIDMarkingTextProvider class wraps an object that wi...
Definition: rwUUID.h:38
DtRwString myOption
Definition: triggerStmt.h:187
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 Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)