Go to the documentation of this file.00001
00002
00003
00004
00005
00009
00010 #ifndef lgrDisStateObject_H_
00011 #define lgrDisStateObject_H_
00012
00013 #if DtDIS
00014
00015 #include "lgrSim.h"
00016 #include "stateObject.h"
00017 #include "absoluteTime.h"
00018 #include <list>
00019
00020 struct DtNetPduHeader;
00021
00022 namespace MAKLogger
00023 {
00024
00025 class DtMessageState;
00026 class DtLgrDisMessageState;
00027
00030 class DT_DLL_LGRSIM DtDisStateObject : public DtStateObject
00031 {
00032 public:
00033
00034 DT_VIRTUAL_CTR(DtDisStateObject,(DtLgrDisMessageState&,DtPacket&))
00035 DT_VIRTUAL_BASE_CTR(DtStateObject,(DtMessageState&,DtPacket&))
00036
00037 virtual ~DtDisStateObject();
00038
00040 virtual DtU64 uniqueId() const;
00041
00043 virtual DtU64 packetId(DtPacket& packet) const;
00044
00047 virtual void setPacketId(DtU64,DtPacket&) const;
00048
00050 virtual bool packetForMe(DtPacket&) const;
00051
00053 virtual void updateViaPacket(DtPacket&);
00054
00055 virtual DtPacket* createUpdate(const DtAbsoluteTime& time) const;
00056 virtual void createUpdate(const DtAbsoluteTime& time, std::list<DtPacket*>& packetlist) const;
00057 virtual DtPacket* createRemoval(const DtAbsoluteTime& time) const;
00058
00061 virtual bool isEntity() const;
00062
00065 virtual bool isAggregate() const;
00066
00069 virtual bool isEnvironmentalProcess() const;
00070
00071 protected:
00072
00073 DtAbsoluteTime myLastTime;
00074 DtNetPduHeader* myLastPdu;
00075
00076 DtNetPduHeader* myLastDiGuyAppearancePdu;
00077 DtNetPduHeader* myLastDiGuyTypePdu;
00078 DtNetPduHeader* myLastDiGuyActionPdu;
00079
00080 int myLastPduSize;
00081 int myLastDiGuyAppearancePduSize;
00082 int myLastDiGuyTypePduSize;
00083 int myLastDiGuyActionPduSize;
00084 };
00085
00086 }
00087
00088 #endif
00089 #endif