20 #include <vl/rtiNamespace.h>
30 class DtLgrHlaSimulationManager;
34 class DT_DLL_LGRSIM DtLgrHlaMessageState :
public DtMessageState
40 (
const DtLgrHlaSimulationManager* simMgr),
41 (
const DtLgrHlaSimulationManager* simMgr=0) )
43 virtual ~DtLgrHlaMessageState();
47 virtual
void setInputInfo(const DtMessageIOInfo* info);
48 virtual
void setOutputInfo(const DtMessageIOInfo* info);
52 virtual
void modifyMessages(DtMessageBuffer& messages) const;
59 virtual
void modifyMessage(DtPacket& packet) const;
62 virtual
void decodeInitialState(const DtPacket& packet,DtMessageBuffer& buffer);
65 virtual
void decodeCheckpoint(const DtPacket& packet, DtMessageBuffer& buffer,
66 bool includeInteractions);
69 virtual
void decodeLinkedCheckpoint(const DtPacket& packet, DtMessageBuffer& messageBuffer,
70 bool includeInteractions);
73 virtual
bool isUpdateMessage(const DtPacket& packet) const;
76 virtual
bool isRemovalMessage(const DtPacket& packet) const;
79 virtual
bool isInteractionMessage(const DtPacket& packet) const;
81 virtual
void createUpdate(const DtStateObject&
object, const
DtAbsoluteTime* time,
82 std::list<DtPacket*>& packetlist) const;
84 virtual DtPacket* createRemoval(const DtStateObject&
object,
87 virtual
void setInputFom(const DtBaseFomDesc* inputFom);
88 virtual
void setOutputFom(const DtBaseFomDesc* outputFom);
92 virtual DtStateObject* findObject(const DtHlaObject*
object);
94 inline const DtBaseFomDesc* inputFom()
const {
return myInputFom;}
95 inline const DtBaseFomDesc* outputFom()
const {
return myOutputFom;}
98 virtual DtLgrHlaHandle mapObjectHandleInputToOutput(DtLgrHlaHandle handle)
const;
101 virtual DtLgrHlaHandle mapObjectHandleOutputToInput(DtLgrHlaHandle handle)
const;
104 virtual DtLgrHlaHandle mapInteractionHandleInputToOutput(DtLgrHlaHandle handle)
const;
109 DtLgrHlaMessageState(
const DtLgrHlaMessageState&);
112 DtLgrHlaMessageState& operator=(
const DtLgrHlaMessageState&);
118 virtual size_t decodeState(
const char* checkpointBuffer,
size_t bufferSize,
119 const DtAbsoluteTime& stateTime, DtMessageBuffer& messageBuffer,
bool includeInteractions);
125 virtual DtPacket* createInitialStatePacket(
const DtMessageBuffer& initialStateBuffer,
129 virtual DtPacket* createCheckpointPacket(
const DtMessageBuffer& checkpointBuffer,
133 virtual void fillWithStateData(
const DtMessageBuffer& stateBuffer,
char* data);
135 virtual void printMappingFailure(
const std::string& classname,
const std::string& message)
const;
137 virtual void activateState();
138 virtual void deactivateState();
140 virtual bool mapMessageHandles(DtPacket* packet)
const;
144 const DtBaseFomDesc* myInputFom;
145 const DtBaseFomDesc* myOutputFom;
147 typedef std::map<DtLgrHlaHandle,DtLgrHlaHandle> HandleMap;
149 mutable HandleMap myObjectHandleMap;
150 mutable HandleMap myReverseObjectHandleMap;
151 mutable HandleMap myInteractionHandleMap;
153 mutable std::set<std::string> myMutablePrintedMappingFailures;