Go to the documentation of this file.00001
00002
00003
00004
00005
00009
00010 #ifndef lgrSimOutput_H_
00011 #define lgrSimOutput_H_
00012
00013 #include "lgrCore.h"
00014 #include "messageOutput.h"
00015
00016 namespace MAKLogger
00017 {
00018
00019 class DtLgrSimManager;
00020 class DtLgrImmediateSender;
00021 class DtLgrRetainedSender;
00022
00025 class DT_DLL_LGRCORE DtLgrSimOutput : public DtMessageOutput
00026 {
00027 public:
00028
00030 DtLgrSimOutput(DtLgrSimManager& manager);
00031
00033 virtual ~DtLgrSimOutput();
00034
00035 private:
00037 DtLgrSimOutput(const DtLgrSimOutput&);
00039 DtLgrSimOutput& operator=(const DtLgrSimOutput&);
00040
00041 public:
00043 virtual void activate(const DtMessageInput* msgInput);
00044
00046 virtual void activateImplementation() = 0;
00047
00049 virtual bool isActivated() const;
00050
00052 virtual void deactivate();
00053
00055 virtual void deactivateImplementation() = 0;
00056
00058 virtual bool outputPacket(const DtPacket& packet);
00059
00061 virtual void filterMessage(DtPacket* packet);
00063 virtual void filterMessageAllowingCheckpoints(DtPacket* packet);
00064
00066 virtual bool sentPackets();
00067
00068
00069 enum PacketSenderType
00070 {
00071 Immediate,
00072 Retained,
00073 NotSent
00074 };
00075
00077 virtual PacketSenderType packetSenderType(const DtPacket&) const = 0;
00078
00079 protected:
00081 virtual void immediateSend(const DtPacket&) const = 0;
00082
00084 virtual void retainedSend(const DtPacket&) = 0;
00085
00087 void sendPacket(const DtPacket&);
00088
00089 bool mySentPacketsFlag;
00090 DtLgrSimManager& myManager;
00091 bool myActivateFlag;
00092 };
00093
00094 }
00095
00096 #endif
00097