VR-Forces 4.7 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 
20 const char DtWhenStmtTypeName[] = "When";
21 
22 class DtRwCondExpr;
23 class DtTriggerBlock;
24 
34 #include "vrfplan/vrfplanDefines.h"
35 
36 class DtTriggerStmt;
37 
39 {
40 public:
44 
45  void addTriggerStatement(DtTriggerStmt*);
46  void removeTriggerStatement(DtTriggerStmt*);
47  bool hasTriggerStatements() const { return (myTriggerStatements.size() != 0); };
48 
49  virtual DtString markingText();
50  virtual DtUUIDMarkingTextProvider* clone() const;
51 
52 protected:
53  std::set<DtTriggerStmt*> myTriggerStatements;
55 };
56 
58 {
59 public:
60 
62  DtTriggerStmt(DtReaderWriterRegistry* parentRegistry = NULL);
63 
65  DtTriggerStmt(const DtTriggerStmt& orig,
66  DtReaderWriterRegistry* parentRegistry = NULL);
67 
69  virtual ~DtTriggerStmt();
70 
73 
75 
76  virtual DtSimStatement* clone(
77  DtReaderWriterRegistry* parentRegistry = NULL) const;
78 
80  virtual int type() const;
81 
84  virtual void execute(DtPlan& planContext);
85 
87  virtual int subBlockCount() const;
89  virtual DtSimBlock* subBlock(int index);
90 
100  virtual DtString stringRep(int subBlockIndex = DtSR_STMT) const;
101 
105  virtual void exitFromTrigger(DtPlan& planContext);
106 
107  virtual const DtUUID& triggerUUID() const;
108  virtual void setTriggerUUID(const DtUUID&);
109 
111  virtual DtString triggerName() const;
112 
113  virtual const DtSimCondExpr* condExpr() const;
114  virtual void setCondExpr(const DtSimCondExpr* arg);
115 
121  virtual const DtString& option() const;
123  virtual void setOption(const DtString& arg);
124 
125  virtual DtTriggerBlock* triggerBlock() const;
126  virtual void setTriggerBlock(DtTriggerBlock* arg);
127 
129  virtual void setReregisterTrigger(bool);
130  virtual bool reregisterTrigger() const;
131 
138  virtual int netRepSize() const;
139 
141  virtual bool setFromNet(const char* contentBuffer,
142  unsigned contentSize);
143 
155  virtual bool setToNet();
156 
158  virtual void upgradeTriggerUUID(const boost::unordered_map<DtUUID, DtUUID>&);
159 
161  virtual void reset();
162 
163 protected:
166  static void addTriggerMarkingTextMapping(DtTriggerStmt*);
167  static void removeTriggerMarkingTextMapping(DtTriggerStmt*);
168 
169  virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths& searchPaths,
170  const DtVariableBindingsList& variableBindings);
171 
173  static DtString nextDefaultTriggerMarkingText();
174 
175 public:
176 
177  static DtSimStatement * creator(DtReaderWriterRegistry* parentRegistry = NULL);
178 
179 protected:
180 
181  virtual bool compare(DtSimStatement*);
182 
183 protected:
189 
190  typedef boost::unordered_map<DtUUID, DtTriggerStatementUUIDMarkingTextProvider*> NamedTriggers;
191 
193 };

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)