MAK Data Logger API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lgrHlaObjectTableFactory.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2025 MAK Technologies, Inc
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 #if DtHLA
10 #ifndef lgrHlaObjectTableFactory_H_
11 #define lgrHlaObjectTableFactory_H_
12 
16 
17 #include <vlutil/vlString.h>
18 #include <vector>
19 #include <lgrSim/lgrHlaAttribute.h>
20 
21 class DtAttributeFedNode;
22 class DtDatatypeManager;
23 class DtDatabaseColumn;
24 class DtOMTTree;
25 class DtObjectClassFedNode;
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  virtual DtDatabaseTableSP createVariantSubTable(const DtDatabaseTable& primaryTable,
76  const DtString& variantName, const DtString& alternativeName, std::vector<DtDatabaseTableSP>& tables);
77 
79  void updateTables( std::vector<DtDatabaseTableSP>& tables,
80  const MAKLogger::DtBaseObjClassDesc& classDesc,
81  const DtObjectClassFedNode& fedNode,
82  const MAKLogger::DtConstLgrHlaMessage& hlaMessage);
83 
85  DtDatabaseTable& addObjectInstance(const MAKLogger::DtBaseObjClassDesc& classDesc,
86  const MAKLogger::DtConstLgrHlaMessage& message);
87 
89  DtDatabaseTable& removeObjectInstance(
90  const MAKLogger::DtConstLgrHlaMessage& message,
91  const std::vector<DtString>*& removalColumns,
93  const DtString*& removalCondition );
94 
95 
96  protected:
97 
98  typedef std::map<MAKLogger::DtLgrHlaHandle,const DtAttributeFedNode*> \
99  AttributeHandleNodeMap;
100 
101  typedef std::map<MAKLogger::DtLgrHlaHandle,AttributeHandleNodeMap> \
102  ObjClassAttrHandleNodeMap;
103 
105  virtual void addDefaultColumns(DtDatabaseTable& table,
106  const MAKLogger::DtConstLgrHlaMessage& hlaMessage);
107 
109  virtual void updateDefaultColumns(DtDatabaseTable& table,
110  const MAKLogger::DtConstLgrHlaMessage& hlaMessage);
111 
113  virtual void updateSubTableDefaultColumns(const DtDatabaseTable& primaryTable,
114  DtDatabaseTable& currentTable,
115  const MAKLogger::DtConstLgrHlaMessage& hlaMessage);
116 
118  virtual const DtAttributeFedNode* getAttrNode(
119  const MAKLogger::DtBaseObjClassDesc &classDesc,
120  MAKLogger::DtLgrHlaHandle paramHandle,
121  const DtObjectClassFedNode& fedNode );
122 
123  protected:
124  DtString myTableBuffer;
125 
126  DtDatabaseTableSP myObjectInstanceTable;
127  DtDatabaseColumn* myObjectNameColumn;
128  DtDatabaseColumn* myObjectHandleColumn;
129  DtDatabaseColumn* myObjectClassNameColumn;
130  DtDatabaseColumn* myObjectClassHandleColumn;
131  DtDatabaseColumn* myObjectDiscoveryTimeColumn;
132  DtDatabaseColumn* myObjectRemovalTimeColumn;
133 
134  ObjClassAttrHandleNodeMap myObjClassAttrNodeMap;
135  std::vector<DtString> myRemovalColumns;
136  DtString myRemovalCondition;
137 
138  };
139 
140 }
141 
142 #endif
143 #endif
Definition: databaseColumn.h:26
#define DT_DLL_SQLEXPORTER
Definition: lgrSqlExporter.h:19
Contains MAKLogger::DtLgrHlaHandle typedef and MAKLogger::DtLgrValueReference and MAKLogger::DtLgrVal...
A table is simply a table name and a list of column entries (DtDatabaseColumn).
Definition: databaseTable.h:23
Contains DtLgrHlaTableFactory class.
std::shared_ptr< DtDatabaseTable > DtDatabaseTableSP
Definition: databaseTable.h:112
Contains DtDatabaseTable.
DtDatabaseInterface is an interface object accessing and modifying a database.
Definition: databaseInterface.h:29
Contains MAKLogger.

Document ID: Generated on Thu Dec 18 15:35:09 EST 2025 from SVN revision 282494
Copyright © 2024 MAK Technologies. All Rights Reserved (www.mak.com)