lgrHlaDatabasePrinter.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 
00008 
00009 #if DtHLA
00010 
00011 #ifndef lgrHlaDatabasePrinter_H_
00012 #define lgrHlaDatabasePrinter_H_
00013 
00014 #include "lgrDatabasePrinter.h"
00015 
00016 #include <map>
00017 #include <set>
00018 #include <lgrHlaAttribute.h>
00019 
00020 class DtDatabaseInterface;
00021 class DtDatatypeManager;
00022 class DtInteractionClassFedNode;
00023 class DtOMTTree;
00024 class DtObjectClassFedNode;
00025 class DtOutputStream;
00026 
00027 namespace MAKLogger
00028 {
00029    class DtBaseFomDesc;
00030    class DtBaseInterClassDesc;
00031    class DtConstLgrHlaMessage;
00032    class DtLgrHlaCheckpointTableFactory;
00033    class DtLgrHlaInteractionTableFactory;
00034    class DtLgrHlaObjectTableFactory;
00035    class DtPacket;
00036 
00038    class DT_DLL_SQLEXPORTER DtLgrHlaDatabasePrinter : public DtLgrDatabasePrinter
00039    {
00040    public:
00041 
00043       DtLgrHlaDatabasePrinter(DtOutputStream& log,
00044          const MAKLogger::DtBaseFomDesc& fom, DtOMTTree* omtTree,
00045          DtDatabaseInterface& databaseInterface);
00046 
00048       virtual ~DtLgrHlaDatabasePrinter();
00049 
00050    private:
00052       DtLgrHlaDatabasePrinter(const DtLgrHlaDatabasePrinter&);
00053       DtLgrHlaDatabasePrinter& operator=(const DtLgrHlaDatabasePrinter&);
00055    public:
00056 
00058       virtual void setUseShortTableNames(bool shortNames);
00059 
00061       virtual void setGenerateInstanceTable( bool generate);
00062 
00064       virtual void setGenerateCheckpointTable( bool generate);
00065 
00067       virtual void setGenerateLargeSubcomponentTables(bool generate);
00068 
00071       virtual void setLargeSubcomponentThreshold(int threshold);
00072 
00074       virtual void createDefaultTables();
00075 
00077       virtual void printInteraction(const MAKLogger::DtConstLgrHlaMessage& hlaMsg);
00078 
00080       virtual void printUpdate(const MAKLogger::DtConstLgrHlaMessage& hlaMsg);
00081 
00083       virtual void printCheckpoint(const MAKLogger::DtPacket& packet);
00084 
00086       virtual void printRemoval(const MAKLogger::DtConstLgrHlaMessage& hlaMsg);
00087 
00088    protected:
00089 
00090       typedef std::set<MAKLogger::DtLgrHlaHandle> InstanceSet;
00091 
00092       //Internal cache data structure.
00093       struct InterClassCache
00094       {
00095          const MAKLogger::DtBaseInterClassDesc* classDesc;
00096          DtInteractionClassFedNode* fedNode;
00097          DtLgrDatabasePrinter::TableList tables;
00098       };
00099 
00100       //Internal cache data structure.
00101       struct ObjClassCache
00102       {
00103          const MAKLogger::DtBaseObjClassDesc* classDesc;
00104          DtObjectClassFedNode* fedNode;
00105          DtLgrDatabasePrinter::TableList tables;
00106       };
00107 
00108       typedef std::map<MAKLogger::DtLgrHlaHandle,InterClassCache>
00109          InteractionLookupMap;
00110 
00111       typedef std::map<MAKLogger::DtLgrHlaHandle,ObjClassCache>
00112          ObjectLookupMap;
00113 
00116       void outputToDatabase(const MAKLogger::DtBaseObjClassDesc& hlaClass,
00117          const MAKLogger::DtConstLgrHlaMessage& hlaMsg);
00118 
00120       InterClassCache& interCache( MAKLogger::DtLgrHlaHandle classHandle );
00121 
00123       ObjClassCache& objCache(MAKLogger::DtLgrHlaHandle classHandle );
00124 
00125       MAKLogger::DtBaseFomDesc* myPacketFom;
00126       DtOMTTree* myOMTTree;
00127       DtDatatypeManager* myDatatypeManager;
00128       InteractionLookupMap myInteractionLookupMap;
00129       InteractionLookupMap::iterator myLastInteractionIter;
00130       MAKLogger::DtLgrHlaHandle myLastInteractionHandle;
00131       DtLgrHlaInteractionTableFactory* myInteractionTableFac;
00132       ObjectLookupMap myObjectLookupMap;
00133       ObjectLookupMap::iterator myLastObjectIter;
00134       MAKLogger::DtLgrHlaHandle myLastObjectHandle;
00135       DtLgrHlaObjectTableFactory* myObjectTableFac;
00136       DtLgrHlaCheckpointTableFactory* myCheckpointTableFac;
00137       InstanceSet myObjectInstances;
00138       bool myGenerateInstanceTable;
00139       bool myGenerateCheckpointTable;
00140    };
00141 
00142 }
00143 
00144 #endif
00145 #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)