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)
182 virtual DtRegion* createRegion(
DtSpaceHandle spaceHandleValue,
unsigned long numberOfExtents);
183 virtual DtDistributedRegion* createDistributedRegion(
DtSpaceHandle spaceHandleValue,
unsigned long numberOfExtents);
187 virtual void deleteRegion(DtRegion *regionPtr);
190 virtual void deleteDistributedRegion(DtDistributedRegion *regionPtr);
196 virtual void notifyAboutRegionModification(DtRegion* theRegion);
199 virtual void notifyAboutDistributedRegionModification(DtDistributedRegion* theRegion);
202 virtual void notifyAboutRegionModification(
DtRegionHandle regionHandle);
208 virtual DtRegionRealization* getRegionRealization(DtDistributedRegion* region,
220 #if !defined(DtIFSPEC13)
223 unsigned long lower,
unsigned long upper);
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;
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
std::set< DimensionHandle > DimensionHandleSet
Definition: Typedefs.h:30
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
DtHandle DtFederateHandle
Definition: internalTypes.h:46
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