10 #ifndef hlaSimInput_H_
11 #define hlaSimInput_H_
20 #include <vl/rtiNamespace.h>
21 #include <vl/rtiCompatibility.h>
29 class DtBaseEntityStateRepository;
30 class DtGenericAttributeDecoder;
31 class DtStateRepository;
35 class DtLgrHlaSimulationManager;
36 class DtMessageBuffer;
37 class DtLgrHlaMessageIOInfo;
46 DT_VIRTUAL_CTR(DtLgrHlaSimInput, (DtLgrHlaSimulationManager& manager))
48 virtual ~DtLgrHlaSimInput();
50 virtual void activateImplementation();
51 virtual void deactivateImplementation();
54 virtual void disconnecting();
56 virtual const DtMessageIOInfo* info()
const;
63 static void decodeIsPartOf_RPR_20014( DtBaseEntityStateRepository* stateRep,
64 const RTI::AttributeHandleValuePairSet& attrs,
69 static void discoverObjCb(DtHlaObject*
object,
void* usr);
70 virtual void discoverObject(DtHlaObject*
object);
72 static void receiveInterCb(
DtInteraction* inter,
void* usr );
73 virtual void receiveInteraction(
const DtInteraction * interaction);
77 virtual int getInteractionRegionSet(
const DtInteraction *interaction, DtRegionDescSet& regionSet);
80 static void reflectCb(
const DtStateMsg& msg, DtHlaObject* obj,
void* usr );
83 virtual void reflect(
const DtStateMsg& msg, DtHlaObject* obj);
87 virtual int getObjectRegionSet(DtRegionDescSet& regionSet);
89 static void removeObjCb(DtHlaObject*
object,
void* usr);
90 virtual void removeObject(DtHlaObject*
object,
bool updateTimeout=
true);
92 virtual void startListening();
93 virtual void stopListening();
97 virtual bool evaluateTrafficAnalyzerFilters(
const DtHlaObject& obj)
const;
100 virtual void localDeleteObjectForRefresh(DtHlaObject*
object);
106 void checkTimeouts();
109 void removeTimeout(DtHlaObject*
object);
114 typedef std::map<RTI::ObjectInstanceHandle,DtLgrHlaHandle> ObjectInstanceMap;
115 typedef std::map<DtString, RTI::ObjectInstanceHandle> NameObjectInstanceMap;
117 typedef std::map<RTI::ObjectHandle,DtLgrHlaHandle> ObjectInstanceMap;
118 typedef std::map<DtString, RTI::ObjectHandle> NameObjectInstanceMap;
120 typedef std::map<DtHlaObject*, DtAbsoluteTime> TimeoutByObjectMap;
121 typedef std::set<DtHlaObject*> HlaObjectSet;
122 typedef std::map<DtAbsoluteTime, HlaObjectSet> TimeoutByTimeMap;
124 DtLgrHlaSimulationManager& myHlaManager;
126 TimeoutByObjectMap myTimeoutTimeByObject;
127 TimeoutByTimeMap myTimeoutByTime;
129 typedef DtBoost::shared_ptr<DtStateRepository> DtStateRepositorySP;
130 typedef DtBoost::shared_ptr<DtGenericAttributeDecoder> DtGenericAttributeDecoderSP;
131 class DtStateAndDecoder
135 virtual ~DtStateAndDecoder();
136 virtual void initialize(
DtExerciseConn* exConn, DtObjClassDesc* classDesc);
137 virtual DtStateRepository* state();
138 virtual DtGenericAttributeDecoder* decoder();
140 DtStateRepositorySP myState;
141 DtGenericAttributeDecoderSP myDecoder;
145 std::map<DtHlaObject*, DtStateAndDecoder> myStateAndDecoders;
147 ObjectInstanceMap myObjectInstanceMap;
148 NameObjectInstanceMap myNameObjectInstanceMap;
149 DtLgrHlaHandle myFreeInstanceHandle;
151 bool myCurrentlyListeningFlag;
153 DtLgrHlaMessageIOInfo* myInfo;