Go to the documentation of this file.00001
00002
00003
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
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