10 #ifndef hlaMessageState_H_
11 #define hlaMessageState_H_
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);
59 virtual
void modifyMessage(DtPacket& packet);
62 virtual
void decodeCheckpoint(const DtPacket& packet,DtMessageBuffer& buffer);
66 virtual DtPacket* generateCheckpoint(const
DtAbsoluteTime& timestamp);
68 virtual
bool isUpdateMessage(const DtPacket& packet) const;
69 virtual
bool isRemovalMessage(const DtPacket& packet) const;
71 virtual
void createUpdate(const DtStateObject&
object, const
DtAbsoluteTime& time,
72 std::list<DtPacket*>& packetlist) const;
74 virtual DtPacket* createRemoval(const DtStateObject&
object,
77 virtual
void setInputFom(const DtBaseFomDesc* inputFom);
78 virtual
void setOutputFom(const DtBaseFomDesc* outputFom);
82 virtual DtStateObject* findObject(const DtHlaObject*
object);
84 inline const DtBaseFomDesc* inputFom()
const {
return myInputFom;}
85 inline const DtBaseFomDesc* outputFom()
const {
return myOutputFom;}
88 virtual DtLgrHlaHandle mapObjectHandleInputToOutput(DtLgrHlaHandle handle)
const;
91 virtual DtLgrHlaHandle mapObjectHandleOutputToInput(DtLgrHlaHandle handle)
const;
94 virtual DtLgrHlaHandle mapInteractionHandleInputToOutput(DtLgrHlaHandle handle)
const;
99 DtLgrHlaMessageState(
const DtLgrHlaMessageState&);
102 DtLgrHlaMessageState& operator=(
const DtLgrHlaMessageState&);
104 virtual void printMappingFailure(
const std::string& classname,
const std::string& message);
106 virtual void activateState();
107 virtual void deactivateState();
109 virtual bool mapMessageHandles(DtPacket* packet);
113 const DtBaseFomDesc* myInputFom;
114 const DtBaseFomDesc* myOutputFom;
116 typedef std::map<DtLgrHlaHandle,DtLgrHlaHandle> HandleMap;
118 mutable HandleMap myObjectHandleMap;
119 mutable HandleMap myReverseObjectHandleMap;
120 mutable HandleMap myInteractionHandleMap;
122 std::set<std::string> myPrintedMappingFailures;