Go to the documentation of this file.00001
00002
00003
00004
00005
00008
00009 #ifndef lgrPduDatabaseEncoder_H_
00010 #define lgrPduDatabaseEncoder_H_
00011
00012 #if DtDIS
00013
00014 #include "lgrSqlExporter.h"
00015
00016 #include <databaseTable.h>
00017 #include <vector>
00018 #include <vlutil/vlString.h>
00019 #include <vlpi/disEnums.h>
00020
00021 class DtDatabaseColumn;
00022 class DtPdu;
00023
00024 namespace MAKLogger
00025 {
00026 class DtAbsoluteTime;
00027
00029 class DT_DLL_SQLEXPORTER DtLgrPduDatabaseEncoder
00030 {
00031 public:
00033 DtLgrPduDatabaseEncoder();
00034
00036 virtual ~DtLgrPduDatabaseEncoder();
00037
00039 static void bin2HexString(DtString& output,const void* memory,size_t length);
00040
00041
00043
00045 virtual const DtString& pduName() const = 0;
00046
00047 protected:
00050 virtual void encodePdu(const DtPdu& pdu,std::vector<DtDatabaseTableSP>& tables) const = 0;
00051
00052 public:
00055 virtual std::vector<DtDatabaseTableSP> getTableDefinitions() const;
00056
00058
00060 void encodeMessage(const MAKLogger::DtAbsoluteTime& arrivalTime,
00061 const DtPdu& pdu, std::vector<DtDatabaseTableSP>& tables) const ;
00062
00063 protected:
00065 virtual DtDatabaseTable* createDefaultPrimaryTable(const DtString& tableName) const;
00066
00068 virtual DtDatabaseTable* createSubTable(const DtString& tableName) const ;
00069
00071 virtual void updateDefaultPrimaryTable(
00072 const MAKLogger::DtAbsoluteTime& arrivalTime, const DtPdu& pdu,
00073 DtDatabaseTableSP table) const;
00074
00076 virtual void updateDefaultSubTable(
00077 const MAKLogger::DtAbsoluteTime& arrivalTime, const DtPdu& pdu,
00078 const DtDatabaseTableSP primaryTable, DtDatabaseTableSP table) const;
00079
00080 DtDatabaseColumn* myPrimaryTableIdColumn;
00081 DtDatabaseColumn* myPrimaryTableSizeColumn;
00082 DtDatabaseColumn* myArrivalTimeColumn;
00083 DtDatabaseColumn* myTimeStampColumn;
00084 DtDatabaseColumn* myTimeStampTypeColumn;
00085 DtDatabaseColumn* myExerciseIdColumn;
00086 DtDatabaseColumn* mySubTableArrivalPrimaryIdColumn;
00087
00088 DtString myAbsoluteTimeStampEnumStr;
00089 DtString myRelativeTimeStampEnumStr;
00090
00091 };
00092 }
00093
00094 #endif
00095 #endif