8 #ifndef distributedDdmMgr_H_
9 #define distributedDdmMgr_H_
19 class DtObjectDataDistMgr;
20 class DtInterDataDistMgr;
21 class DtDistributedRegion;
25 class DtRegionRealizationMsg;
33 class DT_DLL_LRC DtDistributedDataDistMgr :
public DtDataDistMgr
38 typedef std::map<DtRegionHandle, DtRegionRealization*> DtRegionRealizationMap;
48 virtual ~DtDistributedDataDistMgr();
53 DtDistributedDataDistMgr(DtDistributedDataDistMgr
const& );
56 DtDistributedDataDistMgr& operator= (DtDistributedDataDistMgr
const& );
61 virtual DtDistributedRegion& defaultRegion();
64 virtual DtRegionRealization& defaultRegionRealization();
67 virtual DtRegionEntryList
const& defaultRegionList()
const;
70 virtual DtObjectDataDistMgr* objDdmMgr();
73 virtual DtInterDataDistMgr* interDdmMgr();
76 virtual bool active();
79 virtual MAKRti::DtInetAddr freeChannel();
82 virtual void processNotifyRegion(
const DtNotifyRegMsg& msg);
85 virtual void processDeleteRegion(
const DtDeleteRegMsg& msg);
88 virtual void processRegionRealization(
const DtRegionRealizationMsg& msg);
94 virtual void joinObjectRegionSet(
const MAKRti::DtInetAddr& address,
98 virtual void dropObjectRegionSet(
const MAKRti::DtInetAddr& address,
102 virtual void joinInteractionRegionSet(
const MAKRti::DtInetAddr& address,
106 virtual void dropInteractionRegionSet(
const MAKRti::DtInetAddr& address,
113 virtual DtDistributedRegion* localDistributedRegion(
DtRegionHandle regionHandle);
122 virtual DtDistributedRegion* remoteDistributedRegion(
DtRegionHandle regionHandle);
125 virtual DtRegionRealization* localRegionRealization(
129 virtual DtRegionRealization* remoteRegionRealization(
135 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E) || defined(DtIFSPEC1516_2025)
136 virtual DtRegionHandle constructConveyedRegion(DtRegionRealization
const& region,
147 virtual void destructConveyedRegions();
151 virtual DtRegionRealization
const* conveyedRegion(
156 virtual void addPendingNotifyRegion(DtRegionSet& regionSet);
159 virtual void addPendingNotifyRegion(
const DtRegionEntryList& regionList);
163 virtual void sendPendingNotifyRegion(
bool forceDualTransmit=
false);
167 virtual void sendNotifyRegionMsg(
const DtDistributedRegion ®ion,
168 bool forceDualTransmit=
false);
175 virtual void sendRegionRealizationMsg(
176 DtRegionRealization
const& regionRealization,
bool forceDualTransmit=
false);
179 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E) || defined(DtIFSPEC1516_2025)
183 virtual DtDistributedRegion* createDistributedRegion(
DtSpaceHandle spaceHandleValue,
unsigned long numberOfExtents);
190 virtual void deleteDistributedRegion(DtDistributedRegion *regionPtr);
199 virtual void notifyAboutDistributedRegionModification(DtDistributedRegion* theRegion);
208 virtual DtRegionRealization* getRegionRealization(DtDistributedRegion* region,
220 #if !defined(DtIFSPEC13)
223 unsigned long lower,
unsigned long upper);
229 virtual bool getDimensionHandleSet(
DtRegionHandle theRegionHandle, RTI_API::DimensionHandleSet& dimSet)
const;
233 virtual void postTick();
239 virtual void prepareToRestore();
247 static void processNotifyRegion(
const DtNotifyRegMsg& msg,
void* usr);
250 static void processDeleteRegion(
const DtDeleteRegMsg& msg,
void* usr);
253 static void processRegionRealization(
const DtRegionRealizationMsg& msg,
268 virtual void addLocalRegion(DtDistributedRegion* region);
272 virtual void addRemoteRegion(DtDistributedRegion* region,
278 virtual void addLocalRegionRealization(DtRegionRealization* realization);
282 virtual void addRemoteRegionRealization(DtRegionRealization* realization,
288 virtual void destroyLists();
293 DtDistributedRegion* myDefaultRegion;
294 DtRegionRealization* myDefaultRegionRealization;
295 DtRegionEntryList myDefaultRegionList;
298 MAKRti::DtInetAddr myFreeChannel;
301 bool myFreeChannelInitialized;
304 std::map<DtInetAddr, MAKRti::DtList*> myObjRegSetChannels;
305 std::map<DtInetAddr, MAKRti::DtHashlist*> myInterRegSetChannels;
308 MAKRti::DtHashlist myLocalRegions;
309 MAKRti::DtHashlist myRemoteRegions;
310 MAKRti::DtHashlist myRemoteRegionsByFederate;
311 MAKRti::DtHashlist myLocalRegionRealizations;
312 MAKRti::DtHashlist myLocalRegionRealizationsByRegion;
313 std::map<DtRegionHandle, DtRegionRealization*> myRemoteRegionRealizations;
314 MAKRti::DtHashlist myRemoteRegionRealizationsByRegion;
315 MAKRti::DtHashlist myRemoteRegionRealizationsByFederate;
316 DtRegionRealizationMap myConveyedRegions;
virtual void deleteRegion(Region *theRegion)
virtual SpaceHandle getInteractionRoutingSpaceHandle(InteractionClassHandle theHandle)
virtual void notifyAboutRegionModification(Region &theRegion)
virtual Region * createRegion(SpaceHandle theSpace, ULong numberOfExtents)
std::set< DtRegionHandle > DtRegionHandleStdSet
Definition: internalTypes.h:66
Definition: resignMsg.h:36
DtHandle DtRegionHandle
Definition: internalTypes.h:65
DtHandle DtObjectClassHandle
Definition: internalTypes.h:48
DtHandle DtDimensionHandle
Definition: internalTypes.h:62
DtHandle DtInteractionClassHandle
Definition: internalTypes.h:52
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
#define NULL
Definition: baseTypes13.h:8
DtHandle DtFederateHandle
Definition: internalTypes.h:46
virtual SpaceHandle getAttributeRoutingSpaceHandle(AttributeHandle theHandle, ObjectClassHandle whichClass)
std::set< DtDimensionHandle > DtDimensionHandleStdSet
Definition: internalTypes.h:63
long DtSpaceHandle
Definition: internalTypes.h:42
DtHandle DtAttributeHandle
Definition: internalTypes.h:54
DtHandle DtExtentIndex
Definition: internalTypes.h:67
#define DT_DLL_LRC
Definition: rtiMsConfig.h:155
Definition: saveFile.h:21