VR-Link API Documentation for HLA Evolved
fom.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 
11 #if DtHLA
12 
13 
14 #include <vlutil/vlMachineTypes.h>
15 #include "rtiNamespace.h"
16 #include "exerciseConn.h"
17 #include <mtl/fedReader.h>
18 #include <vlutil/vlFedTarget.h>
19 #include <map>
20 
23 class DT_DLL_VL DtRtiAmbassador;
24 
25 
26 
27 
29 {
44 
45 
46 class DT_DLL_VL DtFom;
47 typedef DtFom* (*DtFomCreator)(DtExerciseConn*);
56 class DT_DLL_VL DtFom : public DtFedTarget
57 {
58 public:
59 
60 
62  DtFom(DtExerciseConn* exConn);
63 
65  virtual ~DtFom();
66 
68  DtFom(const DtFom& orig);
69 
71  DtFom& operator=(const DtFom& orig);
72 
74  virtual DtFedReadStatus readFed(const DtString& fedFile,
75  const std::vector<std::wstring>& fomModules,
76  const DtString& mimModule,
77  bool strictCheckingEnabled, bool useDTD, bool dontParseSwitches );
78 
80  virtual void addSpace(const char* name);
81 
84  virtual void addDimension(const char* SpaceName, const char* dimName);
85 
87  virtual void addDimension(const char* dimName, unsigned long upperBound,
88  unsigned long defaultLowerBound, unsigned long defaultUpperBound,
89  bool excluded);
90 
92  virtual void addInterClass(const char* name,
93  const char* baseName, DtTransportType transport,
94  DtOrderType order, const char* space=NULL);
95 
97  virtual void addObjClass(const char* name,
98  const char* baseName);
99 
102  virtual void addParameter(const char* className,
103  const char* paramName);
104 
107  virtual bool addInteractionDimension(const char* interactionName,
108  const char* dimension);
109 
112  virtual void addAttribute(const char* className,
113  const char* attrName, DtTransportType transport,
114  DtOrderType order, const char* space=NULL);
115 
118  virtual bool addAttributeDimension(const char* className,
119  const char* attrName, const char* dimName);
120 
122  virtual DtInterClassDesc* interClassByName(const char *name) const;
123 
125  virtual DtObjClassDesc* objClassByName(const char *name) const;
126 
128  virtual DtInterClassDesc* interClassByHandle(
129  RTI::InteractionClassHandle handle) const;
130 
132  virtual DtObjClassDesc* objClassByHandle(
133  RTI::ObjectClassHandle handle) const;
134 
140  virtual const std::list<DtInterClassDesc*>& interClassList() const;
141  virtual const std::list<DtObjClassDesc*>& objClassList() const;
142 
143 #if !DtHLA_1516
144 
145 
146 
147 
148  virtual DtObjClassDesc* firstObjClass() const;
149  virtual DtObjClassDesc* lastObjClass() const;
150  virtual DtObjClassDesc* nextObjClass(DtObjClassDesc* current) const;
151 
156  virtual DtInterClassDesc* firstInterClass() const;
157  virtual DtInterClassDesc* lastInterClass() const;
158  virtual DtInterClassDesc* nextInterClass(DtInterClassDesc* current) const;
159 #endif
160 
162  virtual DtVrlRtiAmbassador* rtiAmb() const;
163 
165  virtual void print() const;
166 
167 #if !DtHLA_1516
168 
169 
170  int minObjClassHandle() const;
171  int maxObjClassHandle() const;
172  int minInterClassHandle() const;
173  int maxInterClassHandle() const;
174 #endif
175 
177  int numObjClasses() const;
178  int numInterClasses() const;
179 
180 protected:
181 
183  virtual DtMergeFomStatus mergeTarget( const DtFom& module );
184 
186  virtual DtMergeFomStatus mergeObjectClasses( const DtFom& module );
187 
189  virtual DtMergeFomStatus mergeObjClassDesc(const DtObjClassDesc* desc);
190 
192  virtual DtMergeFomStatus mergeInteractionClasses( const DtFom& module );
193 
195  virtual DtMergeFomStatus mergeIntClassDesc(const DtInterClassDesc* desc);
196 
198  virtual DtMergeFomStatus mergeSpaces( const DtFom& module );
199 
201  virtual DtMergeFomStatus mergeUpdateRates( const DtFom& module );
202 
204  virtual DtMergeFomStatus mergeSwitches( const DtFom& module );
205 
207  virtual bool switchesSame( const DtFom& module ) const;
208 
210  virtual bool transportTypesSame(DtFom const& module ) const;
211 
213  virtual bool timeTypesSame( const DtFom& module ) const;
214 
216  virtual bool userDefinedTagsSame( const DtFom& module ) const;
217 
219  virtual bool updateRatesSame( const DtFom& module ) const;
220 
222  virtual bool knownTransportType(const DtString) const;
223 
225  virtual bool knownTime(const DtString) const;
226 
228  virtual void addTime(const DtString);
229 
231  virtual unsigned int numTimeTypes() const;
232 
234  virtual bool knownUserDefinedTag(const DtString ) const;
235 
236 
237 public:
239  static void setFomCreator(DtFomCreator);
240 
241  static DtFom* create(DtExerciseConn* exConn);
242 
243 protected:
244 
246 
249  std::map<DtString, DtInterClassDesc*> myInterClassesByName;
250  std::map<DtString, DtObjClassDesc*> myObjClassesByName;
251 
254 #if !DtHLA_1516
255  std::map<int, DtInterClassDesc*> myInterClassesByHandle;
256  std::map<int, DtObjClassDesc*> myObjClassesByHandle;
257 #else
258  std::map<std::wstring, DtInterClassDesc*> myInterClassesByHandle;
259  std::map<std::wstring, DtObjClassDesc*> myObjClassesByHandle;
260 #endif
261  std::list<DtObjClassDesc*> myObjClassList;
262  std::list<DtInterClassDesc*> myInterClassList;
263 
264 #if !DtHLA_1516
269 #endif
270 
273 
275  std::set<DtString> myTransportTypes;
277  std::set<DtString> myUserDefinedTags;
279  std::map<DtString, bool > mySwitches;
281  std::set<DtString> myTimeTypes;
282 
283  std::set<DtString> myFailedObjClasses;
284  std::set<DtString> myFailedInterClasses;
285 
286 protected:
288 
289 
290 
291 };
292 
293 
295 {
296  return myExConn->rtiAmb();
297 }
298 
299 #endif
300 
301 
302 

Document ID: Generated on Wed Aug 14 15:35:11 EDT 2013 from SVN revision 130445
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)