VR-Forces 4.1 Class Documentation
DtVrfDriver.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2008 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
15 #include <vrvVrl/DtConnection.h>
18 
23 
28 
29 #include <vrvCore/DtEntityState.h>
30 
31 #include <vlpi/entityType.h>
32 #include <matrix/vlVector.h>
33 
34 #include <vrftasks/setReqFact.h>
35 #include <vrftasks/taskFactory.h>
36 #include <vrfutil/ceFactory.h>
41 #include <vrftasks/reportFactory.h>
43 
45 #include <vrfmsgs/msgExec.h>
46 #include <vrfplan/plan.h>
48 #include <vrfutil/scenario.h>
49 
50 #include <vl/commentInter.h>
51 
52 
53 class DtVrfObjectMessage;
54 
58 class DtSetDataRequest;
59 class DtSimTask;
62 class DtReflectedIffList;
63 
64 #if DtDIS
65 #define DtCommentCallbackFcn DtCommentPduCb
66 #elif DtHLA
67 #define DtCommentCallbackFcn DtCommentInteractionCb
68 #endif
69 
70 namespace makVrv
71 {
72  class DtVrlinkElement;
73 
74  namespace DT_PROTOCOL_NAMESPACE
75  {
76  class DtEntitySimDataProcessor;
77  }
78 }
79 
80 namespace makVrf
81 {
82  class DtNetworkMessageInterface;
83  class DtNetworkMessageInterfaceHandlerAgent;
84 
85  namespace VRF_PROTOCOL_NAMESPACE
86  {
87  class DtVrfBackendInterceptor;
88  class DtVrfConnectionHelper;
89  class DtVrfObjectDataStateProcessor;
90  class DtVrfEnvironmentObjectDataStateProcessor;
91  class DtEnvironmentSimDataProcessor;
92  class DtEmitterSystemSimDataProcessor;
93  class DtVrfAggregateObjectDataStateProcessor;
94  class DtAggregateSimDataProcessor;
95  class DtVrfFogOfWarHandler;
96  class DtVrfEmbarkationProcessor;
97  class DtIffSimDataProcessor;
98 
101  {
102  public:
104 
107 
108  protected:
109  virtual void postUpdate();
110  };
111 
113  {
114  public:
115 
119 
122 
123  #ifdef DtHLA
124 
125  //functionality.
126  virtual makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEntityStateListener* create(DtHlaObject* object);
127  #endif
128 
129  #ifdef DtDIS
130 
131 
132  virtual makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEntityStateListener* create(const DtEntityIdentifier& id,
133  const DtEntityType& type);
134  #endif
135 
138  };
139 
140 
143  {
144  public:
146 
149  };
150 
152  {
153  public:
154 
158 
161 
162  #ifdef DtHLA
163 
164  //functionality.
165  virtual makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkAggregateStateListener* create(DtHlaObject* object);
166  #endif
167 
168  #ifdef DtDIS
169 
170 
171  virtual makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkAggregateStateListener* create(const DtEntityIdentifier& id,
172  const DtEntityType& type);
173  #endif
174 
177  };
178 
180  {
181  public:
183  {
186  "DtEntityStateInterceptorCreator"));
187  if(!creator)
188  {
190  sim.registerInstance("DtEntityStateInterceptorCreator",creator);
191  }
192  return *creator;
193  }
194 
197  {
198  }
199 
201 
203  {
204  }
205  };
206 
208  {
209  public:
210 
213 
215 
216  #if DtHLA
218  #endif
219 
220  protected:
222  };
223 
226  {
227  public:
228  DtVrfDriver(makVrv::DtAgentManager& agentManager, const std::string& uniqueName);
229 
230  virtual ~DtVrfDriver();
231 
232  public:
233  virtual bool onStart();
234 
235  public:
237  virtual void realizeConfiguration(const makVrv::DtConfiguration& config);
238 
240  virtual void sendLoggerSetFilename(std::string filename);
241 
243  virtual void sendLoggerRecordMessage();
244 
246  virtual void sendLoggerStopMessage();
247 
250  virtual void newScenario(const DtScenario*, int startTimeOfDay = 12 * 3600);
251 
253  virtual void loadScenario(const DtScenarioLoadInformation*, bool deleteMemory = false);
254 
257  virtual void saveScenario(const DtScenario*, DtPreserveMappingsFcn fcn = 0, void* userData = 0,
258  bool deleteMemory = false);
259 
261  virtual void closeScenario();
262 
264  virtual void createEnvironmentalObject(DtSimulationAddress addr, DtEntityType, int force,
265  std::vector<DtVector>, DtEnvironmentalCreationData data );
266 
268  virtual void getMessageFilterStatus(std::map<std::string,bool>& statusMap) const;
269 
271  virtual void setMessageFilterStatus(const std::map<std::string,bool>& statusMap);
272 
274  virtual void getMessageProcessorStatus(std::map<std::string,bool>& statusMap) const;
275 
277  virtual void setMessageProcessorStatus(const std::map<std::string,bool>& statusMap);
278 
281  virtual void registerSimMessageCallbackFor(int t, bool reg);
282 
285  virtual void registerSimReportMessageCallbackFor(const DtSimReportMessageType& s, bool reg);
286 
287  virtual void registerSimTaskMessageCallbackFor(const DtSimTaskMessageType& s, bool reg);
288 
289  virtual void registerSetMessageCallbackFor(const DtSetMessageType& s, bool reg);
290 
293  virtual void registerAdminMessageCallbackFor(const DtAdminContentMessageType& t, bool reg);
294 
296  virtual void setTimeoutInterval(int i);
297 
299  virtual void sendMessageToObject(const DtVrfObjectMessage* m, DtSimulationAddress addr);
300 
303  virtual void sendMessage(const DtSimInterfaceContent* m, DtSimulationAddress addr);
304 
306  virtual void addSetCreatorFcn(const DtSetMessageType&, DtSetDataRequestCreatorFcn);
307 
309  virtual void addTaskCreatorFcn(const DtSimTaskMessageType&, DtSimTaskCreatorFcn);
310 
312  virtual void addInterfaceContentCreatorFcn(int, DtInterfaceContentCreatorFcn);
313 
315  virtual void addObjectMessageCreatorFcn(int, DtVrfObjectMessageCreatorFcn);
316 
318  virtual void addReportCreatorFcn(const DtSimReportMessageType&, DtSimReportCreatorFcn);
319 
321  virtual void addAdminContentCreatorFcn(const DtAdminContentMessageType&, DtAdminContentCreatorFcn);
322 
324  virtual void addSimulationCommandCreatorFcn(const DtSimCommandMessageType&, DtSimCommandCreatorFcn);
325 
327  virtual void addConditionCreatorFcn(std::string, int, DtCondExprCreatorFcn);
328 
330  virtual void registerCommentInteractionCallback(DtCommentCallbackFcn, void*);
331 
333  virtual void unregisterCommentInteractionCallback(DtCommentCallbackFcn, void*);
334 
336  virtual void importScenarioDescriptionFile(std::string file, DtSimulationAddress address, std::string format,
337  std::map<std::string, std::string> importData);
338 
340  virtual void exportScenarioDescriptionFile(std::string file, DtSimulationAddress address, std::string format,
341  std::map<std::string, std::string> importData);
342 
347  virtual DtSimpleTypedDictionary& extendedStateFor(makVrv::DtUniqueID id, bool forceUpdate = true);
348 
351  {
352  return myDataProcessor;
353  }
354 
355  DtEmitterSystemSimDataProcessor* emitterSystemDataProcessor()
356  {
357  return myEmitterSystemDataProcessor;
358  }
359 
360  DtEnvironmentSimDataProcessor* environmentDataProcessor()
361  {
362  return myEnvironmentDataProcessor;
363  }
364 
365  DtAggregateSimDataProcessor* aggregtateDataProcessor()
366  {
367  return myAggregateDataProcessor;
368  }
369 
370  DtExtendedStateDataProcessor* extendedDataStateProcessor()
371  {
372  return myExtendedStateDataProcessor;
373  }
374 
375  void setUseThreadFlag(bool b)
376  {
377  myUseThreadFlag = b;
378  }
379 
380  virtual bool onTick();
383  virtual void receivedNetworkMessage(DtNetworkMessageInterface* iface);
384 
386  boost::signal<void ()> signal_connectionSetUp;
387  boost::signal<void ()> signal_connectionCleanedUp;
388  boost::signal<void ()> signal_connectionAboutToBeCleanedUp;
389 
390  public:
391 
394  DtVrfRemoteController* remoteController();
395  const DtVrfRemoteController* remoteController() const;
397 
398  protected:
399  virtual void onSetupExerciseConnection();
400  virtual void onCleanupExerciseConnection();
401 
403  static void simMessageCallback(DtSimMessage* msg, void* usr);
404  virtual void processSimMessage(DtSimMessage* msg);
405 
407  static void radioMessageCallback(const DtVrfObjectMessage* msg, void* usr);
408  virtual void processRadioMessage(const DtVrfObjectMessage* msg);
409 
411  virtual void elementAttributeChangeRequested(
412  makVrv::DtUniqueID id, makVrv::DtUniqueID parentId, DtBoost::shared_ptr<const makVrv::DtElementAttribute> atr );
413 
414  makVrv::DtVrlinkElement* findElementWithId(makVrv::DtUniqueID id) const;
415 
416  virtual makVrv::DtConnection* createConnection();
417 
418  protected:
424 
427 
434 
437 
438  DtReflectedIffList* myReflectedIffList;
441 
443 
444  std::string myHostAddressString;
447 
450 
453  DtNetworkMessageInterfaceHandlerAgent* myNetworkMessageInterfaceHandlerAgent;
454 
455  typedef std::map<unsigned int, bool> ContextMap;
456  typedef std::map<makVrv::DtUniqueID, ContextMap> ShowHideContextMap;
457 
461  };
462 
464  {
465  return (myRemoteController);
466  }
467 
469  {
470  return (myRemoteController);
471  }
472  }}

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)