21 #include <vlpi/disEnums.h>
28 class DtLgrDisSimulationManager;
32 class DT_DLL_LGRSIM DtLgrDisMessageState :
public DtMessageState
36 typedef std::set<DtPduKind> DtPduKindSet;
38 struct NetInitialStateUpdateHeader
40 DtNetFloat64 arrivalTime;
44 (
const DtPduKindSet& statePduKinds,
const DtLgrDisSimulationManager* simMgr),
45 (
const DtPduKindSet& statePduKinds,
const DtLgrDisSimulationManager* simMgr=0))
47 virtual ~DtLgrDisMessageState();
51 virtual
void modifyMessages(DtMessageBuffer& messages) const;
54 virtual
void modifyMessage(DtPacket& packet) const;
57 virtual
void decodeInitialState(const DtPacket& packet,DtMessageBuffer& buffer);
60 virtual
void decodeCheckpoint(const DtPacket& packet, DtMessageBuffer& messageBuffer,
61 bool includeInteractions);
64 virtual
void decodeLinkedCheckpoint(const DtPacket& packet, DtMessageBuffer& messageBuffer,
65 bool includeInteractions);
68 virtual
bool isUpdateMessage(const DtPacket& packet) const;
71 virtual
bool isUpdateMessage(DtPduKind pduKind) const;
74 virtual
bool isRemovalMessage(const DtPacket& packet) const;
77 virtual
bool isInteractionMessage(const DtPacket& packet) const;
80 virtual
bool isInteractionMessage(DtPduKind pduKind) const;
83 virtual
void createUpdate(const DtStateObject&
object,const
DtAbsoluteTime* time, std::list<DtPacket*>& packetlist) const;
86 virtual DtPacket* createRemoval(const DtStateObject&
object,const
DtAbsoluteTime& time) const;
88 virtual
void setInputVersion(
int disVersion);
89 virtual
void setOutputVersion(
int disVersion);
94 DtLgrDisMessageState(const DtLgrDisMessageState&);
97 DtLgrDisMessageState& operator=(const DtLgrDisMessageState&);
102 virtual
int decodeState(const
char* data,
size_t bufferSize, const
DtAbsoluteTime& time,
103 DtMessageBuffer& messageBuffer,
bool includeInteractions,
bool useStateHeader);
108 virtual
void decodeCheckpoint(const
char* checkpointBuffer,
size_t bufferSize, const
DtAbsoluteTime& time,
109 DtMessageBuffer& messageBuffer,
bool includeInteractions);
115 virtual DtPacket* createInitialStatePacket(const DtMessageBuffer& initialStateBuffer,
119 virtual DtPacket* createCheckpointPacket(const DtMessageBuffer& checkpointBuffer,
123 virtual
void fillWithStateData(const DtMessageBuffer& stateBuffer,
char* data,
bool includeUpdateHeaders);
125 virtual
void activateState();
126 virtual
void deactivateState();
130 DtPduKindSet myStatePduKinds;