MAK Data Logger API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lgrHlaDatabasePrinter.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2024 MAK Technologies, Inc
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 #if DtHLA
10 
11 #ifndef lgrHlaDatabasePrinter_H_
12 #define lgrHlaDatabasePrinter_H_
13 
15 
16 #include <map>
17 #include <set>
18 #include <lgrSim/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 
89  virtual void printInitialState(const MAKLogger::DtConstLgrHlaMessage& hlaMsg);
90 
91  protected:
92 
93  typedef std::set<MAKLogger::DtLgrHlaHandle> InstanceSet;
94 
95  //Internal cache data structure.
96  struct InterClassCache
97  {
98  const MAKLogger::DtBaseInterClassDesc* classDesc;
101  };
102 
103  //Internal cache data structure.
104  struct ObjClassCache
105  {
106  const MAKLogger::DtBaseObjClassDesc* classDesc;
107  DtObjectClassFedNode* fedNode;
109  };
110 
111  typedef std::map<MAKLogger::DtLgrHlaHandle,InterClassCache>
112  InteractionLookupMap;
113 
114  typedef std::map<MAKLogger::DtLgrHlaHandle,ObjClassCache>
115  ObjectLookupMap;
116 
119  void outputToDatabase(const MAKLogger::DtBaseObjClassDesc& hlaClass,
120  const MAKLogger::DtConstLgrHlaMessage& hlaMsg);
121 
123  InterClassCache& interCache( MAKLogger::DtLgrHlaHandle classHandle );
124 
126  ObjClassCache& objCache(MAKLogger::DtLgrHlaHandle classHandle );
127 
128  MAKLogger::DtBaseFomDesc* myPacketFom;
129  DtOMTTree* myOMTTree;
130  DtDatatypeManager* myDatatypeManager;
131  InteractionLookupMap myInteractionLookupMap;
132  InteractionLookupMap::iterator myLastInteractionIter;
133  MAKLogger::DtLgrHlaHandle myLastInteractionHandle;
134  DtLgrHlaInteractionTableFactory* myInteractionTableFac;
135  ObjectLookupMap myObjectLookupMap;
136  ObjectLookupMap::iterator myLastObjectIter;
137  MAKLogger::DtLgrHlaHandle myLastObjectHandle;
138  DtLgrHlaObjectTableFactory* myObjectTableFac;
139  DtLgrHlaCheckpointTableFactory* myCheckpointTableFac;
140  InstanceSet myObjectInstances;
141  bool myGenerateInstanceTable;
142  bool myGenerateCheckpointTable;
143  };
144 
145 }
146 
147 #endif
148 #endif
#define DT_DLL_SQLEXPORTER
Definition: lgrSqlExporter.h:19
This class handles the conversion between a byte stream and an English readable view of the data in a...
Definition: datatypeManager.h:41
Contains MAKLogger::DtLgrHlaHandle typedef and MAKLogger::DtLgrValueReference and MAKLogger::DtLgrVal...
defines an object class inside our Fed Tree
Definition: interactionClassFedNode.h:25
defines an object class inside our Fed Tree
Definition: objectClassFedNode.h:30
std::vector< DtDatabaseTableSP > TableList
Definition: lgrDatabasePrinter.h:42
A generic packed of typed binary data.
Definition: packet.h:41
A tree using the an OMT File information.
Definition: omtTree.h:58
Contains DtLgrDatabasePrinter class.
DtDatabaseInterface is an interface object accessing and modifying a database.
Definition: databaseInterface.h:29

Document ID: Generated on Fri May 31 15:45:35 EDT 2024 from SVN revision 266500
Copyright © 2024 MAK Technologies. All Rights Reserved (www.mak.com)