MAK Data Logger API Documentation for HLA
 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 
40  {
41  private:
44  DtLgrHlaTableFactory& operator=(const DtLgrHlaTableFactory&);
46 
47  public:
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  virtual void setGenerateLargeSubcomponentTables(bool generate);
75  virtual bool generateLargeSubcomponentTables() const;
77 
78 
80  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 
171  DtOutputStream myDefaultLog;
172  DtOutputStream* myLog;
174 
175  typedef std::set<DtString> ColumnLog;
179 
184 
185  unsigned int myMaxColumnNameLength;
186  };
187 }
188 
189 #endif
190 #endif
Base Hla Value object.
Definition: baseHlaValue.h:47
int myThreshold
Definition: lgrHlaTableFactory.h:170
DtDatabaseColumn * myParentEntryIdColumn
Definition: lgrHlaTableFactory.h:182
std::set< DtString > ColumnLog
Definition: lgrHlaTableFactory.h:175
bool myUseShortNames
Definition: lgrHlaTableFactory.h:168
ShortNameSet myShortNames
Definition: lgrHlaTableFactory.h:169
DataType
Definition: databaseColumn.h:32
Definition: databaseColumn.h:26
#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
Definition: hlaPacket.h:75
A Datatype Representation is a class that can take a group of bytes and display them in a certain typ...
Definition: datatypeRep.h:20
DtDatabaseColumn * myTagColumn
Definition: lgrHlaTableFactory.h:183
int myLargeSubcomponentThreshold
Definition: lgrHlaTableFactory.h:178
bool myGenerateLargeSubcomponentTables
Definition: lgrHlaTableFactory.h:177
std::set< DtString > ShortNameSet
Definition: lgrHlaTableFactory.h:88
DtOutputStream * myLog
Definition: lgrHlaTableFactory.h:172
A table is simply a table name and a list of column entries (DtDatabaseColumn).
Definition: databaseTable.h:23
Variable length data object compile-time compatible with the RTI 1516 implementation.
Definition: lgrVariableLengthData.h:21
DtDatatypeManager * myDatatypeManager
Definition: lgrHlaTableFactory.h:167
DtOutputStream myDefaultLog
Definition: lgrHlaTableFactory.h:171
Basically a struct with a destructor, a string tree is a collection of indexed strings used to hold m...
Definition: stringTree.h:16
DtOMTTree * myOMTTree
Definition: lgrHlaTableFactory.h:166
ColumnLog myErrorColumnLog
Definition: lgrHlaTableFactory.h:176
Represents an attribute inside a object class.
Definition: datatypeFedNode.h:21
DtDatabaseColumn * myUniqueIdentifierColumn
Definition: lgrHlaTableFactory.h:180
Base HLA table factory.
Definition: lgrHlaTableFactory.h:39
DtDatabaseColumn * myArrivalTimeColumn
Definition: lgrHlaTableFactory.h:181
unsigned int myMaxColumnNameLength
Definition: lgrHlaTableFactory.h:185
A tree using the an OMT File information.
Definition: omtTree.h:58
DtBoost::shared_ptr< DtDatabaseTable > DtDatabaseTableSP
Definition: databaseTable.h:112
DtDatabaseColumn * myIndexColumn
Definition: lgrHlaTableFactory.h:173
Definition: variantDatatypeNode.h:16
Contains DtDatabaseTable.
Contains MAKLogger.

Document ID: Generated on Thu Sep 2 15:35:22 EDT 2021 from SVN revision 233992
Copyright © 2021 MAK Technologies. All Rights Reserved (www.mak.com)