Go to the documentation of this file.00001
00002
00003
00004
00005
00008
00009 #ifndef lgrHlaInteractionTableFactory_H_
00010 #define lgrHlaInteractionTableFactory_H_
00011
00012 #if DtHLA
00013
00014 #include "lgrSqlExporter.h"
00015 #include "lgrHlaTableFactory.h"
00016
00017 class DtDatabaseTable;
00018 class DtDatabaseColumn;
00019 class DtInteractionClassFedNode;
00020 class DtOMTTree;
00021 class DtStringTree;
00022 class DtDatatypeManager;
00023
00024 #include <parameterFedNode.h>
00025 #include <vlutil/vlString.h>
00026 #include <lgrHlaAttribute.h>
00027 #include <map>
00028
00029 namespace MAKLogger
00030 {
00031 class DtBaseInterClassDesc;
00032 class DtConstLgrHlaMessage;
00033
00036 class DT_DLL_SQLEXPORTER DtLgrHlaInteractionTableFactory : public DtLgrHlaTableFactory
00037 {
00038 public:
00039
00041 DtLgrHlaInteractionTableFactory(DtOMTTree* omtTree,DtDatatypeManager* datatypeManager);
00042
00044 virtual ~DtLgrHlaInteractionTableFactory();
00045
00046 private:
00048 DtLgrHlaInteractionTableFactory(const DtLgrHlaInteractionTableFactory&);
00049 DtLgrHlaInteractionTableFactory& operator=(const DtLgrHlaInteractionTableFactory&);
00051 public:
00052
00057 virtual const DtString& getTableName(const DtBaseInterClassDesc& interClass);
00058
00060 std::vector<DtDatabaseTableSP> createTables(
00061 const DtBaseInterClassDesc& classDesc,
00062 const DtInteractionClassFedNode& fedNode,
00063 const DtConstLgrHlaMessage& hlaMessage );
00064
00066 void updateTables( std::vector<DtDatabaseTableSP>& tables,
00067 const DtBaseInterClassDesc& classDesc,
00068 const DtInteractionClassFedNode& fedNode,
00069 const DtConstLgrHlaMessage& hlaMessage);
00070
00071 protected:
00072
00073 typedef std::map<DtLgrHlaHandle,const DtParameterFedNode*> \
00074 ParameterHandleNodeMap;
00075
00076 typedef std::map<DtLgrHlaHandle,ParameterHandleNodeMap> \
00077 InterClassParamHandleNodeMap;
00078
00080 virtual void addDefaultColumns(DtDatabaseTable& table,
00081 const DtConstLgrHlaMessage& hlaMessage);
00082
00084 virtual void updateDefaultColumns(DtDatabaseTable& table,
00085 const DtConstLgrHlaMessage& hlaMessage);
00086
00088 const DtParameterFedNode* getParamNode(
00089 const DtBaseInterClassDesc& classDesc,
00090 DtLgrHlaHandle paramHandle,
00091 const DtInteractionClassFedNode& fedNode );
00092
00093 DtDatabaseTableSP createSubTable( const DtDatabaseTable& primaryTable,
00094 const DtString& subName, std::vector<DtDatabaseTableSP> &tables );
00095
00096 void updateSubTableDefaultColumns( const DtDatabaseTable& primaryTable,
00097 DtDatabaseTable& currentTable,
00098 const DtConstLgrHlaMessage& hlaMessage);
00099
00100 DtDatabaseColumn* myUniqueIdentifierColumn;
00101 DtDatabaseColumn* myTimestampColumn;
00102 DtDatabaseColumn* myParentEntryIdColumn;
00103
00104 DtDatabaseColumn* myTagColumn;
00105 DtString myTableBuffer;
00106 InterClassParamHandleNodeMap myInterClassParamNodeMap;
00107 };
00108
00109 }
00110
00111 #endif
00112
00113 #endif