VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
events.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2016 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 #pragma once
6 
9 #include <vl/detonationInteraction.h>
10 #include <vl/fireInteraction.h>
11 #include <vl/dataInteraction.h>
13 #include <vl/signalInteraction.h>
16 #include <vrfmsgs/reportMessage.h>
17 #include <vl/commentInteraction.h>
18 #include <vl/acknowledgeInteraction.h>
19 #include <vl/startResumeInteraction.h>
20 #include <vl/stopFreezeInteraction.h>
21 
22 #if DtHLA
26 #endif
27 
28 #if DtDIS
29 #include <vl/diGuyCustomPdu.h>
30 #endif
31 
32 #if DtHLA
34 {
35 public:
36 
42 
43  bool mySendReliable;
44 };
45 #endif
46 
48 {
49 public:
50  enum EventType
51  {
52  Unknown = 0,
53  DetonationEvent = 1,
54  FireEvent = 2,
55  SimInterfaceContentMessageEvent = 3,
56  DataInteractionEvent = 4,
57  SignalInteractionEvent = 5,
58 #if DtHLA
59  InfluenceInteractionEvent = 6,
60 #endif
61  SensorFieldOfViewControlEvent = 7,
62  CommentInteractionEvent = 8,
63  AcknowledgeInteractionEvent = 9,
64  StartResumeInteractionEvent = 10,
65  StopFreezeInteractionEvent = 11,
66  DIGuyActionEvent = 12,
67 #if DtHLA
68  DIGuyEndActionEvent = 13,
69 #endif
70  UserEvent = 1024
71  };
72 
73 public:
74  DtEvent() : myEventType(Unknown) {};
75  DtEvent(EventType t) : myEventType(t) {};
76  DtEvent(const DtEvent& orig) : myEventType(orig.myEventType) {};
77  virtual~ DtEvent() {};
78 
79  EventType eventType() const { return myEventType; };
80 
81  virtual void* contents() const = 0;
82  virtual DtEvent* clone() const = 0;
83 
84  virtual bool isNetworkEvent() const = 0;
85 
88  virtual bool processLocally() const { return true; };
89 
90 protected:
91  EventType myEventType;
92 };
93 
94 template <typename T>
95 class DtTypedEvent : public DtEvent
96 {
97 public:
100  DtTypedEvent(EventType t, const T& e) : DtEvent(t), myEvent(new T(e)) {};
101  DtTypedEvent(const DtTypedEvent& orig) : DtEvent(orig), myEvent(new T(*orig.myEvent)) {};
102  virtual ~DtTypedEvent()
103  {
104  delete myEvent;
105  }
106 
107  void* contents() const { return myEvent; };
108  bool isNetworkEvent() const { return true; };
109 
110  void setEvent(const T& ev) { delete myEvent; myEvent = new T(ev); };
111 
112  DtEvent* clone() const { return new DtTypedEvent<T>(*this); };
113 
114 protected:
115  T* myEvent;
116 };
117 
118 #if DtHLA
119 class DT_DLL_vrfMsgTransport DtDataInteractionWithTransportEvent : public DtTypedEvent<DtDataInteractionWithTransportType>
120 {
121 public:
122  DtDataInteractionWithTransportEvent() : DtTypedEvent(DataInteractionEvent), myOverrideTimestampOrder(true) {};
123  DtDataInteractionWithTransportEvent(const DtDataInteractionWithTransportType& interaction, bool myOverrideTimestampOrder = true) : DtTypedEvent(DataInteractionEvent, interaction),
124  myOverrideTimestampOrder(myOverrideTimestampOrder) {};
126  DtTypedEvent<DtDataInteractionWithTransportType>(orig), myOverrideTimestampOrder(orig.myOverrideTimestampOrder) {};
127 
128  virtual DtEvent* clone() const { return new DtDataInteractionWithTransportEvent(*this); };
129 
130  bool myOverrideTimestampOrder;
131 };
132 #endif
134 {
135 public:
136  DtDataInteractionEvent() : DtTypedEvent(DataInteractionEvent) {};
137  DtDataInteractionEvent(const DtDataInteraction& interaction) : DtTypedEvent(DataInteractionEvent, interaction) {};
138 };
139 
141 {
142 public:
143  DtSignalInteractionEvent() : DtTypedEvent(SignalInteractionEvent) {};
144  DtSignalInteractionEvent(const DtSignalInteraction& interaction) : DtTypedEvent(SignalInteractionEvent, interaction) {};
145 };
146 
147 class DT_DLL_vrfMsgTransport DtDetonationEvent : public DtTypedEvent<DtDetonationInteraction>
148 {
149 public:
150  DtDetonationEvent() : DtTypedEvent(DetonationEvent) {};
151  DtDetonationEvent(const DtDetonationInteraction& interaction) : DtTypedEvent(DetonationEvent, interaction) {};
152 };
153 
154 class DT_DLL_vrfMsgTransport DtSensorFieldOfViewControlEvent : public DtTypedEvent<DtSensorFieldOfViewControlInter>
155 {
156 public:
157  DtSensorFieldOfViewControlEvent() : DtTypedEvent(SensorFieldOfViewControlEvent) {};
158  DtSensorFieldOfViewControlEvent(const DtSensorFieldOfViewControlInter& interaction) : DtTypedEvent(SensorFieldOfViewControlEvent, interaction) {};
159 };
160 
162 {
163 public:
164  DtCommentInteractionEvent() : DtTypedEvent(CommentInteractionEvent) {};
165  DtCommentInteractionEvent(const DtCommentInteraction& interaction) : DtTypedEvent(CommentInteractionEvent, interaction) {};
166 };
167 
168 #if DtHLA
170 {
171 public:
172  DtInfluenceInteractionEvent() : DtTypedEvent(InfluenceInteractionEvent) {};
173  DtInfluenceInteractionEvent(const DtInfluenceInteraction& interaction) : DtTypedEvent(InfluenceInteractionEvent, interaction) {};
174 };
175 
177 {
178 public:
179  DtDIGuyEndActionEvent() : DtTypedEvent(DIGuyEndActionEvent) {};
180  DtDIGuyEndActionEvent(const DtEndGestureInter& interaction) : DtTypedEvent(DIGuyEndActionEvent, interaction) {};
181 };
182 
183 class DT_DLL_vrfMsgTransport DtDIGuyActionEvent : public DtTypedEvent<DtExecuteGestureInter>
184 {
185 public:
186  DtDIGuyActionEvent() : DtTypedEvent(DIGuyEndActionEvent) {};
187  DtDIGuyActionEvent(const DtExecuteGestureInter& interaction) : DtTypedEvent(DIGuyEndActionEvent, interaction) {};
188 };
189 #else
190 
191 class DT_DLL_vrfMsgTransport DtDIGuyActionEvent : public DtTypedEvent<DtDIGuyCustomPdu>
192 {
193 public:
194  DtDIGuyActionEvent() : DtTypedEvent(DIGuyActionEvent) {};
195  DtDIGuyActionEvent(const DtDIGuyCustomPdu& interaction) : DtTypedEvent(DIGuyActionEvent, interaction) {};
196 };
197 #endif
198 
199 class DT_DLL_vrfMsgTransport DtFireEvent : public DtTypedEvent<DtFireInteraction>
200 {
201 public:
202  DtFireEvent() : DtTypedEvent(FireEvent) {};
203  DtFireEvent(const DtFireInteraction& interaction) : DtTypedEvent(FireEvent, interaction) {};
204 };
205 
206 class DT_DLL_vrfMsgTransport DtAcknowledgeInteractionEvent : public DtTypedEvent<DtAcknowledgeInteraction>
207 {
208 public:
209  DtAcknowledgeInteractionEvent() : DtTypedEvent(AcknowledgeInteractionEvent) {};
210  DtAcknowledgeInteractionEvent(const DtAcknowledgeInteraction& interaction) : DtTypedEvent(AcknowledgeInteractionEvent, interaction) {};
211  virtual bool processLocally() const { return false; };
212 };
213 
214 class DT_DLL_vrfMsgTransport DtStopFreezeInteractionEvent : public DtTypedEvent<DtStopFreezeInteraction>
215 {
216 public:
217  DtStopFreezeInteractionEvent() : DtTypedEvent(StopFreezeInteractionEvent) {};
218  DtStopFreezeInteractionEvent(const DtStopFreezeInteraction& interaction) : DtTypedEvent(StopFreezeInteractionEvent, interaction) {};
219 };
220 
221 class DT_DLL_vrfMsgTransport DtStartResumeInteractionEvent : public DtTypedEvent<DtStartResumeInteraction>
222 {
223 public:
224  DtStartResumeInteractionEvent() : DtTypedEvent(StartResumeInteractionEvent) {};
225  DtStartResumeInteractionEvent(const DtStartResumeInteraction& interaction) : DtTypedEvent(StartResumeInteractionEvent, interaction) {};
226 };
227 
228 template <typename T>
230 {
231 public:
234  DtTypedVrfMessageEvent(EventType t, const T& interaction) : DtEvent(t), myEvent(static_cast<T*>(interaction.clone())) {};
235  DtTypedVrfMessageEvent(const DtTypedVrfMessageEvent& orig) : DtEvent(orig), myEvent(static_cast<T*>(orig.myEvent->clone())) {};
237  {
238  delete myEvent;
239  }
240 
241  void* contents() const { return myEvent; };
242  bool isNetworkEvent() const { return true; };
243 
244  void setEvent(const T& ev) { delete myEvent; myEvent = static_cast<T*>(ev.clone()); };
245 
246  DtEvent* clone() const { return new DtTypedVrfMessageEvent<T>(*this); };
247 
248 protected:
249  T* myEvent;
250 };
251 
253 {
254 public:
255  DtSimInterfaceContentMessageEvent() : DtTypedVrfMessageEvent(SimInterfaceContentMessageEvent) {};
256  DtSimInterfaceContentMessageEvent(const DtSimInterfaceContent& interaction) : DtTypedVrfMessageEvent(SimInterfaceContentMessageEvent, interaction) {};
257 };
DtTypedEvent(EventType t, const T &e)
Definition: events.h:100
DtEvent(EventType t)
Definition: events.h:75
DtAcknowledgeInteractionEvent()
Definition: events.h:209
EventType eventType() const
Definition: events.h:79
Definition: events.h:33
DtInfluenceInteractionEvent(const DtInfluenceInteraction &interaction)
Definition: events.h:173
DtDataInteractionWithTransportType()
default constructor
Definition: events.h:38
DtFireEvent()
Definition: events.h:202
Definition: events.h:214
void setEvent(const T &ev)
Definition: events.h:244
DtFireEvent(const DtFireInteraction &interaction)
Definition: events.h:203
Instances of DtEndGestureInter are used to store state data for DIGuyInteraction.EndGesture interacti...
Definition: endGestureInterHLA.h:27
void * contents() const
Definition: events.h:241
DtInfluenceInteractionEvent()
Definition: events.h:172
DtTypedVrfMessageEvent(const DtTypedVrfMessageEvent &orig)
Definition: events.h:235
Definition: events.h:221
void setEvent(const T &ev)
Definition: events.h:110
bool isNetworkEvent() const
Definition: events.h:108
DtCommentInteractionEvent()
Definition: events.h:164
DtAcknowledgeInteractionEvent(const DtAcknowledgeInteraction &interaction)
Definition: events.h:210
Definition: events.h:133
DtTypedEvent()
Definition: events.h:98
Definition: events.h:252
DtDataInteractionWithTransportType(const DtDataInteractionWithTransportType &orig)
Definition: events.h:39
DtEvent(const DtEvent &orig)
Definition: events.h:76
DtStartResumeInteractionEvent()
Definition: events.h:224
DtStopFreezeInteractionEvent(const DtStopFreezeInteraction &interaction)
Definition: events.h:218
DtDataInteractionWithTransportEvent()
Definition: events.h:122
DtDataInteractionWithTransportEvent(const DtDataInteractionWithTransportEvent &orig)
Definition: events.h:125
Contains the DtExecuteGestureInter class declaration.
DtTypedEvent(const DtTypedEvent &orig)
Definition: events.h:101
Definition: events.h:161
Definition: events.h:47
DtTypedVrfMessageEvent(EventType t)
Definition: events.h:233
Definition: events.h:95
DtDIGuyEndActionEvent()
Definition: events.h:179
DtDataInteractionWithTransportEvent(const DtDataInteractionWithTransportType &interaction, bool myOverrideTimestampOrder=true)
Definition: events.h:123
Definition: events.h:52
bool isNetworkEvent() const
Definition: events.h:242
Definition: events.h:183
Contains the DtEndGestureInter class declaration.
DtStopFreezeInteractionEvent()
Definition: events.h:217
virtual bool processLocally() const
There are some events that, if sent over the network, don&#39;t want to be processed locally.
Definition: events.h:211
DtDIGuyActionEvent()
Definition: events.h:186
DtDataInteractionEvent(const DtDataInteraction &interaction)
Definition: events.h:137
DtTypedVrfMessageEvent(EventType t, const T &interaction)
Definition: events.h:234
EventType
Definition: events.h:50
DtDetonationPdu DtDetonationInteraction
Definition: DistributedSimulationDriver3A.h:14
virtual bool processLocally() const
There are some events that, if sent over the network, don&#39;t want to be processed locally.
Definition: events.h:88
DtDIGuyEndActionEvent(const DtEndGestureInter &interaction)
Definition: events.h:180
DtDIGuyActionEvent(const DtExecuteGestureInter &interaction)
Definition: events.h:187
Definition: events.h:206
Definition: events.h:140
T * myEvent
Definition: events.h:246
Definition: events.h:147
Definition: events.h:176
DtEvent()
Definition: events.h:74
DtEvent * clone() const
Definition: events.h:246
Definition: events.h:199
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
DtSignalInteractionEvent(const DtSignalInteraction &interaction)
Definition: events.h:144
DtSensorFieldOfViewControlEvent(const DtSensorFieldOfViewControlInter &interaction)
Definition: events.h:158
Contains Extended DI-Guy Object net types.
#define DT_DLL_vrfMsgTransport
This file is used to determine how to build.
Definition: vrfMsgTransportDefines.h:28
virtual ~DtTypedVrfMessageEvent()
Definition: events.h:236
DtSensorFieldOfViewControlEvent()
Definition: events.h:157
void * contents() const
Definition: events.h:107
virtual ~DtDataInteractionWithTransportType()
destructor
Definition: events.h:41
virtual ~DtTypedEvent()
Definition: events.h:102
Definition: simInterfaceContent.h:45
DtSimInterfaceContentMessageEvent()
Definition: events.h:255
Definition: events.h:119
DtDetonationEvent(const DtDetonationInteraction &interaction)
Definition: events.h:151
This file provides a protocol independant include file for the class DtSensorFieldOfViewControlInterI...
Definition: events.h:229
DtDataInteractionEvent()
Definition: events.h:136
DtCommentInteractionEvent(const DtCommentInteraction &interaction)
Definition: events.h:165
bool mySendReliable
Definition: events.h:41
DtDetonationEvent()
Definition: events.h:150
T * myEvent
Definition: events.h:112
Definition: events.h:169
DtSimInterfaceContentMessageEvent(const DtSimInterfaceContent &interaction)
Definition: events.h:256
DtStartResumeInteractionEvent(const DtStartResumeInteraction &interaction)
Definition: events.h:225
DtSignalInteractionEvent()
Definition: events.h:143
DtEvent * clone() const
Definition: events.h:112
DtTypedEvent(EventType t)
Definition: events.h:99
DtTypedVrfMessageEvent()
Definition: events.h:232
Definition: events.h:154

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)