MAK Data Logger API Documentation for DIS
lgrHlaObjectTableFactory.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 #ifndef lgrHlaObjectTableFactory_H_
11 #define lgrHlaObjectTableFactory_H_
12 
13 #include "lgrSqlExporter.h"
14 #include "lgrHlaTableFactory.h"
15 #include <databaseTable.h>
16 
17 #include <vlutil/vlString.h>
18 #include <vector>
19 #include <lgrHlaAttribute.h>
20 
21 class DtAttributeFedNode;
22 class DtDatatypeManager;
23 class DtDatabaseColumn;
24 class DtOMTTree;
26 class DtStringTree;
28 
29 namespace MAKLogger
30 {
31  class DtBaseObjClassDesc;
32  class DtBaseParamDesc;
33  class DtConstLgrHlaMessage;
34 
37  class DT_DLL_SQLEXPORTER DtLgrHlaObjectTableFactory : public DtLgrHlaTableFactory
38  {
39  public:
40 
42  DtLgrHlaObjectTableFactory(DtOMTTree* omtTree,DtDatatypeManager* datatypeManager);
43 
45  virtual ~DtLgrHlaObjectTableFactory();
46 
47  private:
49  DtLgrHlaObjectTableFactory(const DtLgrHlaObjectTableFactory&);
50  DtLgrHlaObjectTableFactory& operator=(const DtLgrHlaObjectTableFactory&);
52  public:
53 
55  DtDatabaseTable& createObjectInstanceTable();
56 
61  virtual const DtString& getTableName(const MAKLogger::DtBaseObjClassDesc& objClass);
62 
64  std::vector<DtDatabaseTableSP> createTables(
65  const MAKLogger::DtBaseObjClassDesc& classDesc,
66  const DtObjectClassFedNode& fedNode,
67  const MAKLogger::DtConstLgrHlaMessage& hlaMessage);
68 
69 
71  DtDatabaseTableSP createSubTable( const DtDatabaseTable& primaryTable,
72  const DtString& attrNode, std::vector<DtDatabaseTableSP> &tables);
73 
75  void updateTables( std::vector<DtDatabaseTableSP>& tables,
76  const MAKLogger::DtBaseObjClassDesc& classDesc,
77  const DtObjectClassFedNode& fedNode,
78  const MAKLogger::DtConstLgrHlaMessage& hlaMessage);
79 
81  DtDatabaseTable& addObjectInstance(const MAKLogger::DtBaseObjClassDesc& classDesc,
82  const MAKLogger::DtConstLgrHlaMessage& message);
83 
85  DtDatabaseTable& removeObjectInstance(
86  const MAKLogger::DtConstLgrHlaMessage& message,
87  const std::vector<DtString>*& removalColumns,
89  const DtString*& removalCondition );
90 
91 
92  protected:
93 
94  typedef std::map<MAKLogger::DtLgrHlaHandle,const DtAttributeFedNode*> \
95  AttributeHandleNodeMap;
96 
97  typedef std::map<MAKLogger::DtLgrHlaHandle,AttributeHandleNodeMap> \
98  ObjClassAttrHandleNodeMap;
99 
101  virtual void addDefaultColumns(DtDatabaseTable& table,
102  const MAKLogger::DtConstLgrHlaMessage& hlaMessage);
103 
105  virtual void updateDefaultColumns(DtDatabaseTable& table,
106  const MAKLogger::DtConstLgrHlaMessage& hlaMessage);
107 
109  virtual void updateSubTableDefaultColumns(const DtDatabaseTable& primaryTable,
110  DtDatabaseTable& currentTable,
111  const MAKLogger::DtConstLgrHlaMessage& hlaMessage);
112 
114  virtual const DtAttributeFedNode* getAttrNode(
115  const MAKLogger::DtBaseObjClassDesc &classDesc,
116  MAKLogger::DtLgrHlaHandle paramHandle,
117  const DtObjectClassFedNode& fedNode );
118 
119  protected:
120  DtString myTableBuffer;
121 
122  DtDatabaseTableSP myObjectInstanceTable;
123  DtDatabaseColumn* myUniqueIdentifierColumn;
124  DtDatabaseColumn* myArrivalTimeColumn;
125  DtDatabaseColumn* myObjectNameColumn;
126  DtDatabaseColumn* myTagColumn;
127  DtDatabaseColumn* myObjectHandleColumn;
128  DtDatabaseColumn* myObjectClassNameColumn;
129  DtDatabaseColumn* myObjectClassHandleColumn;
130  DtDatabaseColumn* myObjectDiscoveryTimeColumn;
131  DtDatabaseColumn* myObjectRemovalTimeColumn;
132  DtDatabaseColumn* myParentEntryIdColumn;
133 
134  ObjClassAttrHandleNodeMap myObjClassAttrNodeMap;
135  std::vector<DtString> myRemovalColumns;
136  DtString myRemovalCondition;
137 
138  };
139 
140 }
141 
142 #endif
143 #endif

Document ID: Generated on Mon Jan 19 08:20:14 EST 2015 from SVN revision 149581
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)