Go to the documentation of this file.00001
00002
00003
00004
00005
00009
00010 #ifndef lgrFileOutput_H_
00011 #define lgrFileOutput_H_
00012
00013 #include "lgrCore.h"
00014 #include "absoluteTime.h"
00015 #include "messageOutput.h"
00016 #include "filePosition.h"
00017 #include <vlutil/vlMachineTypes.h>
00018
00019 namespace MAKLogger
00020 {
00021 class DtCheckpointPolicy;
00022
00025 class DT_DLL_LGRCORE DtLgrFileOutput : public DtMessageOutput
00026 {
00027
00028 protected:
00030 DtLgrFileOutput();
00031
00032 public:
00034 virtual ~DtLgrFileOutput();
00035
00037 virtual void setDuration(const DtRelativeTime& relTime) = 0;
00038
00040 virtual void setWriteBufferSize(size_t) = 0;
00041
00043 virtual size_t getWriteBufferSize() const = 0;
00044
00046 virtual bool outputPacket(const DtPacket& buffer);
00047
00049 virtual void filterMessage(DtPacket* packet);
00050
00052 virtual const DtString& filename() const = 0;
00053
00055 virtual DtFilePosition fileSize() const = 0;
00056
00058 virtual DtFilePosition currentPosition() const = 0;
00059
00062 virtual int lastMessageType() const;
00063
00066 virtual size_t lastMessageSize() const;
00067
00070 virtual DtAbsoluteTime lastMessageTime() const;
00071
00074 virtual DtAbsoluteTime firstMessageTime() const;
00075
00076 protected:
00077
00080 virtual bool writePacket(const DtPacket& packet) = 0;
00081
00082 protected:
00083
00084 DtAbsoluteTime myFirstTime;
00085 DtAbsoluteTime myLastTime;
00086 int myLastPacketType;
00087 size_t myLastPacketSize;
00088 };
00089
00090 }
00091
00092 #endif