10 #ifndef hlaMessageState_H_
11 #define hlaMessageState_H_
18 #include <vl/rtiNamespace.h>
28 class DtLgrHlaSimulationManager;
32 class DT_DLL_LGRSIM DtLgrHlaMessageState :
public DtMessageState
35 DtLgrHlaMessageState();
37 virtual ~DtLgrHlaMessageState();
41 virtual void setInputInfo(
const DtMessageIOInfo* info);
42 virtual void setOutputInfo(
const DtMessageIOInfo* info);
46 virtual void modifyMessages(DtMessageBuffer& messages);
53 virtual void modifyMessage(DtPacket& packet);
56 void decodeCheckpoint(
const DtPacket& packet,DtMessageBuffer& buffer);
60 virtual DtPacket* generateCheckpoint(
const DtAbsoluteTime& timestamp);
62 virtual bool isUpdateMessage(
const DtPacket& packet)
const;
63 virtual bool isRemovalMessage(
const DtPacket& packet)
const;
65 virtual void createUpdate(DtStateObject&
object,
const DtAbsoluteTime& time,
66 std::list<DtPacket*>& packetlist);
68 virtual DtPacket* createRemoval(DtStateObject&
object,
71 virtual void setInputFom(
const DtBaseFomDesc* inputFom);
72 virtual void setOutputFom(
const DtBaseFomDesc* outputFom);
76 virtual DtStateObject* findObject(DtHlaObject*
object);
79 inline const DtBaseFomDesc* inputFom()
const {
return myInputFom;}
80 inline const DtBaseFomDesc* outputFom()
const {
return myOutputFom;}
83 DtLgrHlaHandle mapObjectHandleInputToOutput(DtLgrHlaHandle handle)
const;
86 DtLgrHlaHandle mapObjectHandleOutputToInput(DtLgrHlaHandle handle)
const;
89 DtLgrHlaHandle mapInteractionHandleInputToOutput(DtLgrHlaHandle handle)
const;
93 virtual void printMappingFailure(
const std::string& classname,
const std::string& message);
95 virtual void activateState();
96 virtual void deactivateState();
99 DtLgrHlaMessageState(
const DtLgrHlaMessageState&);
102 DtLgrHlaMessageState& operator=(
const DtLgrHlaMessageState&);
104 virtual bool mapMessageHandles(DtPacket* packet);
106 const DtBaseFomDesc* myInputFom;
107 const DtBaseFomDesc* myOutputFom;
109 typedef std::map<DtLgrHlaHandle,DtLgrHlaHandle> HandleMap;
111 mutable HandleMap myObjectHandleMap;
112 mutable HandleMap myReverseObjectHandleMap;
113 mutable HandleMap myInteractionHandleMap;
115 std::set<std::string> myPrintedMappingFailures;