VR-Link API Documentation for HLA 1516
 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;
25 class DtHlaObjectFactory;
27 class DtInteraction;
28 
29 
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 
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 
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(
106  virtual DtInteractionDecoderFactory* interactionDecoderFactory();
107 
110  virtual DtInteractionEncoderFactory* setInteractionEncoderFactory(
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 
273 
281 
284 
286 
289  //DtStringSetMap 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 
313 
317 
318 protected:
319  double myVersion;
321 
322 };
323 
324 #endif
DtInteraction is an abstract base class for representing HLA interactions (or events) (as opposed to ...
Definition: interactionHLA.h:33
Definition: fomMapper.h:70
std::map< DtString, DtString > mySimpleInterChooserList
Maps names of C++ classes derived from DtInteraction to single FOM object class names.
Definition: fomMapper.h:308
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnHLA.h:58
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
Instances of DtInteractionDecoderFactory are used to create decoders which know how to decode an HLA ...
Definition: interactionDecoderFactory.h:23
std::map< DtString, DtString > mySimpleObjChooserList
Maps names of C++ classes derived from DtObjectPublisher to single FOM object class names...
Definition: fomMapper.h:299
std::map< DtString, DtInteractionClassChooserInfo > myInterChooserList
Maps names of C++ classes derived from DtInteraction to DtInteractionClassChoosers - functions that c...
Definition: fomMapper.h:304
DtInteractionFactory * myInterFact
Definition: fomMapper.h:280
void * usr
Definition: fomMapper.h:55
Instances of DtInteractionEncoderFactory are used to create encoders which know how to encode an inte...
Definition: interactionEncoderFactory.h:24
DtInteractionClassChooser chooser
Definition: fomMapper.h:53
Defines DtHashlist and several helper functions.
DtList is deprecated, please use std::list&lt;T&gt;.
Definition: vlList.h:71
std::map< DtString, std::vector< DtString > > DtStringVectorMap
Definition: fomMapper.h:79
Instances of DtInteractionFactory are used to create derived DtInteractions based on Interaction Clas...
Definition: interactionFactory.h:29
DtInteractionEncoderFactory * myInterEncFact
Definition: fomMapper.h:278
void * usr
Definition: fomMapper.h:74
DtStringVectorMap myIntMapList
Maps of the names of C++ classes derived from DtInteraction to sets of names of FOM classes...
Definition: fomMapper.h:285
DtList myObjHandleList
The object returned by objectClassHandles.
Definition: fomMapper.h:312
DtExerciseConn * myExConn
Definition: fomMapper.h:272
Instances of DtStateEncoderFactory are used to create encoders which know how to encode a state repos...
Definition: stateEncoderFactory.h:24
std::map< DtString, DtObjectClassChooserInfo > myObjChooserList
Maps names of C++ classes derived from DtObjectPublisher to DtObjectClassChoosers - functions that ca...
Definition: fomMapper.h:295
DtObjectClassChooserWithUsrData chooserWithUsr
Definition: fomMapper.h:73
DtInteractionClassChooserWithUsrData chooserWithUsr
Definition: fomMapper.h:54
DtHlaObjectFactory * myObjFact
Definition: fomMapper.h:279
This file is deprecated - Please see simulationAddress.h, entityIdentifier.h, entityType.h, burstDescriptor.h, and NetStructs.h.
DtList myEmptyList
Just an empty list to return when no class list has been registered for a particular VR-Link class...
Definition: fomMapper.h:316
double myVersion
Definition: fomMapper.h:319
Instances of DtStateDecoderFactory are used to create decoders which know how to decode an HLA state ...
Definition: stateDecoderFactory.h:23
DtStringVectorMap myObjMapList
Maps of the names of C++ classes derived from DtReflectedObjectList to sets of names of FOM classes...
Definition: fomMapper.h:290
int myRevision
Definition: fomMapper.h:320
DtStateEncoderFactory * myEncFact
Definition: fomMapper.h:276
DtInteractionDecoderFactory * myInterDecFact
Definition: fomMapper.h:277
Instances of DtFomMapper are used to provide FOM agility in VR-Link by mapping VR-Link classes and fu...
Definition: fomMapper.h:36
Instances of DtHlaObjectFactory are used to create HLA objects.
Definition: hlaObjectFactory.h:20
DtStateDecoderFactory * myDecFact
Current factories and other objects.
Definition: fomMapper.h:275
DtObjectClassChooser chooser
Definition: fomMapper.h:72

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)