MAK Data Logger API Documentation for HLA
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 
14 #include "lgrSqlExporter.h"
15 
16 #include <databaseTable.h>
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;
30 
31 namespace MAKLogger
32 {
33  class DtBaseHlaValue;
34 
37  {
38  private:
41  DtLgrHlaTableFactory& operator=(const DtLgrHlaTableFactory&);
43 
44  public:
47 
49  virtual ~DtLgrHlaTableFactory();
50 
52  virtual void setUseShortTableNames(bool shortNames);
53 
55  virtual void setLog(DtOutputStream& log);
56 
58  DtOutputStream& log();
59 
61  void createAttributeColumn( const DtDatatypeFedNode* attrDatatypeNode,
62  DtDatabaseTableSP primaryTable, std::vector<DtDatabaseTableSP>& tables);
63 
65  virtual DtDatabaseTableSP createSubTable(
66  const DtDatabaseTable& primaryTable, const DtString& subName,
67  std::vector<DtDatabaseTableSP>& tables ) = 0;
68 
70 
71  virtual void setGenerateLargeSubcomponentTables(bool generate);
72  virtual bool generateLargeSubcomponentTables() const;
74 
75 
77 
78 
79 
80  virtual int largeSubcomponentThreshold() const;
81  virtual void setLargeSubcomponentThreshold(int threshold);
83 
84  protected:
85  typedef std::set<DtString> ShortNameSet;
86 
88  virtual void makeTableName( DtString& stringToSet,
89  const MAKLogger::DtBaseHlaValue& hlaClass,
90  const char* baseNameToRemove);
91 
93  virtual void createColumns( const DtString& currentType, DtDatabaseTableSP primaryTable,
94  const DtString& currentName, const DtString& cardinality );
95 
97  virtual void addSimpleTypeColumn( const DtDatatypeRep* typeRep,
98  const DtString& cardinality, DtDatabaseTableSP primaryTable,
99  const DtString& currentName ) const;
100 
102  virtual void createArrayTable( DtDatabaseTableSP primaryTable,
103  const DtDatatypeFedNode* attrDatatypeNode,
104  std::vector<DtDatabaseTableSP>& tables);
105 
106  // Create ARRAY type columns
107  virtual void createArrayColumns( const DtString& currentType,
108  const DtString& currentName, DtDatabaseTableSP primaryTable );
109 
111  virtual void updateTableValues(const DtStringTree* node,
112  std::vector<DtDatabaseTableSP>& tables,DtDatabaseTableSP currentTable,
113  const DtString& parentName);
114 
116  virtual void setColumnValue( const DtString& columnDataType,
117  const DtString& columnValue, DtDatabaseColumn &column );
118 
120  virtual void updateArrayValues(DtDatabaseTableSP currentTable,
121  const DtStringTree* node, const DtString& columnName);
122 
127  virtual DtString getSubTableName( const DtString& primaryTableName,
128  const DtString& attributeName,const DtString& rootName );
129 
131  virtual DtDatabaseTableSP findTable(
132  const std::vector<DtDatabaseTableSP>& tables, const DtString& tableName);
133 
136  virtual int numberOfSubcomponents(const DtString& dataTypeName);
137 
138  protected:
139 
141  static void appendName( DtString &name, const DtString& sufix );
142 
143  protected:
144 
150  DtOutputStream myDefaultLog;
151  DtOutputStream* myLog;
153 
154  typedef std::set<DtString> ColumnLog;
158  };
159 }
160 
161 #endif
162 #endif

Document ID: Generated on Sun Dec 15 18:04:30 EST 2013 from SVN revision 134418
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)