18 #include <vlutil/vlHashlist.h>
26 class DtRegionRealization;
45 virtual ~DtInterDataDistMgr();
50 DtInterDataDistMgr(DtInterDataDistMgr
const& other);
53 DtInterDataDistMgr&
operator=(DtInterDataDistMgr
const& other);
58 virtual DtDistributedDataDistMgr* ddmMgr();
59 virtual DtDistributedDataDistMgr* ddmMgr()
const;
65 virtual void resetDdm();
68 virtual DtHandle uniquePubRegSetHandle();
71 virtual DtHandle uniqueSubRegSetHandle();
77 virtual bool acceptInteractionChannel(
82 DtHandle regionSetHandle,
const MAKRti::DtInetAddr& addr);
94 DtHandle regionSetHandle,
const MAKRti::DtInetAddr& addr);
105 virtual DtInteractionRegionSet* createPubRegionSet(
110 virtual DtInteractionRegionSet* createPubRegionSet(
116 virtual DtInteractionRegionSet* getPubRegionSet(
122 virtual DtInteractionRegionSet* getPubRegionSet(
128 virtual DtInteractionRegionSet* createSubRegionSet(
130 DtInteractionRegionSet* oldRegionSet,
bool regionIsAdded);
134 virtual DtInteractionRegionSet* createSubRegionSet(
136 DtInteractionRegionSet* oldRegionSet,
bool regionIsAdded);
140 virtual DtInteractionRegionSet* addSubRegion(DtRegionRealization& region,
145 virtual DtInteractionRegionSet* addSubRegionList(
147 DtInteractionRegionSet* oldRegionSet);
152 virtual DtInteractionRegionSet* removeSubRegion(DtRegionRealization& region,
158 virtual DtInteractionRegionSet* removeSubRegionList(
160 DtInteractionRegionSet* oldRegionSet);
164 virtual DtInteractionRegionSet* createPasRegionSet(
166 DtInteractionRegionSet* oldRegionSet,
bool regionIsAdded);
170 virtual DtInteractionRegionSet* createPasRegionSet(
172 DtInteractionRegionSet* oldRegionSet,
bool regionIsAdded);
176 virtual DtInteractionRegionSet* addPasRegion(DtRegionRealization& region,
181 virtual DtInteractionRegionSet* addPasRegionList(
183 DtInteractionRegionSet* oldRegionSet);
188 virtual DtInteractionRegionSet* removePasRegion(DtRegionRealization& region,
194 virtual DtInteractionRegionSet* removePasRegionList(
196 DtInteractionRegionSet* oldRegionSet);
201 virtual DtInteractionRegionSet* defaultSubRegionSet(
207 virtual DtInteractionRegionSet* defaultPasRegionSet(
213 virtual DtInteractionRegionSet* defaultRemotePubRegionSet(
217 virtual void deleteRegion(DtRegionRealization& region);
220 virtual void processDeleteRegion(DtRegionRealization& region);
223 virtual void notifyAboutRegionModification(DtRegionRealization ®ion);
226 virtual void processNotifyRegion(DtRegionRealization ®ion,
bool newRegion);
229 virtual void sendRegionSetMsg(DtInterRegSetType type,
230 const DtRegionSet ®ionSet,
232 bool anonymous=
false,
bool forceDualTransmit=
false);
260 static void processRegionSet(
const DtInterRegSetMsg& msg,
void* usr);
283 virtual void processPubRegionSet(
const DtInterRegSetMsg& msg);
286 virtual void processPubRegionSet(DtInteractionRegionSet* regionSet,
290 virtual void processSubRegionSet(
const DtInterRegSetMsg& msg);
293 virtual void processSubRegionSet(DtInteractionRegionSet* regionSet,
297 virtual void addLocalPubRegSet(
299 DtInteractionRegionSet* regSet);
303 virtual void deleteLocalPubRegSet(DtInteractionRegionSet* regSet);
304 virtual DtInteractionRegionSet* localPubRegSet(
308 virtual void addLocalSubRegSet(
310 DtInteractionRegionSet* regSet);
313 virtual void removeLocalSubRegSet(DtInteractionRegionSet* regSet);
314 virtual DtInteractionRegionSet* localSubRegSet(
318 virtual void addPassiveRegSet(
320 DtInteractionRegionSet* regSet);
323 virtual void removePassiveRegSet(DtInteractionRegionSet* regSet);
324 virtual DtInteractionRegionSet* passiveRegSet(
328 virtual void addRemotePubRegSet(
330 DtInteractionRegionSet* regSet);
333 virtual void removeRemotePubRegSet(
338 virtual DtInteractionRegionSet* remotePubRegSet(
342 virtual void addRemoteSubRegSet(DtInteractionRegionSet* regSet);
345 virtual void removeRemoteSubRegSet(DtInteractionRegionSet* regSet,
346 bool removeEmptyClassList=
true);
347 virtual DtInteractionRegionSet* remoteSubRegSet(
352 virtual void evaluateOverlap(
353 DtInteractionRegionSet& localRegionSet,
354 DtInteractionRegionSet& remoteRegionSet);
358 virtual void evaluateLocalOverlap(
359 DtRegionSetList& remoteList,
360 DtInteractionRegionSet& localRegionSet);
365 virtual void evaluateLocalMatchOverlap(
366 DtRegionSetList& remoteList,
369 DtInteractionRegionSet& localRegionSet);
374 virtual void evaluateLocalOverlapSubClasses(
377 DtInteractionRegionSet& localRegionSet);
381 virtual void evaluateRemoteOverlap(
382 DtInteractionRegionSet& remoteRegionSet,
387 virtual void removeLocalOverlap(DtInteractionRegionSet& regionSet);
391 virtual void removeRemoteOverlap(DtInteractionRegionSet& regionSet);
395 virtual void addPendingPubRegionReference(
396 DtHandle regionHandle, DtInteractionRegionSet *regionSet);
397 virtual void addPendingSubRegionReference(
398 DtHandle regionHandle, DtInteractionRegionSet *regionSet);
401 virtual void addPendingPubRegSet(DtInteractionRegionSet* regionSet);
402 virtual void addPendingSubRegSet(DtInteractionRegionSet* regionSet);
405 virtual void calculateRegionSet(
409 unsigned long channel,
411 #elif defined(DtIFSPEC1516E)
412 virtual void calculateRegionSet(
416 unsigned long channel,
419 void calculateRegionSet(
421 unsigned long channel, DtPhvps& paramSet);
425 virtual void writeRegionSetListByClass(
DtRtiSaveFile& saveFile,
439 virtual void destroyRegionLists();
462 DtRegionSetListByClass myLocalPublish;
463 DtRegionSetListByClass myRemotePublish;
466 MAKRti::DtHashList myLocalSubscribe;
467 MAKRti::DtHashList myPassiveSubscribe;
470 MAKRti::DtHashList myRemoteSubscribe;
475 DtRegionSetListByClass myOverlapPublish;
480 DtRegionSetListByClass myMatchPublish;
483 MAKRti::DtHashList myDefaultSubRegionSet;
484 MAKRti::DtHashList myDefaultPasRegionSet;
487 std::map< DtInteractionClassHandle, DtInteractionRegionSet*> myDefaultRemPubRegionSet;
493 MAKRti::DtHashList myUsedPubHandles;
494 MAKRti::DtHashList myUsedSubHandles;
503 typedef std::map<DtHandle, DtInetAddr> DtRegSetHdlToAddrMap;
504 typedef std::map<DtInteractionClassHandle, DtRegSetHdlToAddrMap> DtClassToRegSetAddrMap;
505 DtClassToRegSetAddrMap myLocalRegionSetAddr;
506 DtClassToRegSetAddrMap myRemoteRegionSetAddr;
518 MAKRti::DtHashList myAddrMapDelay;
523 MAKRti::DtHashList myPendingPubRegionReferences;
524 MAKRti::DtHashList myPendingSubRegionReferences;
529 MAKRti::DtList myPendingPubRegSets;
530 MAKRti::DtList myPendingSubRegSets;
Definition: regSetPacket.h:54
The declaration of the Interaction Manager class.
std::set< RegionHandle > RegionHandleSet
Definition: Typedefs.h:31
virtual bool restore(DtRtiSaveFile &file)
Restore the state information from the given file.
DtHandle DtInteractionClassHandle
Definition: internalTypes.h:35
virtual MAKRti::DtInetAddr localAddrMap(DtInteractionClassHandle theClass, DtHandle theChannel)
Map the class and channel to a multicast address.
Instances of DtFederateMgr process federation-level messages (such as create, destroy, join, resign, and sync points) and manages the objects responsible for handling general communication, objects, interactions, the FOM, MOM, and data distribution mmg.
Definition: fedMgr.h:84
Instances of DtInteractionMgr manage the sending and receiving of interactions.
Definition: interMgr.h:45
DtHandle DtFederateHandle
Definition: internalTypes.h:29
DtRtiSaveRegionSetTypes
Definition: regSetPacket.h:20
virtual void postTick()
Called after processing messages in RTI ambassador tick / evoke callbacks.
virtual void postJoinInit()
Post join processing. All managers shall have been created and initialized.
Definition: intClassInfo.h:41
virtual int acceptInteraction(const DtInteractionMsg &msg)
DDM.
unsigned long DtHandle
The internal types.
Definition: internalTypes.h:25
DtInteractionMgr & operator=(DtInteractionMgr const &other)
Assignment operator not implemented – Assignment not allowed!
virtual bool save(DtRtiSaveFile &file)
Save the state information to the given file.
#define DT_DLL_LRC
Definition: rtiMsConfig.h:126
Definition: saveFile.h:21
virtual void prepareToRestore()
Prepare the state information to be restored (i.e., clear out existing data).
DtInteractionMsg is a message type that represents an HLA Interaction.
Definition: interactMsg.h:27