MAK Data Logger API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lgrHlaTableFactory.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 lgrHlaTableFactory_H_
12 #define lgrHlaTableFactory_H_
13 
15 
17 #include <set>
18 #include <vector>
19 #include <vlutil/vlPrint.h>
20 
21 
22 class DtDatabaseColumn;
23 class DtDatatypeFedNode;
24 class DtDatatypeRep;
25 class DtDatabaseColumn;
26 class DtDatatypeManager;
27 class DtOMTTree;
28 class DtString;
29 class DtStringTree;
31 
32 namespace MAKLogger
33 {
34  class DtBaseHlaValue;
35  class DtLgrVariableLengthData;
36  class DtConstLgrHlaMessage;
37 
39  class DT_DLL_SQLEXPORTER DtLgrHlaTableFactory
40  {
41  private:
43  DtLgrHlaTableFactory(const DtLgrHlaTableFactory&);
44  DtLgrHlaTableFactory& operator=(const DtLgrHlaTableFactory&);
46 
47  public:
49  DtLgrHlaTableFactory(DtOMTTree*,DtDatatypeManager*);
50 
52  virtual ~DtLgrHlaTableFactory();
53 
55  virtual void setUseShortTableNames(bool shortNames);
56 
58  virtual void setLog(DtOutputStream& log);
59 
61  virtual DtOutputStream& log();
62 
64  virtual void createAttributeColumn( const DtDatatypeFedNode* attrDatatypeNode,
65  DtDatabaseTableSP primaryTable, std::vector<DtDatabaseTableSP>& tables);
66 
68  virtual DtDatabaseTableSP createSubTable(
69  const DtDatabaseTable& primaryTable, const DtString& subName,
70  std::vector<DtDatabaseTableSP>& tables ) = 0;
71 
73 
74  virtual void setGenerateLargeSubcomponentTables(bool generate);
75  virtual bool generateLargeSubcomponentTables() const;
77 
78 
80 
81 
82 
83  virtual int largeSubcomponentThreshold() const;
84  virtual void setLargeSubcomponentThreshold(int threshold);
86 
87  protected:
88  typedef std::set<DtString> ShortNameSet;
89 
91  virtual void makeTableName( DtString& stringToSet,
92  const MAKLogger::DtBaseHlaValue& hlaClass,
93  const char* baseNameToRemove);
94 
96  virtual void createColumns( const DtString& currentType, DtDatabaseTableSP primaryTable,
97  const DtString& currentName, const DtString& cardinality );
98 
100  virtual void addSimpleTypeColumn( const DtDatatypeRep* typeRep,
101  const DtString& cardinality, DtDatabaseTableSP primaryTable,
102  const DtString& currentName ) const;
103 
105  virtual void createArrayTable( const DtDatatypeFedNode* attrDatatypeNode,
106  DtDatabaseTableSP primaryTable, std::vector<DtDatabaseTableSP>& tables);
107 
108  // Create ARRAY type columns
109  virtual void createArrayColumns( const DtString& arrayDataType,
110  const DtString& currentName, DtDatabaseTableSP table );
111 
113  virtual void createVariantTables(const DtDatatypeFedNode* attrDatatypeNode,
114  DtDatabaseTableSP primaryTable, std::vector<DtDatabaseTableSP>& tables);
115 
118  virtual void updateTableValues(const DtStringTree* node,
119  std::vector<DtDatabaseTableSP>& tables, DtDatabaseTableSP currentTable,
120  const DtString& parentName, bool skipNode);
121 
123  virtual void setColumnValue( const DtString& columnDataType,
124  const DtString& columnValue, DtDatabaseColumn &column );
125 
127  virtual void updateArrayValues(DtDatabaseTableSP currentTable,
128  const DtStringTree* node, const DtString& columnName);
129 
132  virtual DtString getSubTableName( const DtString& primaryTableName,
133  const DtString& attributeName,const DtString& rootName );
134 
136  virtual void updateTablesWithAttribute(std::vector<DtDatabaseTableSP>& tables,
137  DtDatabaseTableSP primaryTable, const DtString& rootName,
138  const DtConstLgrHlaMessage& hlaMessage, const DtLgrVariableLengthData& attributeValue,
139  const DtDatatypeFedNode* attributeNode);
140 
142  virtual void updateSubTableDefaultColumns(const DtDatabaseTable& primaryTable,
143  DtDatabaseTable& currentTable, const MAKLogger::DtConstLgrHlaMessage& hlaMessage);
144 
146  virtual DtDatabaseTableSP findTable(
147  const std::vector<DtDatabaseTableSP>& tables, const DtString& tableName);
148 
151  virtual int numberOfSubcomponents(const DtString& dataTypeName);
152 
156  virtual bool isVariantConsistent(DtVariantDatatypeNode* variantNode,
157  DtDatabaseColumn::DataType& variantType);
158 
159  protected:
160 
162  static void appendName( DtString &name, const DtString& suffix );
163 
164  protected:
165 
166  DtOMTTree* myOMTTree;
167  DtDatatypeManager* myDatatypeManager;
168  bool myUseShortNames;
169  ShortNameSet myShortNames;
170  int myThreshold;
171  DtOutputStream myDefaultLog;
172  DtOutputStream* myLog;
173  DtDatabaseColumn* myIndexColumn;
174 
175  typedef std::set<DtString> ColumnLog;
176  ColumnLog myErrorColumnLog;
177  bool myGenerateLargeSubcomponentTables;
178  int myLargeSubcomponentThreshold;
179 
180  DtDatabaseColumn* myUniqueIdentifierColumn;
181  DtDatabaseColumn* myArrivalTimeColumn;
182  DtDatabaseColumn* myParentEntryIdColumn;
183  DtDatabaseColumn* myTagColumn;
184 
185  unsigned int myMaxColumnNameLength;
186  };
187 }
188 
189 #endif
190 #endif

Document ID: Generated on Thu Jul 23 15:05:27 EDT 2020 from SVN revision 215371
Copyright © 2020 MAK Technologies. All Rights Reserved (www.mak.com)