lgrDisDatabasePrinter.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 lgrDisDatabasePrinter_H_
00010 #define lgrDisDatabasePrinter_H_
00011 
00012 #if DtDIS
00013 
00014 #include "lgrSqlExporter.h"
00015 #include "lgrDatabasePrinter.h"
00016 #include <vlutil/vlString.h>
00017 
00018 #include <map>
00019 #include <vlpi/disEnums.h>
00020 
00021 class DtDatabaseInterface;
00022 class DtOutputStream;
00023 class DtPduFactory;
00024 
00025 namespace MAKLogger
00026 {
00027 
00028    class DtLgrPduDatabaseEncoder;
00029    class DtLgrCheckpointTableFactory;
00030    class DtLgrDisObjectTableFactory;
00031    class DtPacket;
00032    class DtConstLgrDisMessage;
00033 
00034    class DT_DLL_SQLEXPORTER DtLgrDisDatabasePrinter : public DtLgrDatabasePrinter
00035    {
00036    public:
00037 
00038 
00040       DtLgrDisDatabasePrinter(DtOutputStream& log,
00041          DtDatabaseInterface& databaseInterface);
00042 
00044       virtual ~DtLgrDisDatabasePrinter();
00045 
00046    private:
00048       DtLgrDisDatabasePrinter(const DtLgrDisDatabasePrinter&);
00049       DtLgrDisDatabasePrinter& operator=(const DtLgrDisDatabasePrinter&);
00051 
00052    public:
00053 
00055       virtual void setGenerateInstanceTable( bool generate);
00056 
00058       virtual void setGenerateCheckpointTable( bool generate);
00059 
00061       virtual void createDefaultTables();
00062 
00064       virtual void printCheckpoint(const MAKLogger::DtPacket& packet);
00065 
00067       virtual void printPDU(const MAKLogger::DtPacket& packet);
00068 
00069    protected:
00070 
00072       virtual void printInstance( MAKLogger::DtConstLgrDisMessage &disMsg,
00073          const MAKLogger::DtPacket &packet );
00074 
00075       struct PduCacheEntry
00076       {
00077          DtLgrDatabasePrinter::TableList tables;
00078          const DtLgrPduDatabaseEncoder* encoder;
00079       };
00080 
00081       struct InstanceData
00082       {
00083          DtString id;
00084          DtString type;
00085          double lastTime;
00086          bool finalPduSet;
00087       };
00088 
00089       typedef std::map<DtU64,InstanceData> InstanceMap;
00090 
00091       typedef std::map<DtPduKind,PduCacheEntry> PduCache;
00092 
00093       bool myGenerateInstanceTable;
00094       bool myGenerateCheckpointTable;
00095       PduCache myPduCache;
00096       DtPduFactory* myPduFactory;
00097       DtLgrDisObjectTableFactory* myObjectTableFac;
00098       DtLgrCheckpointTableFactory* myCheckpointTableFac;
00099       InstanceMap myObjectInstances;
00100    };
00101 
00102 }
00103 
00104 #endif
00105 
00106 #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)