MAK RTIspy API Documentation for HLA 1516
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
fomModuleManager.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2025 MAK Technologies
3 ** All rights reserved.
4 *********************************************************************/
5 
8 
9 #pragma once
10 
11 #include "rtiMsConfig.h"
12 
13 #include <vlutil/vlFedTarget.h>
14 #include <vlutil/vlFilename.h>
15 #include <vlutil/vlList.h>
16 #include <vlutil/vlMutex.h>
17 
18 #include <map>
19 
20 
22 
23 class DtFomModuleManager;
24 class DtRIDParameters;
25 class DtFomClassMgr;
27 class DtFileInformation;
28 class DtSpaceInfo;
29 
30 namespace MAKRti
31 {
32  class DtString;
33  class DtFedReader;
34  class DtFomSorter;
35 }
36 
37 typedef DtFomModuleManager* (*DtFomModuleManagerCreator)(DtRIDParameters* p);
38 
40 {
41 protected:
42 
45 
47 
49  DtFomModuleManager& operator=(const DtFomModuleManager& orig);
51 
52 public:
53 
55  virtual ~DtFomModuleManager();
56 
58  virtual DtRIDParameters* params();
59  virtual DtRIDParameters* params() const;
60 
62 
63  virtual void setJoinDistributor(DtSynchronousFileDistributor* distributor);
64  virtual DtSynchronousFileDistributor* joinDistributor();
65  virtual DtSynchronousFileDistributor* joinDistributor() const;
67 
69 
70  virtual DtFomClassMgr* currentFom();
71  virtual DtFomClassMgr* currentFom() const;
73 
75  virtual const MAKRti::DtString& currentFedFileName() const;
76  virtual void setCurrentFedFileName(const MAKRti::DtString& fedFileName);
77 
79  virtual const MAKRti::DtString& mimName() const;
80  virtual void setMimName(const MAKRti::DtString&);
81 
84  virtual MAKRti::DtString timeImplName(const MAKRti::DtString& execName);
85 
89  virtual MAKRti::DtString fedFileName(const MAKRti::DtString& execName);
90 
92  virtual DtFomClassMgr* parsedFom(const MAKRti::DtString& fomFileName);
93 
95  virtual void testReadFedFile(const MAKRti::DtString& fileName, const MAKRti::DtString& executionName);
96 
99  virtual DtFomClassMgr* testReadFomModule(MAKRti::DtString const&, MAKRti::DtString const& executionName, bool isMim);
100 
103  virtual void testReadAndSortFomModules(std::vector<MAKRti::DtString> const&, MAKRti::DtString const& executionName, bool isMim = false);
104 
106  virtual void clearFomSorting();
107 
111  virtual MAKRti::DtFedReader* readFedFile(const MAKRti::DtString& fileName, const MAKRti::DtString& executionName);
112 
114  virtual MAKRti::DtFedReader* currentFedReader();
115 
117  virtual void addFomModule(const MAKRti::DtString& name, char* buffer);
118 
120  virtual bool findFedFileNameFromMapping(const MAKRti::DtString execName, const std::vector<MAKRti::DtString>& orig,
121  std::vector<MAKRti::DtString>& namesToUse) const;
122 
125  virtual void appendFomModule(std::vector<MAKRti::DtString>& target, MAKRti::DtString const& source);
126 
129  virtual void appendFomModules(std::vector<MAKRti::DtString>& target, std::vector<MAKRti::DtString> const& source);
130 
132  virtual void addFedExNameMapping(const MAKRti::DtString& execName,
133  const MAKRti::DtString& timeImplName, const MAKRti::DtString& fed);
134 
138  virtual void mergeFomModules(const std::vector<MAKRti::DtString>* fomModules);
139 
141  virtual void addJoinFomModuleNames(const std::vector<MAKRti::DtString>& moduleNames);
142  virtual const std::vector<std::wstring>& joinFomModuleNames() const;
143 
145  virtual void addFomModuleNameMapping(const MAKRti::DtString& executionName, const MAKRti::DtString& module);
146 
148  virtual void addFomModuleNameMapping(const MAKRti::DtString& executionName, const std::vector<MAKRti::DtString>& modules);
149 
151  virtual const std::vector<std::wstring>& fomModuleNames() const;
152 
154  virtual const char* joinFomModuleData(MAKRti::DtU32 moduleIndicator) const;
155 
157  virtual const char* fomModuleData(MAKRti::DtU32 moduleIndicator) const;
158 
160  virtual const char* mimData() const;
161 
162  virtual bool isFomAvailable(const MAKRti::DtString& fomName);
163  virtual void populateWithUnknownFoms(std::vector<MAKRti::DtString> & mods, std::vector<MAKRti::DtString> & requestedMods);
164  virtual void getCrcsOfFoms(std::vector<unsigned int> & moduleCrcs, const std::vector<MAKRti::DtString> & creationFomModuleNames);
165 
167  virtual void resignFederation();
168 
170  virtual void getSortedFomFileNames(std::vector<MAKRti::DtString>& creationFomModuleNames);
171 
172 public:
173 
175  static DtFomModuleManager* create(DtRIDParameters* p);
176 
180  static void setCreatorFunction(DtFomModuleManagerCreator fn);
181 
182 protected:
183 
184  virtual void init();
185 
187  virtual void addFomFileName(const MAKRti::DtString& name);
188 
190  virtual const std::vector<MAKRti::DtString>& fomFileNames() const;
191 
194  virtual MAKRti::DtFilename fedFileNameToUse(const MAKRti::DtString& fileName, const MAKRti::DtString& executionName);
195 
197  virtual void readFedFilePtr(const FILE* fp, const MAKRti::DtString& fileName, const MAKRti::DtString& executionName);
198 
200  virtual MAKRti::DtFedReader* getReader(MAKRti::DtFomType theFomType, DtFomClassMgr* target);
201 
203  virtual MAKRti::DtFedReader* getReader(MAKRti::DtFomType theFomType);
204 
206  virtual void addToParsedFomMap(MAKRti::DtFedReader * myFedReader, const MAKRti::DtString & fileNameToUse,
207  DtFomClassMgr* fedTarget, unsigned long theCrc = 0);
208 
210  virtual void popupAndThrowCouldNotOpenFOM(const MAKRti::DtString& fileName, bool isMim=false) const;
211 
213  virtual void popupAndThrowErrorReadingFOM(const MAKRti::DtString& errorMessage, bool isMim = false) const;
214 
216  virtual void checkSpaceInfo(const DtSpaceInfo* spaceInfo) const;
217 
218 protected:
219 
220  typedef std::map< MAKRti::DtString, DtFomClassMgr* > DtParsedFomsMap;
221  typedef std::map< MAKRti::DtString, MAKRti::DtString > DtFomNameToFileNameMap;
222  typedef std::map< MAKRti::DtString, MAKRti::DtString > DtFileNameToFomNameMap;
223  typedef std::map< MAKRti::DtString, std::pair< char*, int > > DtFileNameToDataMap;
224  typedef std::pair<MAKRti::DtString, MAKRti::DtString> DtFileFomPair; // Not in MTL
225 
228 
230 
232  MAKRti::DtFedReader* myFedReader;
233  MAKRti::DtFedReader* myFedReader13;
234  MAKRti::DtFedReader* myFedReader1516;
235  MAKRti::DtFedReader* myFedReader1516e;
236  MAKRti::DtFedReader* myFedReader1516_2025;
237 
240  MAKRti::DtList myMappingList;
241 
242  std::map<MAKRti::DtString, std::set<MAKRti::DtString> > myFedFileNames;
243 
244  MAKRti::DtFomSorter* myFomSorter;
245 
246  mutable MAKRti::DtMutex myMutex;
247 
249 
251  MAKRti::DtString myCurrentFedFileName;
252 
254  MAKRti::DtString myMimName;
255 
257  std::map<MAKRti::DtString, DtFileInformation*> myTakenFiles;
258 
260  std::vector<std::wstring> myFomModulesNames;
261  std::vector<std::wstring> myJoinFomModulesNames;
262  std::vector<char*> myFomModuleData;
263  unsigned myMimIndex;
264 
266  MAKRti::DtResignAction myResignAction;
267 
270 
273 
276 
277  // This is all FOM files merged in this target. It includes the MIM and is in merge order.
278  std::vector<MAKRti::DtString> myFomFileNames;
279 
280 protected:
281 
284 
285 };
286 
DtFileNameToDataMap myParsedFomModuleData
Parsed FOM module data.
Definition: fomModuleManager.h:272
MAKRti::DtFedReader * myFedReader13
Definition: fomModuleManager.h:233
MAKRti::DtResignAction myResignAction
The resign action.
Definition: fomModuleManager.h:266
MAKRti::DtFedReader * myFedReader1516e
Definition: fomModuleManager.h:235
std::map< MAKRti::DtString, std::pair< char *, int > > DtFileNameToDataMap
Definition: fomModuleManager.h:223
std::map< MAKRti::DtString, DtFomClassMgr * > DtParsedFomsMap
Definition: fomModuleManager.h:220
Helper class for storing files by name.
Definition: fileDistributor.h:46
std::map< MAKRti::DtString, MAKRti::DtString > DtFomNameToFileNameMap
Definition: fomModuleManager.h:221
std::map< MAKRti::DtString, MAKRti::DtString > DtFileNameToFomNameMap
Definition: fomModuleManager.h:222
std::map< MAKRti::DtString, std::set< MAKRti::DtString > > myFedFileNames
Definition: fomModuleManager.h:242
MAKRti::DtString myMimName
MIM name.
Definition: fomModuleManager.h:254
This class manages the RTI&#39;s start-up configuration using both MTL variables and functions.
Definition: RIDparams.h:87
DtFomClassMgr * myCurrentFom
Definition: fomModuleManager.h:248
static DtFomModuleManagerCreator theCreator
Creator function creates instance of this class or subclass.
Definition: fomModuleManager.h:283
std::vector< MAKRti::DtString > myFomFileNames
Definition: fomModuleManager.h:278
DtFomNameToFileNameMap myFomToFileMap
Definition: fomModuleManager.h:274
std::map< MAKRti::DtString, DtFileInformation * > myTakenFiles
When files are received from distributor, store them here until requester takes them.
Definition: fomModuleManager.h:257
MAKRti::DtFedReader * myFedReader1516
Definition: fomModuleManager.h:234
std::vector< std::wstring > myJoinFomModulesNames
Definition: fomModuleManager.h:261
std::vector< std::wstring > myFomModulesNames
FOM modules.
Definition: fomModuleManager.h:260
DtFileNameToFomNameMap myFileToFomMap
Definition: fomModuleManager.h:275
MAKRti::DtString myCurrentFedFileName
Current FED/FDD file name.
Definition: fomModuleManager.h:251
MAKRti::DtFedReader * myFedReader
Temporary internal reader used until changes made to VR-Link fed reader.
Definition: fomModuleManager.h:232
Definition: fomMgr.h:49
Distributes fomModule files from initiating federate to RtiExec and then from RtiExec to all joining ...
Definition: synchronousFileDistributor.h:27
unsigned myMimIndex
Definition: fomModuleManager.h:263
MAKRti::DtMutex myMutex
Definition: fomModuleManager.h:246
MAKRti::DtFedReader * myFedReader1516_2025
Definition: fomModuleManager.h:236
DtParsedFomsMap myParsedFoms
Map containing FOMs parsed into FedTargets.
Definition: fomModuleManager.h:269
DtRIDParameters * myParams
Initialization data.
Definition: fomModuleManager.h:227
std::vector< char * > myFomModuleData
Definition: fomModuleManager.h:262
MAKRti::DtFomSorter * myFomSorter
Definition: fomModuleManager.h:244
#define DT_DLL_LRC
Definition: rtiMsConfig.h:155
DtSynchronousFileDistributor * myDistributor
Definition: fomModuleManager.h:229
Definition: fomModuleManager.h:39
DtFomModuleManager *(* DtFomModuleManagerCreator)(DtRIDParameters *p)
Definition: fomModuleManager.h:37
std::pair< MAKRti::DtString, MAKRti::DtString > DtFileFomPair
Definition: fomModuleManager.h:224
MAKRti::DtList myMappingList
List of federation execution names with FED files names and time implementation names.
Definition: fomModuleManager.h:240

Document ID: Generated on Wed Jul 8 16:20:32 EDT 2026 from SVN revision 291616
Copyright © 2005-2025 MAK Technologies Inc. All Rights Reserved (www.mak.com)