VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
eventManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2019 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 #pragma once
6 
9 #include <tbb/spin_mutex.h>
10 #include <map>
11 #include <boost/signals2.hpp>
12 
17 
18 class DtEvent;
19 class DtEventManager;
20 
21 typedef DtEventManager* (*DtEventManagerCreatorFcn)();
22 
24 {
25 private:
29  DtEventManager& operator=(const DtEventManager&);
30 
31 public:
33  virtual ~DtEventManager();
34 
35  virtual void tick();
36 
38  virtual void addEvent(const DtEvent&);
39 
43  static void setEventManagerCreatorFcn(DtEventManagerCreatorFcn fcn);
44  static DtEventManager* createEventManager();
46 
49  virtual void setProcessEventsImmediately(bool b);
51  {
52  return myProcessEventsImmediately;
53  }
54 
56  virtual void selfReflect(unsigned int i);
57  virtual void doNotSelfReflect(unsigned int i);
58 
60  virtual bool selfReflecting() const;
61 
62 public:
63 
64  typedef boost::signals2::signal<void (const DtEvent&)> EventSignal;
65 
68 
69  virtual EventSignal& signalForEvent(DtEvent::EventType type);
71 
73  EventSignal& signalForFireEvent();
74  EventSignal& signalForDetonationEvent();
75  EventSignal& signalForSimInterfaceContentMessage();
76  EventSignal& signalForDataInteraction();
77  EventSignal& signalForSignalInteraction();
78  EventSignal& signalForCommentInteraction();
79  EventSignal& signalForSensorFieldOfViewControlEvent();
80  EventSignal& signalForStartResumeInteraction();
81  EventSignal& signalForStopFreezeInteraction();
82  EventSignal& signalDiGuyActionEvent();
83 
84 #if DtHLA
85  EventSignal& signalForInfluenceInteraction();
86  EventSignal& signalDiGuyEndActionEvent();
87 #endif
88 
89 public:
91  virtual void addEvent(const DtDetonationInteraction&);
92  virtual void addEvent(const DtFireInteraction&);
93  virtual void addEvent(const DtAcknowledgeInteraction&);
94  virtual void addEvent(const DtStopFreezeInteraction&);
95  virtual void addEvent(const DtStartResumeInteraction&);
96  virtual void addEvent(const DtDataInteraction&);
97  virtual void addEvent(const DtSignalInteraction&);
98  virtual void addEvent(const DtCommentInteraction&);
99  virtual void addEvent(const DtSensorFieldOfViewControlInter&);
100  virtual void addevent(const DtSimInterfaceContent&);
101 
102 #if DtHLA
103  virtual void addEvent(const DtDataInteractionWithTransportType&);
104  virtual void addEvent(const DtInfluenceInteraction&);
105  virtual void addEvent(const DtEndGestureInter&);
106  virtual void addEvent(const DtExecuteGestureInter&);
107 #else
108  virtual void addEvent(const DtDIGuyCustomPdu&);
109 #endif
110 
111 protected:
113  virtual void postEvent(const DtEvent&);
114 
115  virtual void processEvent(const DtEvent&);
116 
118  virtual bool wantsToProcessEvent(const DtEvent&) const;
119 
120 protected:
121  tbb::spin_mutex myMutex;
122  std::vector<DtEvent*> myEvents;
123 
124  tbb::spin_mutex myCallbackMutex;
125  typedef std::map<DtEvent::EventType, EventSignal*> EventCallbackMap;
127 
129 
131 
132  std::set<unsigned int> myDoNotSelfReflect;
133 };
Definition: events.h:33
Instances of DtEndGestureInter are used to store state data for DIGuyInteraction.EndGesture interacti...
Definition: endGestureInterHLA.h:27
boost::signals2::signal< void(const DtEvent &)> EventSignal
Definition: eventManager.h:64
std::map< DtEvent::EventType, EventSignal * > EventCallbackMap
Definition: eventManager.h:125
Definition: events.h:47
Definition: eventManager.h:23
EventCallbackMap myEventCallbackMap
Definition: eventManager.h:126
EventType
Definition: events.h:50
DtDetonationPdu DtDetonationInteraction
Definition: DistributedSimulationDriver3A.h:14
std::set< unsigned int > myDoNotSelfReflect
Definition: eventManager.h:132
bool processEventsImmediately() const
Definition: eventManager.h:50
Instances of DtSensorFieldOfViewControlInter are used to store state data for SensorFieldOfViewContro...
Definition: sensorFieldOfViewControlInterDIS.h:51
Instances of DtExecuteGestureInter are used to store state data for DIGuyInteraction.ExecuteGesture interactions.
Definition: executeGestureInterHLA.h:27
Instances of DtInfluenceInter are used to store state data for Influence interactions.
Definition: influenceInteractionHLA.h:27
#define DT_DLL_vrfMsgTransport
This file is used to determine how to build.
Definition: vrfMsgTransportDefines.h:28
tbb::spin_mutex myCallbackMutex
Definition: eventManager.h:124
DtEventManager *(* DtEventManagerCreatorFcn)()
Definition: eventManager.h:21
Definition: simInterfaceContent.h:45
static DtEventManagerCreatorFcn theEventManagerCreatorFcn
Definition: eventManager.h:128
std::vector< DtEvent * > myEvents
Definition: eventManager.h:122
bool myProcessEventsImmediately
Definition: eventManager.h:130
tbb::spin_mutex myMutex
Definition: eventManager.h:121

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)