MAK Data Logger API Documentation for DIS
lgrHlaDatabasePrinter.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 #if DtHLA
10 
11 #ifndef lgrHlaDatabasePrinter_H_
12 #define lgrHlaDatabasePrinter_H_
13 
14 #include "lgrDatabasePrinter.h"
15 
16 #include <map>
17 #include <set>
18 #include <lgrHlaAttribute.h>
19 
21 class DtDatatypeManager;
23 class DtOMTTree;
25 class DtOutputStream;
26 
27 namespace MAKLogger
28 {
29  class DtBaseFomDesc;
30  class DtBaseInterClassDesc;
31  class DtConstLgrHlaMessage;
32  class DtLgrHlaCheckpointTableFactory;
33  class DtLgrHlaInteractionTableFactory;
34  class DtLgrHlaObjectTableFactory;
35  class DtPacket;
36 
38  class DT_DLL_SQLEXPORTER DtLgrHlaDatabasePrinter : public DtLgrDatabasePrinter
39  {
40  public:
41 
43  DtLgrHlaDatabasePrinter(DtOutputStream& log,
44  const MAKLogger::DtBaseFomDesc& fom, DtOMTTree* omtTree,
45  DtDatabaseInterface& databaseInterface);
46 
48  virtual ~DtLgrHlaDatabasePrinter();
49 
50  private:
52  DtLgrHlaDatabasePrinter(const DtLgrHlaDatabasePrinter&);
53  DtLgrHlaDatabasePrinter& operator=(const DtLgrHlaDatabasePrinter&);
55  public:
56 
58  virtual void setUseShortTableNames(bool shortNames);
59 
61  virtual void setGenerateInstanceTable( bool generate);
62 
64  virtual void setGenerateCheckpointTable( bool generate);
65 
67  virtual void setGenerateLargeSubcomponentTables(bool generate);
68 
71  virtual void setLargeSubcomponentThreshold(int threshold);
72 
74  virtual void createDefaultTables();
75 
77  virtual void printInteraction(const MAKLogger::DtConstLgrHlaMessage& hlaMsg);
78 
80  virtual void printUpdate(const MAKLogger::DtConstLgrHlaMessage& hlaMsg);
81 
83  virtual void printCheckpoint(const MAKLogger::DtPacket& packet);
84 
86  virtual void printRemoval(const MAKLogger::DtConstLgrHlaMessage& hlaMsg);
87 
88  protected:
89 
90  typedef std::set<MAKLogger::DtLgrHlaHandle> InstanceSet;
91 
92  //Internal cache data structure.
93  struct InterClassCache
94  {
95  const MAKLogger::DtBaseInterClassDesc* classDesc;
98  };
99 
100  //Internal cache data structure.
101  struct ObjClassCache
102  {
103  const MAKLogger::DtBaseObjClassDesc* classDesc;
104  DtObjectClassFedNode* fedNode;
106  };
107 
108  typedef std::map<MAKLogger::DtLgrHlaHandle,InterClassCache>
109  InteractionLookupMap;
110 
111  typedef std::map<MAKLogger::DtLgrHlaHandle,ObjClassCache>
112  ObjectLookupMap;
113 
116  void outputToDatabase(const MAKLogger::DtBaseObjClassDesc& hlaClass,
117  const MAKLogger::DtConstLgrHlaMessage& hlaMsg);
118 
120  InterClassCache& interCache( MAKLogger::DtLgrHlaHandle classHandle );
121 
123  ObjClassCache& objCache(MAKLogger::DtLgrHlaHandle classHandle );
124 
125  MAKLogger::DtBaseFomDesc* myPacketFom;
126  DtOMTTree* myOMTTree;
127  DtDatatypeManager* myDatatypeManager;
128  InteractionLookupMap myInteractionLookupMap;
129  InteractionLookupMap::iterator myLastInteractionIter;
130  MAKLogger::DtLgrHlaHandle myLastInteractionHandle;
131  DtLgrHlaInteractionTableFactory* myInteractionTableFac;
132  ObjectLookupMap myObjectLookupMap;
133  ObjectLookupMap::iterator myLastObjectIter;
134  MAKLogger::DtLgrHlaHandle myLastObjectHandle;
135  DtLgrHlaObjectTableFactory* myObjectTableFac;
136  DtLgrHlaCheckpointTableFactory* myCheckpointTableFac;
137  InstanceSet myObjectInstances;
138  bool myGenerateInstanceTable;
139  bool myGenerateCheckpointTable;
140  };
141 
142 }
143 
144 #endif
145 #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)