Go to the documentation of this file.00001
00002
00003
00004
00005
00009
00010 #ifndef lgrDisMessageState_H_
00011 #define lgrDisMessageState_H_
00012
00013 #if DtDIS
00014
00015 #include "lgrSim.h"
00016 #include "messageState.h"
00017 #include "virtualConstructor.h"
00018
00019 #include <list>
00020 #include <set>
00021 #include <vlpi/disEnums.h>
00022
00023 enum DtPduKind;
00024
00025 namespace MAKLogger
00026 {
00027
00028 class DtLgrDisSimulationManager;
00029
00032 class DT_DLL_LGRSIM DtLgrDisMessageState : public DtMessageState
00033 {
00034 public:
00035
00036 typedef std::set<DtPduKind> DtPduKindSet;
00037
00038 DT_VIRTUAL_CTR(DtLgrDisMessageState,(const DtPduKindSet& statePduKinds))
00039
00040 virtual ~DtLgrDisMessageState();
00041
00044 virtual void modifyMessages(DtMessageBuffer& messages);
00045
00047 virtual void modifyMessage(DtPacket& packet);
00048
00050 virtual void decodeCheckpoint(const DtPacket& packet,DtMessageBuffer& buffer);
00051
00054 virtual DtPacket* generateCheckpoint(const DtAbsoluteTime& timestampe);
00055
00056 virtual bool isUpdateMessage(const DtPacket& packet) const;
00057 virtual bool isRemovalMessage(const DtPacket& packet) const;
00058
00060 virtual void createUpdate(DtStateObject& object,const DtAbsoluteTime& time, std::list<DtPacket*>& packetlist);
00061
00063 virtual DtPacket* createRemoval(DtStateObject& object,const DtAbsoluteTime& time);
00064
00065 virtual void setInputVersion(int disVersion);
00066 virtual void setOutputVersion(int disVersion);
00067
00068 protected:
00069
00070 virtual void activateState();
00071 virtual void deactivateState();
00072
00074 DtLgrDisMessageState(const DtLgrDisMessageState&);
00075
00077 DtLgrDisMessageState& operator=(const DtLgrDisMessageState&);
00078
00079 DtPduKindSet myStatePduKinds;
00080
00081 int myInputVersion;
00082 int myOutputVersion;
00083 };
00084
00085 }
00086
00087 #endif
00088 #endif