lgrHlaInteractionTableFactory.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
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

Document ID: Generated on Tue Oct 11 19:41:03 EDT 2011 from SVN revision 107422
Copyright © 2005-2011 VT MÄK Inc. All Rights Reserved (www.mak.com)