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 #ifdef DtHLA_1516
21  class DtLgrDimensionDesc;
22 #else
23  class DtLgrSpaceDesc;
24 #endif
25 
28  {
29  public:
31 
32  virtual ~DtLgrFomWithRegions();
33 
35  // builds or if it is called twice with the same name.
36  virtual void addSpace(const char* name);
37 
39  // builds or if it is called with an unrecognized SpaceName.
40  virtual void addDimension(const char* SpaceName, const char* dimName);
41 
43  // builds or if it is called twice with the same dimName.
44  virtual void addDimension(const char* dimName, unsigned long upperBound,
45  unsigned long defaultLowerBound, unsigned long defaultUpperBound,
46  bool excluded);
47 
49  // non-null space in HLA 1516 or if it is called with an
50  // unrecognized space in HLA 1.3.
51  virtual void addInterClass(const char* name,
52  const char* baseName, DtTransportType transport,
53  DtOrderType order, const char* space=NULL);
54 
56  virtual bool addInteractionDimension(const char* interactionName,
57  const char* dimension);
58 
60  // builds with a non-null space or if it is called with an unrecognized
61  // space in HLA 1.3.
62  virtual void addAttribute(const char* className,
63  const char* attrName, DtTransportType transport,
64  DtOrderType order, const char* space=NULL);
65 
67  virtual bool addAttributeDimension(const char* className,
68  const char* attrName, const char* dimName);
69 
70 #ifdef DtHLA_1516
71  virtual const DtLgrDimensionDesc *dimensionByName(const DtString &dimName) const;
72 
73  virtual std::set<const DtLgrDimensionDesc *> attributeDimensionsByClassAndAttributeName(
74  const DtObjClassDesc &objClass, const DtString &attrName) const;
75 
76  virtual std::set<const DtLgrDimensionDesc *> interactionDimensionsByClass(
77  const DtInterClassDesc &interClass) const;
78 #else
79  virtual const DtLgrSpaceDesc *spaceByName(const DtString &spaceName) const;
80 
81  virtual const DtLgrSpaceDesc *attributeSpaceByClassAndAttributeName(
82  const DtObjClassDesc &objClass, const DtString &attrName, bool searchAncesestors=false) const;
83 
84  virtual const DtLgrSpaceDesc *interactionSpaceByClass(const DtInterClassDesc &interClass) const;
85 #endif
86 
87  private:
89  // in principle, foms could be copied, but they contain a reference to the
90  // DtExerciseConn, so doing so would be of dubious validity and usefulness
94 
95  protected:
96 #ifdef DtHLA_1516
97  std::map<DtString, DtLgrDimensionDesc *> myDimensionsByName;
98  std::map<const DtObjClassDesc *, std::map<DtString, std::set<const DtLgrDimensionDesc *> > > myClassToAttrToDimensions;
99  std::map<const DtInterClassDesc *, std::set<const DtLgrDimensionDesc *> > myInterClassToDimensions;
100 #else
101  std::map<DtString, DtLgrSpaceDesc *> mySpacesByName;
102  std::map<const DtObjClassDesc *, std::map<DtString, DtLgrSpaceDesc *> > myClassToAttrToSpace;
103  std::map<const DtInterClassDesc *, DtLgrSpaceDesc *> myInterClassToSpace;
104 #endif
105  };
106 
107 }
108 
109 #endif
110 #endif

Document ID: Generated on Thu Apr 11 12:13:00 EDT 2013 from SVN revision 126011
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)