MAK Data Logger API Documentation for HLA
lgrFomWithRegions.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
6 #ifndef lgrFomWithRegions_H_
7 #define lgrFomWithRegions_H_
8 
10 
11 #if DtHLA
12 
13 #include "lgrSim.h"
14 
15 #include <vl/fom.h>
16 
17 namespace MAKLogger
18 {
19 
20  class DtLgrDimensionDesc;
21  class DtLgrSpaceDesc;
22 
25  {
26  public:
28 
29  virtual ~DtLgrFomWithRegions();
30 
32  // builds or if it is called twice with the same name.
33  virtual void addSpace(const char* name);
34 
36  // builds or if it is called with an unrecognized SpaceName.
37  virtual void addDimension(const char* SpaceName, const char* dimName);
38 
40  // builds or if it is called twice with the same dimName.
41  virtual void addDimension(const char* dimName, unsigned long upperBound,
42  unsigned long defaultLowerBound, unsigned long defaultUpperBound,
43  bool excluded);
44 
46  // non-null space in HLA 1516 or if it is called with an
47  // unrecognized space in HLA 1.3.
48  virtual void addInterClass(const char* name,
49  const char* baseName, DtTransportType transport,
50  DtOrderType order, const char* space=NULL);
51 
53  virtual bool addInteractionDimension(const char* interactionName,
54  const char* dimension);
55 
57  // builds with a non-null space or if it is called with an unrecognized
58  // space in HLA 1.3.
59  virtual void addAttribute(const char* className,
60  const char* attrName, DtTransportType transport,
61  DtOrderType order, const char* space=NULL);
62 
64  virtual bool addAttributeDimension(const char* className,
65  const char* attrName, const char* dimName);
66 
67  // 1516(e) DDM
68  virtual const DtLgrDimensionDesc *dimensionByName(const DtString &dimName) const;
69 
70  virtual std::set<const DtLgrDimensionDesc *> attributeDimensionsByClassAndAttributeName(
71  const DtObjClassDesc &objClass, const DtString &attrName) const;
72 
73  virtual std::set<const DtLgrDimensionDesc *> interactionDimensionsByClass(
74  const DtInterClassDesc &interClass) const;
75 
76  // 1.3 DDM
77  virtual const DtLgrSpaceDesc *spaceByName(const DtString &spaceName) const;
78 
79  virtual const DtLgrSpaceDesc *attributeSpaceByClassAndAttributeName(
80  const DtObjClassDesc &objClass, const DtString &attrName, bool searchAncesestors=false) const;
81 
82  virtual const DtLgrSpaceDesc *interactionSpaceByClass(const DtInterClassDesc &interClass) const;
83 
84  private:
86  // in principle, foms could be copied, but they contain a reference to the
87  // DtExerciseConn, so doing so would be of dubious validity and usefulness
91 
92  protected:
93 
94  // 1516(e) DDM
95  std::map<DtString, DtLgrDimensionDesc *> myDimensionsByName;
96  std::map<const DtObjClassDesc *, std::map<DtString, std::set<const DtLgrDimensionDesc *> > > myClassToAttrToDimensions;
97  std::map<const DtInterClassDesc *, std::set<const DtLgrDimensionDesc *> > myInterClassToDimensions;
98 
99  // 1.3 DDM
100  std::map<DtString, DtLgrSpaceDesc *> mySpacesByName;
101  std::map<const DtObjClassDesc *, std::map<DtString, DtLgrSpaceDesc *> > myClassToAttrToSpace;
102  std::map<const DtInterClassDesc *, DtLgrSpaceDesc *> myInterClassToSpace;
103  };
104 
105 }
106 
107 #endif
108 #endif

Document ID: Generated on Sun Dec 15 18:04:30 EST 2013 from SVN revision 134418
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)