Go to the documentation of this file.00001
00002
00003
00004
00005
00008
00009 #ifndef lgrFileFormatter_H_
00010 #define lgrFileFormatter_H_
00011
00012 #include "lgrCore.h"
00013 #include "virtualConstructor.h"
00014 #include "loggerFileMetaData.h"
00015 #include "filePosition.h"
00016 #include <vector>
00017
00018 namespace MAKLogger
00019 {
00020
00021 class DtLoggerFile;
00022 class DtSmartBuffer;
00023 class DtMessageBuffer;
00024 class DtLgrEntityTracker;
00025
00033 class DT_DLL_LGRCORE DtLgrFileFormatter
00034 {
00035 protected:
00036
00042 DtLgrFileFormatter(DtLoggerFile*);
00043
00044 public:
00045
00047 virtual ~DtLgrFileFormatter();
00048
00049 private:
00051 DtLgrFileFormatter(const DtLgrFileFormatter&);
00053 DtLgrFileFormatter& operator=(const DtLgrFileFormatter&);
00054
00055 public:
00056
00058
00059 virtual DtLoggerFile* loggerFile();
00060 virtual const DtLoggerFile* loggerFile() const;
00062
00066 virtual void setSerialMode(bool enable);
00067
00069 virtual bool serialMode() const;
00070
00072
00073 DtLoggerFileMetaData* metaData();
00074 const DtLoggerFileMetaData* metaData() const;
00076
00078 virtual void copyMetaData(const DtLgrFileFormatter* formatter);
00079
00081 virtual DtLgrEntityTracker* entityTracker() const;
00082
00085 virtual void setTimeLimit(double limit);
00086
00088
00089
00098 virtual void initializeSerialMode(DtFilePosition firstPacket = 0,
00099 DtFilePosition lastPacket = 0) = 0;
00100
00102 virtual bool isEofValid() const = 0;
00103
00112 virtual bool atEndOfFile() = 0;
00113
00118 virtual bool seekToFirstPacket() = 0;
00119
00124 virtual bool seekToFirstPacket(int type) = 0;
00125
00130 virtual bool seekToLastPacket() = 0;
00131
00136 virtual bool seekToLastPacket(int type) = 0;
00137
00142 virtual bool seekToFirstPacketBeforeTime(double time) = 0;
00143
00147 virtual bool seekToFirstPacketBeforeTime(int type,double time) = 0;
00148
00153 virtual bool seekToFirstPacketAfterTime(double time) = 0;
00154
00159 virtual bool seekToFirstPacketAfterTime(int type,double time) = 0;
00160
00164 virtual bool seekToNextPacket() = 0;
00165
00170 virtual bool seekToNextPacket(int type) = 0;
00171
00175 virtual bool seekToPreviousPacket() = 0;
00176
00181 virtual bool seekToPreviousPacket(int type) = 0;
00182
00185 virtual void seekToPosition(DtFilePosition) = 0;
00186
00189 virtual double currentPacketTime() = 0;
00190
00193 virtual int currentPacketType() = 0;
00194
00197 virtual size_t currentPacketSize() = 0;
00198
00200 virtual DtFilePosition currentPosition() = 0;
00201
00203 virtual bool hasCheckpoints() const = 0;
00204
00209 virtual void readMetaData() = 0;
00210
00212 virtual void readMetaData(DtLoggerFileMetaData::DataPosition position) = 0;
00213
00215 virtual void writeMetaData(DtLoggerFileMetaData::DataPosition position) = 0;
00216
00220 virtual void readPacketsUptoCount(DtMessageBuffer&,DtMemoryBufferSP,int packetCount) = 0;
00221
00224 virtual void readPacketsUptoSize(DtMessageBuffer&,DtMemoryBufferSP) = 0;
00225
00230 virtual void readPacketsUpToTime(DtMessageBuffer&,DtMemoryBufferSP,double time,
00231 bool inclusive = true) = 0;
00232
00235 virtual void writePackets(const DtMessageBuffer&) = 0;
00236
00239 virtual void writePacket(const DtPacket& packet) = 0;
00240
00250 virtual size_t writePacket(const DtPacket&,void* memory, size_t memorySize,
00251 int fileWriteBufferOffset = -1 ) = 0;
00252
00254 virtual void setDuration(double duration) = 0;
00255
00257 virtual double duration() const = 0;
00258
00260 virtual size_t headerSize() const = 0;
00261
00263 virtual size_t tailSize() const = 0;
00264
00266
00267 protected:
00268
00269 DtLoggerFile* myLoggerFile;
00270 DtLoggerFileMetaData* myLoggerMetaData;
00271 bool mySerialMode;
00272 double myReadTimeLimit;
00273 };
00274 }
00275
00276 #endif