VR-Link API Documentation for HLA 1.3
 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::set<DtString> > DtStringSetMap;
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::set<DtString>& classes);
168  virtual const std::set<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::set<DtString>& classes);
195  virtual const std::set<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

Document ID: Generated on Mon Jun 22 21:18:40 EDT 2020 from SVN revision 213785
Copyright © 2005-2018 MAK Technologies. All Rights Reserved (www.mak.com)