10 #ifndef hlaMessageState_H_
11 #define hlaMessageState_H_
21 #include <vl/rtiNamespace.h>
31 class DtLgrHlaSimulationManager;
35 class DT_DLL_LGRSIM DtLgrHlaMessageState :
public DtMessageState
41 (
const DtLgrHlaSimulationManager* simMgr),
42 (
const DtLgrHlaSimulationManager* simMgr=0) )
44 virtual ~DtLgrHlaMessageState();
48 virtual
void setInputInfo(const DtMessageIOInfo* info);
49 virtual
void setOutputInfo(const DtMessageIOInfo* info);
53 virtual
void modifyMessages(DtMessageBuffer& messages) const;
60 virtual
void modifyMessage(DtPacket& packet) const;
63 virtual
void decodeCheckpoint(const DtPacket& packet,DtMessageBuffer& buffer,
bool includeInteractions);
66 virtual
void decodeLinkedCheckpoint(const DtPacket& packet, DtMessageBuffer& messageBuffer,
67 bool includeInteractions);
71 virtual DtPacket* generateCheckpoint(const
DtAbsoluteTime& timestamp,
bool includeInteractions);
74 virtual
bool isUpdateMessage(const DtPacket& packet) const;
77 virtual
bool isRemovalMessage(const DtPacket& packet) const;
80 virtual
bool isInteractionMessage(const DtPacket& packet) const;
82 virtual
void createUpdate(const DtStateObject&
object, const
DtAbsoluteTime& time,
83 std::list<DtPacket*>& packetlist) const;
85 virtual DtPacket* createRemoval(const DtStateObject&
object,
88 virtual
void setInputFom(const DtBaseFomDesc* inputFom);
89 virtual
void setOutputFom(const DtBaseFomDesc* outputFom);
93 virtual DtStateObject* findObject(const DtHlaObject*
object);
95 inline const DtBaseFomDesc* inputFom()
const {
return myInputFom;}
96 inline const DtBaseFomDesc* outputFom()
const {
return myOutputFom;}
99 virtual DtLgrHlaHandle mapObjectHandleInputToOutput(DtLgrHlaHandle handle)
const;
102 virtual DtLgrHlaHandle mapObjectHandleOutputToInput(DtLgrHlaHandle handle)
const;
105 virtual DtLgrHlaHandle mapInteractionHandleInputToOutput(DtLgrHlaHandle handle)
const;
110 DtLgrHlaMessageState(
const DtLgrHlaMessageState&);
113 DtLgrHlaMessageState& operator=(
const DtLgrHlaMessageState&);
116 virtual void decodeCheckpoint(
const char* checkpointBuffer,
size_t bufferSize,
DtAbsoluteTime time,
117 DtMessageBuffer& messageBuffer,
bool includeInteractions);
119 virtual void printMappingFailure(
const std::string& classname,
const std::string& message)
const;
121 virtual void activateState();
122 virtual void deactivateState();
124 virtual bool mapMessageHandles(DtPacket* packet)
const;
128 const DtBaseFomDesc* myInputFom;
129 const DtBaseFomDesc* myOutputFom;
131 typedef std::map<DtLgrHlaHandle,DtLgrHlaHandle> HandleMap;
133 mutable HandleMap myObjectHandleMap;
134 mutable HandleMap myReverseObjectHandleMap;
135 mutable HandleMap myInteractionHandleMap;
137 mutable std::set<std::string> myMutablePrintedMappingFailures;