VR-Link API Documentation for HLA 4
 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-2025 MAK Technologies, Inc
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> > DtStringVectorMap;
78 
79 public:
80 
83  DtFomMapper();
84 
86  virtual ~DtFomMapper();
87 
90  virtual DtStateDecoderFactory* setStateDecoderFactory(
91  DtStateDecoderFactory* fact);
92  virtual DtStateDecoderFactory* stateDecoderFactory();
93 
96  virtual DtStateEncoderFactory* setStateEncoderFactory(
97  DtStateEncoderFactory* fact);
98  virtual DtStateEncoderFactory* stateEncoderFactory();
99 
102  virtual DtInteractionDecoderFactory* setInteractionDecoderFactory(
104  virtual DtInteractionDecoderFactory* interactionDecoderFactory();
105 
108  virtual DtInteractionEncoderFactory* setInteractionEncoderFactory(
110  virtual DtInteractionEncoderFactory* interactionEncoderFactory();
111 
114  virtual DtHlaObjectFactory* setHlaObjectFactory(
115  DtHlaObjectFactory* fact);
116  virtual DtHlaObjectFactory* hlaObjectFactory();
117 
120  virtual DtInteractionFactory* setInteractionFactory(
121  DtInteractionFactory* fact);
122  virtual DtInteractionFactory* interactionFactory();
123 
128  virtual void setObjectClassToChoose(
129  const char* vrlinkClassName, const char* fomClassName);
130  virtual void setObjectClassChooser(
131  const char* vrlinkClassName, DtObjectClassChooser chooser);
132  virtual void setObjectClassChooser(
133  const char* vrlinkClassName, DtObjectClassChooserWithUsrData chooser, void* usr);
134 
141  virtual const char* chooseObjectClass(
142  const char* vrlinkClassName, void* fomClassSpecific = NULL) const;
143 
148  virtual void setInteractionClassToChoose(
149  const char* vrlinkClassName, const char* fomClassName);
150  virtual void setInteractionClassChooser(
151  const char* vrlinkClassName, DtInteractionClassChooser chooser);
152  virtual void setInteractionClassChooser(
153  const char* vrlinkClassName, DtInteractionClassChooserWithUsrData chooser, void* usr);
154 
157  virtual const char* chooseInteractionClass(const DtInteraction& inter) const;
158 
166  virtual void setInteractionClasses(const char* vrlinkClassName,
167  const std::vector<DtString>& classes);
168  virtual const std::vector<DtString>* interactionClasses(const char* vrlinkClassName);
169 
173  virtual void setInteractionClass(const char* vrlinkClassName,
174  const char* fomClassName);
175 
180  virtual void addInteractionClassName(const char* vrlinkClassName,
181  const char* objClassName, bool includeSubclasses);
182  virtual void removeInteractionClassName(const char* vrlinkClassName,
183  const char* objClassName, bool includeSubclasses);
184 
193  virtual void setObjectClassNames(const char* vrlinkClassName,
194  const std::vector<DtString>& classes);
195  virtual const std::vector<DtString>* objectClassNames(const char* vrlinkClassName);
196 
204  virtual DtList* objectClassHandles(const char* vrlinkClassName);
205 
209  virtual void setObjectClass(const char* vrlinkClassName,
210  const char* fomClassName);
211 
216  virtual void addObjectClassName(const char* vrlinkClassName,
217  const char* objClassName, bool includeSubclasses);
218  virtual void removeObjectClassName(const char* vrlinkClassName,
219  const char* objClassName, bool includeSubclasses);
220 
223  virtual void init(DtExerciseConn* conn) = 0;
224 
230  virtual void setVersion(double vers);
231  virtual double version() const;
232 
239  virtual void setRevision(int val);
240 
247  virtual int revision() const;
248 
252  virtual const DtObjectClassChooserInfo* objectClassChooser(
253  const char* vrlinkClassName) const;
254 
258  virtual const DtInteractionClassChooserInfo* interactionClassChooser(
259  const char* vrlinkClassName) const;
260 
261 protected:
263  DtFomMapper(const DtFomMapper& orig);
264 
266  DtFomMapper& operator=(const DtFomMapper& orig);
267 
268 protected:
269 
271 
279 
283 
287 
291  std::map<DtString, DtObjectClassChooserInfo> myObjChooserList;
292 
295  std::map<DtString, DtString> mySimpleObjChooserList;
296 
300  std::map<DtString, DtInteractionClassChooserInfo> myInterChooserList;
301 
304  std::map<DtString, DtString> mySimpleInterChooserList;
305 
309 
313 
314 protected:
315  double myVersion;
317 
318 };
319 
320 #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:304
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnHLA.h:61
#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:295
std::map< DtString, DtInteractionClassChooserInfo > myInterChooserList
Maps names of C++ classes derived from DtInteraction to DtInteractionClassChoosers - functions that c...
Definition: fomMapper.h:300
DtInteractionFactory * myInterFact
Definition: fomMapper.h:278
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:77
Instances of DtInteractionFactory are used to create derived DtInteractions based on Interaction Clas...
Definition: interactionFactory.h:29
DtInteractionEncoderFactory * myInterEncFact
Definition: fomMapper.h:276
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:282
DtList myObjHandleList
The object returned by objectClassHandles.
Definition: fomMapper.h:308
DtExerciseConn * myExConn
Definition: fomMapper.h:270
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:291
DtObjectClassChooserWithUsrData chooserWithUsr
Definition: fomMapper.h:73
DtInteractionClassChooserWithUsrData chooserWithUsr
Definition: fomMapper.h:54
DtHlaObjectFactory * myObjFact
Definition: fomMapper.h:277
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:312
double myVersion
Definition: fomMapper.h:315
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:286
int myRevision
Definition: fomMapper.h:316
DtStateEncoderFactory * myEncFact
Definition: fomMapper.h:274
DtInteractionDecoderFactory * myInterDecFact
Definition: fomMapper.h:275
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:273
DtObjectClassChooser chooser
Definition: fomMapper.h:72

Document ID: Generated on Thu Oct 16 00:12:25 EDT 2025 from SVN revision 280738
Copyright © 1992-2025 MAK Technologies. All Rights Reserved (www.mak.com)