Go to the documentation of this file.00001
00002
00003
00004
00005
00009
00010 #if DtDIS
00011
00012 #ifndef lgrDisPacketPrinter_H_
00013 #define lgrDisPacketPrinter_H_
00014
00015 #include "lgrDump.h"
00016
00017 #include <lgrPacketPrinter.h>
00018 #include <messageBuffer.h>
00019
00020 #include <vlutil/vlTime.h>
00021
00022 class DtDisPduFactory;
00023
00024 namespace MAKLogger
00025 {
00026 class DtPacket;
00027
00029 class DT_DLL_LGRDUMP DtLgrDisPacketPrinter : public DtLgrPacketPrinter
00030 {
00031 public:
00032
00033 DT_VIRTUAL_CTR(DtLgrDisPacketPrinter,(bool raw))
00034 DT_VIRTUAL_BASE_CTR(DtLgrPacketPrinter,(bool raw))
00035
00036
00037 virtual ~DtLgrDisPacketPrinter();
00038
00039 private:
00041 DtLgrDisPacketPrinter(const DtLgrDisPacketPrinter&);
00043 DtLgrDisPacketPrinter& operator=(const DtLgrDisPacketPrinter&);
00044
00045 public:
00046
00048 virtual void beginPrinting(const DtMessageIOInfo* info,
00049 const DtMessageInput* msgInput, const DtString& destination);
00050
00052 virtual void printPacket( const DtPacket& packet );
00053
00055 virtual void endPrinting();
00056
00057 protected:
00058
00060 std::ofstream& outputStream();
00061
00063 virtual void printPacketHeader(const DtPacket& packet);
00064
00066 virtual void printPacketTail(const DtPacket& packet);
00067
00069 void printOtherPacket(const DtPacket& packet);
00070
00072 void printConfigPacket(const DtPacket& packet);
00073
00075 void printDateTimePacket(const DtPacket& packet);
00076
00078 void printCheckpointPacket(const DtPacket& packet);
00079
00081 void printIndexTablePacket(const DtPacket& packet);
00082
00084 void printRecordingDataPacket(const DtPacket& packet);
00085
00087 void printEntityTablePacket(const DtPacket& packet);
00088
00090 void printPausePacket(const DtPacket& packet);
00091
00093 void printUnpausePacket(const DtPacket& packet);
00094
00096 void printPduPacket(const DtPacket& packet);
00097
00098 protected:
00099
00100 typedef void (DtLgrDisPacketPrinter::*PacketPrintFunction)(const DtPacket&);
00101 typedef std::map<DtPacket::DtPacketType,PacketPrintFunction> PrintFunctionMap;
00102
00103 DtDisPduFactory* myPduFactory;
00104
00105 int myPduCount;
00106 int myPacketCount;
00107 int myCheckpointCount;
00108
00109 bool myPrintRawData;
00110 PrintFunctionMap myPrintFunctionMap;
00111 std::ofstream* myOutputFile;
00112
00114 DtTime myFileDateTime;
00115
00117 DtMessageBuffer myEndMetadata;
00118
00120 DtTime myUnpauseTime;
00121
00122 };
00123 }
00124
00125 #endif
00126 #endif