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;
68 virtual void resetDdm();
71 virtual DtHandle uniquePubRegSetHandle();
74 virtual DtHandle uniqueSubRegSetHandle();
80 virtual bool acceptInteractionChannel(
85 DtHandle regionSetHandle,
const MAKRti::DtInetAddr& addr);
97 DtHandle regionSetHandle,
const MAKRti::DtInetAddr& addr);
108 virtual DtInteractionRegionSet* createPubRegionSet(
113 virtual DtInteractionRegionSet* createPubRegionSet(
119 virtual DtInteractionRegionSet* getPubRegionSet(
125 virtual DtInteractionRegionSet* getPubRegionSet(
131 virtual DtInteractionRegionSet* createSubRegionSet(
133 DtInteractionRegionSet* oldRegionSet,
bool regionIsAdded);
137 virtual DtInteractionRegionSet* createSubRegionSet(
139 DtInteractionRegionSet* oldRegionSet,
bool regionIsAdded);
143 virtual DtInteractionRegionSet* addSubRegion(DtRegionRealization& region,
148 virtual DtInteractionRegionSet* addSubRegionList(
150 DtInteractionRegionSet* oldRegionSet);
155 virtual DtInteractionRegionSet* removeSubRegion(DtRegionRealization& region,
161 virtual DtInteractionRegionSet* removeSubRegionList(
163 DtInteractionRegionSet* oldRegionSet);
167 virtual DtInteractionRegionSet* createPasRegionSet(
169 DtInteractionRegionSet* oldRegionSet,
bool regionIsAdded);
173 virtual DtInteractionRegionSet* createPasRegionSet(
175 DtInteractionRegionSet* oldRegionSet,
bool regionIsAdded);
179 virtual DtInteractionRegionSet* addPasRegion(DtRegionRealization& region,
184 virtual DtInteractionRegionSet* addPasRegionList(
186 DtInteractionRegionSet* oldRegionSet);
191 virtual DtInteractionRegionSet* removePasRegion(DtRegionRealization& region,
197 virtual DtInteractionRegionSet* removePasRegionList(
199 DtInteractionRegionSet* oldRegionSet);
204 virtual DtInteractionRegionSet* defaultSubRegionSet(
210 virtual DtInteractionRegionSet* defaultPasRegionSet(
216 virtual DtInteractionRegionSet* defaultRemotePubRegionSet(
220 virtual void deleteRegion(DtRegionRealization& region);
223 virtual void processDeleteRegion(DtRegionRealization& region);
226 virtual void notifyAboutRegionModification(DtRegionRealization ®ion);
229 virtual void processNotifyRegion(DtRegionRealization ®ion,
bool newRegion);
232 virtual void sendRegionSetMsg(DtInterRegSetType type,
233 const DtRegionSet ®ionSet,
235 bool anonymous=
false,
bool forceDualTransmit=
false);
263 static void processRegionSet(
const DtInterRegSetMsg& msg,
void* usr);
286 virtual void processPubRegionSet(
const DtInterRegSetMsg& msg);
289 virtual void processPubRegionSet(DtInteractionRegionSet* regionSet,
293 virtual void processSubRegionSet(
const DtInterRegSetMsg& msg);
296 virtual void processSubRegionSet(DtInteractionRegionSet* regionSet,
300 virtual void addLocalPubRegSet(
302 DtInteractionRegionSet* regSet);
306 virtual void deleteLocalPubRegSet(DtInteractionRegionSet* regSet);
307 virtual DtInteractionRegionSet* localPubRegSet(
311 virtual void addLocalSubRegSet(
313 DtInteractionRegionSet* regSet);
316 virtual void removeLocalSubRegSet(DtInteractionRegionSet* regSet);
317 virtual DtInteractionRegionSet* localSubRegSet(
321 virtual void addPassiveRegSet(
323 DtInteractionRegionSet* regSet);
326 virtual void removePassiveRegSet(DtInteractionRegionSet* regSet);
327 virtual DtInteractionRegionSet* passiveRegSet(
331 virtual void addRemotePubRegSet(
333 DtInteractionRegionSet* regSet);
336 virtual void removeRemotePubRegSet(
341 virtual DtInteractionRegionSet* remotePubRegSet(
345 virtual void addRemoteSubRegSet(DtInteractionRegionSet* regSet);
348 virtual void removeRemoteSubRegSet(DtInteractionRegionSet* regSet,
349 bool removeEmptyClassList=
true);
350 virtual DtInteractionRegionSet* remoteSubRegSet(
355 virtual void evaluateOverlap(
356 DtInteractionRegionSet& localRegionSet,
357 DtInteractionRegionSet& remoteRegionSet);
361 virtual void evaluateLocalOverlap(
362 DtRegionSetList& remoteList,
363 DtInteractionRegionSet& localRegionSet);
368 virtual void evaluateLocalMatchOverlap(
369 DtRegionSetList& remoteList,
372 DtInteractionRegionSet& localRegionSet);
377 virtual void evaluateLocalOverlapSubClasses(
380 DtInteractionRegionSet& localRegionSet);
384 virtual void evaluateRemoteOverlap(
385 DtInteractionRegionSet& remoteRegionSet,
390 virtual void removeLocalOverlap(DtInteractionRegionSet& regionSet);
394 virtual void removeRemoteOverlap(DtInteractionRegionSet& regionSet);
398 virtual void addPendingPubRegionReference(
399 DtHandle regionHandle, DtInteractionRegionSet *regionSet);
400 virtual void addPendingSubRegionReference(
401 DtHandle regionHandle, DtInteractionRegionSet *regionSet);
404 virtual void addPendingPubRegSet(DtInteractionRegionSet* regionSet);
405 virtual void addPendingSubRegSet(DtInteractionRegionSet* regionSet);
407 #if defined(DtIFSPEC13)
416 virtual void writeRegionSetListByClass(
DtRtiSaveFile& saveFile,
430 virtual void destroyRegionLists();
453 DtRegionSetListByClass myLocalPublish;
454 DtRegionSetListByClass myRemotePublish;
457 MAKRti::DtHashList myLocalSubscribe;
458 MAKRti::DtHashList myPassiveSubscribe;
461 MAKRti::DtHashList myRemoteSubscribe;
466 DtRegionSetListByClass myOverlapPublish;
471 DtRegionSetListByClass myMatchPublish;
474 MAKRti::DtHashList myDefaultSubRegionSet;
475 MAKRti::DtHashList myDefaultPasRegionSet;
478 std::map< DtInteractionClassHandle, DtInteractionRegionSet*> myDefaultRemPubRegionSet;
484 MAKRti::DtHashList myUsedPubHandles;
485 MAKRti::DtHashList myUsedSubHandles;
494 typedef std::map<DtHandle, DtInetAddr> DtRegSetHdlToAddrMap;
495 typedef std::map<DtInteractionClassHandle, DtRegSetHdlToAddrMap> DtClassToRegSetAddrMap;
496 DtClassToRegSetAddrMap myLocalRegionSetAddr;
497 DtClassToRegSetAddrMap myRemoteRegionSetAddr;
509 MAKRti::DtHashList myAddrMapDelay;
514 MAKRti::DtHashList myPendingPubRegionReferences;
515 MAKRti::DtHashList myPendingSubRegionReferences;
520 MAKRti::DtList myPendingPubRegSets;
521 MAKRti::DtList myPendingSubRegSets;
Definition: regSetPacket.h:54
The declaration of the Interaction Manager class.
virtual void checkForRegionalSubscribe(DtInteractionClassInfo &info)
The empty methods below are overridden in the DtInterDataDistMgr and help implement DDM...
Definition: interMgr.h:286
virtual void checkForRegionalPublish(DtInteractionClassInfo &info)
When subscribing, check whether region publication info needs to get sent to other LRCs/rtiexec along...
Definition: interMgr.h:290
std::set< RegionHandle > RegionHandleSet
Definition: Typedefs.h:31
virtual void calculateRegionSet(DtInteractionClassInfo const &sentClassInfo, DtInteractionClassInfo const &receivedClassInfo, unsigned long channel, RTI_API::RegionHandleSet ®ionHandles)
Calculate region set for processUpdate.
Definition: interMgr.h:390
virtual bool restore(DtRtiSaveFile &file)
Restore the state information from the given file.
Definition: resignMsg.h:36
DtHandle DtInteractionClassHandle
Definition: internalTypes.h:52
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:93
Instances of DtInteractionMgr manage the sending and receiving of interactions.
Definition: interMgr.h:46
DtHandle DtFederateHandle
Definition: internalTypes.h:46
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:40
virtual int acceptInteraction(const DtInteractionMsg &msg)
DtIFSPEC13.
unsigned long DtHandle
The internal types.
Definition: internalTypes.h:41
virtual void processResign(const DtResignMsg &msg)
Process resign message.
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:155
Definition: pHandValSet.h:38
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:26