MAK Data Logger API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lgrFomWithRegions.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2025 MAK Technologies, Inc
3 ** All rights reserved.
4 *********************************************************************/
5 
6 #ifndef lgrFomWithRegions_H_
7 #define lgrFomWithRegions_H_
8 
10 
11 #if DtHLA
12 
13 #include <lgrSim/lgrSim.h>
14 
15 #include <vl/fom.h>
16 
17 namespace MAKLogger
18 {
19 
20  class DtLgrDimensionDesc;
21  class DtLgrSpaceDesc;
22 
24  class DT_DLL_LGRSIM DtLgrFomWithRegions : public DtFom
25  {
26  public:
27  DtLgrFomWithRegions(DtExerciseConn* exConn);
28 
29  virtual ~DtLgrFomWithRegions();
30 
31  static DtFom* create(DtExerciseConn* exConn);
32 
33 #if DtHLA_1516_EVOLVED
34 
35  // Do not delete
36  virtual DtFedReader* makeFedReader(void* fedFilePtr, DtFedTarget* fedTarget, const DtFilename &fileName );
37 
38  virtual DtFedReadStatus readFed(
39  const DtString& fedFile,
40  const std::vector<std::wstring>& fomModules,
41  const DtString& mimModule,
42  bool strictCheckingEnabled, bool useDTD, bool dontParseSwitches );
43 #endif
44  // builds or if it is called twice with the same name.
46  virtual void addSpace(const char* name);
47 
49  // builds or if it is called with an unrecognized SpaceName.
50  virtual void addDimension(const char* SpaceName, const char* dimName);
51 
53  // builds or if it is called twice with the same dimName.
54  virtual void addDimension(const char* dimName, unsigned long upperBound,
55  unsigned long defaultLowerBound, unsigned long defaultUpperBound,
56  bool excluded);
57 
59  // non-null space in HLA 1516 or if it is called with an
60  // unrecognized space in HLA 1.3.
61  virtual bool addInterClass(const char* name,
62  const char* baseName, DtTransportType transport,
63  DtOrderType order, const char* space=NULL);
64 
66  virtual bool addInteractionDimension(const char* interactionName,
67  const char* dimension);
68 
70  // builds with a non-null space or if it is called with an unrecognized
71  // space in HLA 1.3.
72  virtual void addAttribute(const char* className,
73  const char* attrName, DtTransportType transport,
74  DtOrderType order, const char* space=NULL);
75 
77  virtual bool addAttributeDimension(const char* className,
78  const char* attrName, const char* dimName);
79 
80  // 1516(e) DDM
81  virtual const DtLgrDimensionDesc *dimensionByName(const DtString &dimName) const;
82 
83  virtual std::set<const DtLgrDimensionDesc *> attributeDimensionsByClassAndAttributeName(
84  const DtObjClassDesc &objClass, const DtString &attrName) const;
85 
86  virtual std::set<const DtLgrDimensionDesc *> interactionDimensionsByClass(
87  const DtInterClassDesc &interClass) const;
88 
89  // 1.3 DDM
90  virtual const DtLgrSpaceDesc *spaceByName(const DtString &spaceName) const;
91 
92  virtual const DtLgrSpaceDesc *attributeSpaceByClassAndAttributeName(
93  const DtObjClassDesc &objClass, const DtString &attrName, bool searchAncesestors=false) const;
94 
95  virtual const DtLgrSpaceDesc *interactionSpaceByClass(const DtInterClassDesc &interClass) const;
96 
97  private:
99  // in principle, foms could be copied, but they contain a reference to the
100  // DtExerciseConn, so doing so would be of dubious validity and usefulness
101  DtLgrFomWithRegions(const DtLgrFomWithRegions &from);
103  DtLgrFomWithRegions &operator=(DtLgrFomWithRegions &rhs);
104 
105  protected:
106 
107  // 1516(e) DDM
108  std::map<DtString, DtLgrDimensionDesc *> myDimensionsByName;
109  std::map<const DtObjClassDesc *, std::map<DtString, std::set<const DtLgrDimensionDesc *> > > myClassToAttrToDimensions;
110  std::map<const DtInterClassDesc *, std::set<const DtLgrDimensionDesc *> > myInterClassToDimensions;
111 
112  // 1.3 DDM
113  std::map<DtString, DtLgrSpaceDesc *> mySpacesByName;
114  std::map<const DtObjClassDesc *, std::map<DtString, DtLgrSpaceDesc *> > myClassToAttrToSpace;
115  std::map<const DtInterClassDesc *, DtLgrSpaceDesc *> myInterClassToSpace;
116  };
117 
118 }
119 
120 #endif
121 #endif
Defines IMPORT/EXPORT macros for lgrSim library.
#define DT_DLL_LGRSIM
Definition: lgrSim.h:21

Document ID: Generated on Thu Dec 18 15:35:09 EST 2025 from SVN revision 282494
Copyright © 2024 MAK Technologies. All Rights Reserved (www.mak.com)