Go to the documentation of this file.00001
00002
00003
00004
00005
00009
00010 #ifndef lgrFileInput_H_
00011 #define lgrFileInput_H_
00012
00013 #include "lgrCore.h"
00014 #include "messageInput.h"
00015 #include "filePosition.h"
00016
00017 namespace MAKLogger
00018 {
00019
00020 class DtAbsoluteTime;
00021 class DtLoggerPlaybackFile;
00022 class DtLgrEntityTracker;
00023
00026 class DT_DLL_LGRCORE DtLgrFileInput : public DtMessageInput
00027 {
00028
00029 protected:
00030 DtLgrFileInput();
00031
00032 public:
00033 virtual ~DtLgrFileInput();
00034
00035 private:
00037 DtLgrFileInput(const DtLgrFileInput&);
00039 DtLgrFileInput& operator=(const DtLgrFileInput&);
00040 public:
00041
00043 virtual const DtLoggerPlaybackFile* playbackFile() const = 0;
00044
00046 virtual void setReadBufferSize(size_t) = 0;
00047
00049 virtual size_t getReadBufferSize() const = 0;
00050
00052 virtual bool isCheckpointNecessary(DtAbsoluteTime currentTime,DtAbsoluteTime newTime) = 0;
00053
00055 virtual void seekToPreviousCheckpoint(DtAbsoluteTime timeToJumpBefore) = 0;
00056
00058 virtual void seekToNextCheckpoint(DtAbsoluteTime currentTime) = 0;
00059
00062 virtual double peekCurrentPacketTime() = 0;
00063
00066 virtual int peekCurrentPacketType() = 0;
00067
00070 virtual size_t peekCurrentPacketSize() = 0;
00071
00073 virtual const DtString& filename() const = 0;
00074
00076 virtual DtFilePosition fileSize() const = 0;
00077
00079 virtual DtFilePosition currentPosition() const = 0;
00080
00082 virtual DtAbsoluteTime firstMessageTime() const = 0;
00083
00085 virtual DtAbsoluteTime lastMessageTime() const = 0;
00086
00088 virtual DtRelativeTime duration() const = 0;
00089
00091 virtual DtAbsoluteTime lastReadTime() const = 0;
00092
00094 virtual DtLgrEntityTracker* entityTracker() const = 0;
00095 };
00096
00097 }
00098
00099 #endif