VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
fomMapper.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
6 #pragma once
7 
10 #if DtHLA
11 
12 #include "hostStructs.h"
13 #include "rtiCompatibility.h"
14 
15 #include <vlutil/vlHashlist.h>
16 
17 #include <map>
18 #include <set>
19 
20 class DtExerciseConn;
21 class DtStateDecoderFactory;
22 class DtStateEncoderFactory;
23 class DtInteractionDecoderFactory;
24 class DtInteractionEncoderFactory;
25 class DtHlaObjectFactory;
26 class DtInteractionFactory;
27 class DtInteraction;
28 
29 
36 class DT_DLL_VL DtFomMapper
37 {
38 public:
39 
42  typedef char* (*DtInteractionClassChooser)(
43  DtExerciseConn* exConn, const DtInteraction& inter);
44 
48  typedef char* (*DtInteractionClassChooserWithUsrData)(
49  DtExerciseConn* exConn, const DtInteraction& inter, void* usr);
50 
51  struct DtInteractionClassChooserInfo
52  {
53  DtInteractionClassChooser chooser;
54  DtInteractionClassChooserWithUsrData chooserWithUsr;
55  void* usr;
56  };
57 
61  typedef char* (*DtObjectClassChooser)(
62  const char* vrlinkClassName, DtExerciseConn* conn, void* fomClassSpecific);
63 
67  typedef char* (*DtObjectClassChooserWithUsrData)(
68  const char* vrlinkClassName, DtExerciseConn* conn, void* fomClassSpecific, void* usr);
69 
70  struct DtObjectClassChooserInfo
71  {
72  DtObjectClassChooser chooser;
73  DtObjectClassChooserWithUsrData chooserWithUsr;
74  void* usr;
75  };
76 
77  //typedef std::map<DtString, std::vector<DtString> > DtStringSetMap;
78 
79  typedef std::map<DtString, std::vector<DtString> > DtStringVectorMap;
80 
81 public:
82 
85  DtFomMapper();
86 
88  virtual ~DtFomMapper();
89 
92  virtual DtStateDecoderFactory* setStateDecoderFactory(
93  DtStateDecoderFactory* fact);
94  virtual DtStateDecoderFactory* stateDecoderFactory();
95 
98  virtual DtStateEncoderFactory* setStateEncoderFactory(
99  DtStateEncoderFactory* fact);
100  virtual DtStateEncoderFactory* stateEncoderFactory();
101 
104  virtual DtInteractionDecoderFactory* setInteractionDecoderFactory(
105  DtInteractionDecoderFactory* fact);
106  virtual DtInteractionDecoderFactory* interactionDecoderFactory();
107 
110  virtual DtInteractionEncoderFactory* setInteractionEncoderFactory(
111  DtInteractionEncoderFactory* fact);
112  virtual DtInteractionEncoderFactory* interactionEncoderFactory();
113 
116  virtual DtHlaObjectFactory* setHlaObjectFactory(
117  DtHlaObjectFactory* fact);
118  virtual DtHlaObjectFactory* hlaObjectFactory();
119 
122  virtual DtInteractionFactory* setInteractionFactory(
123  DtInteractionFactory* fact);
124  virtual DtInteractionFactory* interactionFactory();
125 
130  virtual void setObjectClassToChoose(
131  const char* vrlinkClassName, const char* fomClassName);
132  virtual void setObjectClassChooser(
133  const char* vrlinkClassName, DtObjectClassChooser chooser);
134  virtual void setObjectClassChooser(
135  const char* vrlinkClassName, DtObjectClassChooserWithUsrData chooser, void* usr);
136 
143  virtual const char* chooseObjectClass(
144  const char* vrlinkClassName, void* fomClassSpecific = NULL) const;
145 
150  virtual void setInteractionClassToChoose(
151  const char* vrlinkClassName, const char* fomClassName);
152  virtual void setInteractionClassChooser(
153  const char* vrlinkClassName, DtInteractionClassChooser chooser);
154  virtual void setInteractionClassChooser(
155  const char* vrlinkClassName, DtInteractionClassChooserWithUsrData chooser, void* usr);
156 
159  virtual const char* chooseInteractionClass(const DtInteraction& inter) const;
160 
168  virtual void setInteractionClasses(const char* vrlinkClassName,
169  const std::vector<DtString>& classes);
170  virtual const std::vector<DtString>* interactionClasses(const char* vrlinkClassName);
171 
175  virtual void setInteractionClass(const char* vrlinkClassName,
176  const char* fomClassName);
177 
182  virtual void addInteractionClassName(const char* vrlinkClassName,
183  const char* objClassName, bool includeSubclasses);
184  virtual void removeInteractionClassName(const char* vrlinkClassName,
185  const char* objClassName, bool includeSubclasses);
186 
195  virtual void setObjectClassNames(const char* vrlinkClassName,
196  const std::vector<DtString>& classes);
197  virtual const std::vector<DtString>* objectClassNames(const char* vrlinkClassName);
198 
206  virtual DtList* objectClassHandles(const char* vrlinkClassName);
207 
211  virtual void setObjectClass(const char* vrlinkClassName,
212  const char* fomClassName);
213 
218  virtual void addObjectClassName(const char* vrlinkClassName,
219  const char* objClassName, bool includeSubclasses);
220  virtual void removeObjectClassName(const char* vrlinkClassName,
221  const char* objClassName, bool includeSubclasses);
222 
225  virtual void init(DtExerciseConn* conn) = 0;
226 
232  virtual void setVersion(double vers);
233  virtual double version() const;
234 
241  virtual void setRevision(int val);
242 
249  virtual int revision() const;
250 
254  virtual const DtObjectClassChooserInfo* objectClassChooser(
255  const char* vrlinkClassName) const;
256 
260  virtual const DtInteractionClassChooserInfo* interactionClassChooser(
261  const char* vrlinkClassName) const;
262 
263 protected:
265  DtFomMapper(const DtFomMapper& orig);
266 
268  DtFomMapper& operator=(const DtFomMapper& orig);
269 
270 protected:
271 
272  DtExerciseConn* myExConn;
273 
275  DtStateDecoderFactory* myDecFact;
276  DtStateEncoderFactory* myEncFact;
277  DtInteractionDecoderFactory* myInterDecFact;
278  DtInteractionEncoderFactory* myInterEncFact;
279  DtHlaObjectFactory* myObjFact;
280  DtInteractionFactory* myInterFact;
281 
284 
285  DtStringVectorMap myIntMapList;
286 
289  //DtStringSetMap myObjMapList;
290  DtStringVectorMap myObjMapList;
291 
295  std::map<DtString, DtObjectClassChooserInfo> myObjChooserList;
296 
299  std::map<DtString, DtString> mySimpleObjChooserList;
300 
304  std::map<DtString, DtInteractionClassChooserInfo> myInterChooserList;
305 
308  std::map<DtString, DtString> mySimpleInterChooserList;
309 
312  DtList myObjHandleList;
313 
316  DtList myEmptyList;
317 
318 protected:
319  double myVersion;
320  int myRevision;
321 
322 };
323 
324 #endif
DtInteraction is an base class for representing DIS PDUs which don&#39;t have state.
Definition: interactionDIS.h:24
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnDIS.h:61
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
Defines DtHashlist and several helper functions.
DtList is deprecated, please use std::list&lt;T&gt;.
Definition: vlList.h:71
This file is deprecated - Please see simulationAddress.h, entityIdentifier.h, entityType.h, burstDescriptor.h, and NetStructs.h.

Document ID: Generated on Tue Aug 10 00:12:31 EDT 2021 from SVN revision 232765
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)