VR-Forces 4.10 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(const DtVrfObject*, void*);
114  virtual void processScenarioEventAdded(const DtVrfObject*);
115 
117  static void scenarioEventRemoved(const DtVrfObject*, void*);
118  virtual void processScenarioEventRemoved(const 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<const DtVrfObject*, EventUpdateInformation> EventsThatNeedUpdate;
139 
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(const DtVrfObject* o, void*);
160  virtual void processObjectModifiedViaMessage(const 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  const DtVrfObject* scenarioEvent;
185  };
186 
187  typedef std::map<DtUUID, ScenarioEventInformation> ScenarioEvents;
189 
190  typedef std::map<DtUUID, DtUUID> ObjectEvents;
192 
194 
196 };
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
Definition: scenarioEventManager.h:132
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
DtCallbackList< DtEnableStateChanged > ScenarioEventEnableStateChangedCallbacks
Definition: scenarioEventManager.h:172
ScenarioEventCallbacks myScenarioEventStoppedCallbacks
Definition: scenarioEventManager.h:170
DtRwScenarioEvent::PredecessorList linkList
Definition: scenarioEventManager.h:135
DtCallbackList< DtEnableStateChanged >::DtCallbackFunctionType DtScenarioEventManagerEnabledStateChangedCallbackFcn
Definition: scenarioEventManager.h:28
std::vector< PredecessorItem > PredecessorList
Definition: rwScenarioEvent.h:160
bool isEnabled
Definition: scenarioEventManager.h:26
std::map< const DtVrfObject *, EventUpdateInformation > EventsThatNeedUpdate
Definition: scenarioEventManager.h:138
DtRwScenarioEvent * scenarioEvent
Definition: scenarioEventManager.h:134
DtUUID curLinkedTo
Definition: scenarioEventManager.h:184
EventsThatNeedUpdate myEventsThatNeedUpdate
Definition: scenarioEventManager.h:193
int myMaxOrdinal
Definition: scenarioEventManager.h:195
Definition: scenarioEventManager.h:23
DtCallbackList< const DtUUID & >::DtCallbackFunctionType DtScenarioEventManagerCallbackFcn
Callback function definition for any kind of scripted task change.
Definition: scenarioEventManager.h:18
The scenario event manager will keep track of all scenario event objects and their state...
Definition: scenarioEventManager.h:32
DtUUID uuid
Definition: scenarioEventManager.h:25
std::map< DtUUID, DtUUID > ObjectEvents
Definition: scenarioEventManager.h:190
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
File: simMsg.h.
Definition: simMessage.h:35
DtSimManager * mySimManager
Definition: scenarioEventManager.h:166
Definition: noArgumentCallbackList.h:91
ScenarioEventEnableStateChangedCallbacks myScenarioEventEnabledStateChangedCallbacks
Definition: scenarioEventManager.h:173
const char * source
Definition: lz4.h:442
std::map< DtUUID, ScenarioEventInformation > ScenarioEvents
Definition: scenarioEventManager.h:187
The DtRwScenarioEvent class will define the contents of a scenario event and it&#39;s current status...
Definition: rwScenarioEvent.h:68
const EventsThatNeedUpdate & eventsThatNeedUpdate() const
Definition: scenarioEventManager.h:140
ObjectEvents myObjectEvents
Definition: scenarioEventManager.h:191
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:103
DtString rwData
Definition: scenarioEventManager.h:183
DtCallbackList< const DtUUID & > ScenarioEventCallbacks
Definition: scenarioEventManager.h:168
ScenarioEvents myScenarioEvents
Definition: scenarioEventManager.h:188
DtRwScenarioEvent rwEvent
Definition: scenarioEventManager.h:182
ScenarioEventInformation()
Definition: scenarioEventManager.h:179
ScenarioEventCallbacks myScenarioEventStartedCallbacks
Definition: scenarioEventManager.h:169
char * dest
Definition: lz4.h:440
Information that is really only needed to keep track of status of scenario events.
Definition: scenarioEventManager.h:177

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)