VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
scenarioEventManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 #pragma once
9 
13 #include <vrfutil/rwUUID.h>
14 #include <boost/unordered_map.hpp>
15 
16 class DtSimManager;
17 class DtSimMessage;
19 
22 
24 {
26  bool isEnabled;
27 };
29 
33 {
34 public:
37 
39  virtual ~DtScenarioEventManager();
40 
41 private:
44 
46  DtScenarioEventManager & operator=(const DtScenarioEventManager & orig);
47 
48 public:
49  virtual DtSimManager* simManager() const;
50 
52  virtual bool isScenarioEvent(const DtVrfObject* o) const;
53  virtual bool isScenarioEvent(const DtUUID& o) const;
54 
56 
57  virtual void addScenarioEventStartedCallback(DtScenarioEventManagerCallbackFcn fcn, void* usr);
58  virtual void removeScenarioEventStartedCallback(DtScenarioEventManagerCallbackFcn fcn, void* usr);
60 
62 
63  virtual void addScenarioEventEnabledStateChangedCallback(DtScenarioEventManagerEnabledStateChangedCallbackFcn fcn, void* usr);
64  virtual void removeScenarioEventEnabledStateChangedCallback(DtScenarioEventManagerEnabledStateChangedCallbackFcn fcn, void* usr);
66 
68 
69  virtual void addScenarioEventStoppedCallback(DtScenarioEventManagerCallbackFcn fcn, void* usr);
70  virtual void removeScenarioEventStoppedCallback(DtScenarioEventManagerCallbackFcn fcn, void* usr);
72 
74  static void scenarioEventMessageCallback(DtSimMessage*, void* usr);
75  virtual void processScenarioEventMessageCallback(DtSimMessage*);
76 
78  virtual void setScenarioEventEnabled(const DtUUID&, bool, bool sendMessageIfNotLocal = true);
79 
81  virtual bool scenarioEventIsEnabled(const DtUUID&);
82 
85  virtual void startScenarioEvent(const DtUUID&, bool sendMessageIfNotLocal = true);
86 
89  virtual void stopScenarioEvent(const DtUUID&, bool sendMessageIfNotLocal = true);
90 
92  virtual bool scenarioEventInProgress(const DtUUID&) const;
93 
95  virtual bool scenarioEventIsConcluded(const DtUUID&) const;
96 
98  virtual bool scenarioEventConcluded(const DtUUID&) const;
99 
101  virtual const DtRwScenarioEvent& scenarioEvent(const DtUUID&);
102 
104  virtual const DtRwScenarioEvent& scenarioEvent(const DtVrfObject*);
105 
107  virtual double simulationStartTime(const DtUUID&) const;
108 
110  virtual double simulationEndTime(const DtUUID&) const;
111 
113  static void scenarioEventAdded(DtVrfObject*, void*);
114  virtual void processScenarioEventAdded(DtVrfObject*);
115 
117  static void scenarioEventRemoved(DtVrfObject*, void*);
118  virtual void processScenarioEventRemoved(DtVrfObject*);
119 
121  virtual void setOrdinalOrder(const DtUUID& uniqueId, int ordinal);
122 
124  virtual void resetScenarioEvent(const DtUUID& uniqueId, bool sendMessageIfNotLocal = true);
125 
127  virtual void setTriggerStatus(const DtUUID& uniqueId, int);
128 
130  virtual void merge(DtScenarioEventManager*, const DtString& deconflictingName);
131 
133  {
136  };
137 
138  typedef std::map<DtVrfObject*, EventUpdateInformation> EventsThatNeedUpdate;
139 
140  const EventsThatNeedUpdate& eventsThatNeedUpdate() const
141  {
142  return myEventsThatNeedUpdate;
143  }
144 
145 protected:
147  virtual void startUpEvent(const DtUUID& uniqueId);
148 
150  virtual void stopEvent(const DtUUID& uniqueId);
151 
154  virtual void updateEnabledStatesLinkedTo(const DtUUID&);
155 
157  virtual DtUUID scenarioEventUUIDBasedOf(const DtUUID&) const;
158 
159  static void vrfObjectModifiedViaMessageCallback(DtVrfObject* o, void*);
160  virtual void processObjectModifiedViaMessage(DtVrfObject* o);
161 
163  virtual bool isThisObjectLinkedToMe(const DtUUID& source, const DtUUID& dest) const;
164 
165 protected:
167 
171 
174 
178  {
179  ScenarioEventInformation() : scenarioEvent(0), rwEvent(""), curLinkedTo(DtUUID::nullUUID()) {};
180 
181  DtVrfObject* scenarioEvent;
185  };
186 
187  typedef std::map<DtUUID, ScenarioEventInformation> ScenarioEvents;
189 
190  typedef std::map<DtUUID, DtUUID> ObjectEvents;
192 
194 
196 };

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)