VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 
26 {
27 public:
30 
32  virtual ~DtScenarioEventManager();
33 
34 private:
37 
39  DtScenarioEventManager & operator=(const DtScenarioEventManager & orig);
40 
41 public:
42  virtual DtSimManager* simManager() const;
43 
45  virtual bool isScenarioEvent(const DtVrfObject* o) const;
46 
48 
49  virtual void addScenarioEventStartedCallback(DtScenarioEventManagerCallbackFcn fcn, void* usr);
50  virtual void removeScenarioEventStartedCallback(DtScenarioEventManagerCallbackFcn fcn, void* usr);
52 
54 
55  virtual void addScenarioEventStoppedCallback(DtScenarioEventManagerCallbackFcn fcn, void* usr);
56  virtual void removeScenarioEventStoppedCallback(DtScenarioEventManagerCallbackFcn fcn, void* usr);
58 
60  static void scenarioEventMessageCallback(DtSimMessage*, void* usr);
61  virtual void processScenarioEventMessageCallback(DtSimMessage*);
62 
65  virtual void startScenarioEvent(const DtUUID&, bool sendMessageIfNotLocal = true);
66 
69  virtual void stopScenarioEvent(const DtUUID&, bool sendMessageIfNotLocal = true);
70 
72  virtual bool scenarioEventInProgress(const DtUUID&) const;
73 
75  virtual bool scenarioEventConcluded(const DtUUID&) const;
76 
78  virtual DtRwScenarioEvent scenarioEvent(const DtUUID&);
79 
81  virtual DtRwScenarioEvent scenarioEvent(const DtVrfObject*);
82 
84  virtual double simulationStartTime(const DtUUID&) const;
85 
87  virtual double simulationEndTime(const DtUUID&) const;
88 
90  static void scenarioEventAdded(DtVrfObject*, void*);
91  virtual void processScenarioEventAdded(DtVrfObject*);
92 
94  static void scenarioEventRemoved(DtVrfObject*, void*);
95  virtual void processScenarioEventRemoved(DtVrfObject*);
96 
98  virtual void setOrdinalOrder(const DtUUID& uniqueId, int ordinal);
99 
101  virtual void resetScenarioEvent(const DtUUID& uniqueId, bool sendMessageIfNotLocal = true);
102 
104  virtual void setTriggerStatus(const DtUUID& uniqueId, int);
105 
107  virtual void merge(DtScenarioEventManager*, const DtString& deconflictingName);
108 
110  {
113  };
114 
115  typedef std::map<DtVrfObject*, EventUpdateInformation> EventsThatNeedUpdate;
116 
117  const EventsThatNeedUpdate& eventsThatNeedUpdate() const
118  {
119  return myEventsThatNeedUpdate;
120  }
121 
122 protected:
124  virtual void startUpEvent(const DtUUID& uniqueId);
125 
127  virtual void stopEvent(const DtUUID& uniqueId);
128 
129 protected:
131 
135 
139  {
140  ScenarioEventInformation() : scenarioEvent(0), triggerStatus(-1),
141  simTimeStarted(0.), simTimeEnded(0.), rwEvent("") {};
142 
143  DtVrfObject* scenarioEvent;
146  double simTimeEnded;
149  };
150 
151  typedef boost::unordered_map<DtUUID, ScenarioEventInformation> ScenarioEvents;
153 
154  typedef boost::unordered_map<DtUUID, DtUUID> ObjectEvents;
156 
158 
160 };

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)