00001 /****************************************************************************** 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 00009 00010 #ifndef lgrHlaSqlExporter_H_ 00011 #define lgrHlaSqlExporter_H_ 00012 00013 #if DtHLA 00014 00015 #include "lgrSqlExporter.h" 00016 #include "lgrBaseSqlExporter.h" 00017 00018 #include <map> 00019 #include <packet.h> 00020 #include <virtualConstructor.h> 00021 00022 00023 class DtString; 00024 class DtDatabaseInterface; 00025 00026 namespace MAKLogger 00027 { 00028 00029 class DtBaseFomDesc; 00030 class DtLgrHlaDatabasePrinter; 00031 class DtLgrPacketFilter; 00032 class DtMessageIOInfo; 00033 class DtPacket; 00034 00035 00037 class DT_DLL_SQLEXPORTER DtLgrHlaSqlExporter : public DtLgrBaseSqlExporter 00038 { 00039 public: 00040 00041 DT_VIRTUAL_CTR(DtLgrHlaSqlExporter,()) 00042 DT_VIRTUAL_BASE_CTR(DtLgrPacketPrinter,()) 00043 00044 00045 virtual ~DtLgrHlaSqlExporter(); 00046 00047 private: 00049 DtLgrHlaSqlExporter(const DtLgrHlaSqlExporter&); 00051 DtLgrHlaSqlExporter& operator=(const DtLgrHlaSqlExporter&); 00052 00053 public: 00054 00056 virtual void beginPrinting(const MAKLogger::DtMessageIOInfo* info, 00057 const DtMessageInput* fileInput, const DtString& destination); 00058 00060 virtual void printPacket( const MAKLogger::DtPacket& packet ); 00061 00063 virtual void endPrinting(); 00064 00065 protected: 00066 00067 void printCheckpointPacket(const MAKLogger::DtPacket& packet); 00068 void printInteractionPacket(const MAKLogger::DtPacket& packet); 00069 void printUpdatePacket(const MAKLogger::DtPacket& packet); 00070 void printRemovalPacket(const MAKLogger::DtPacket& packet); 00071 00072 typedef std::list<MAKLogger::DtLgrPacketFilter*> PacketFilterList; 00073 00074 typedef void (DtLgrHlaSqlExporter::*PacketPrintFunction)(const MAKLogger::DtPacket&); 00075 typedef std::map<MAKLogger::DtPacket::DtPacketType,PacketPrintFunction> PrintFunctionMap; 00076 PrintFunctionMap myPrintFunctionMap; 00077 00078 MAKLogger::DtBaseFomDesc* myOutputFom; 00079 DtLgrHlaDatabasePrinter* myDatabasePrinter; 00080 }; 00081 00082 00083 } 00084 00085 #endif 00086 00087 #endif 00088