29 class DtPendingAssocRegion;
31 class DtDistributedDataDistMgr;
34 class DtAssocPubRegMsg;
35 class DtAssocSubRegMsg;
54 virtual ~DtObjectDataDistMgr();
59 DtObjectDataDistMgr(DtObjectDataDistMgr
const& );
62 DtObjectDataDistMgr&
operator= (DtObjectDataDistMgr
const& );
67 virtual DtDistributedDataDistMgr* ddmMgr();
68 virtual DtDistributedDataDistMgr* ddmMgr()
const;
74 virtual void resetDdm();
83 virtual DtPubRegionSet* createPubRegionSet(DtRegionEntryList& regionList,
92 virtual DtPubRegionSet* createPubRegionSet(
93 DtRegionRealization& region,
94 DtPubRegionSet* regionSet,
bool regionIsAdded);
101 virtual DtPubRegionSet* createPubRegionSet(
102 DtRegionEntryList
const& regionList, DtPubRegionSet* regionSet,
103 bool regionAreAdded);
108 virtual DtPubRegionSet* addPubRegion(DtRegionRealization& region,
109 DtPubRegionSet* regionSet);
110 virtual DtPubRegionSet* addPubRegionList(DtRegionEntryList
const& regionList,
111 DtPubRegionSet* regionSet);
117 virtual DtPubRegionSet* removePubRegion(DtRegionRealization& region,
118 DtPubRegionSet* regionSet);
123 virtual DtPubRegionSet* removePubRegionList(
124 DtRegionEntryList
const& regionList, DtPubRegionSet* regionSet);
128 virtual DtPubRegionSet* getPubRegionSet(
DtHandle regionSetHandle);
132 virtual DtRemoteRegionSet* getRemotePubRegionSet(
141 virtual DtSubRegionSet* createSubRegionSet(
142 DtRegionEntryList
const& regionList, DtSubRegionSet* regionSet,
151 virtual DtSubRegionSet* createSubRegionSet(
152 DtRegionRealization& region, DtSubRegionSet* regionSet,
157 virtual DtSubRegionSet* addSubRegion(DtRegionRealization& region,
158 DtSubRegionSet* regionSet);
162 virtual DtSubRegionSet* addSubRegionList(DtRegionEntryList
const& regionList,
163 DtSubRegionSet* regionSet);
168 virtual DtSubRegionSet* removeSubRegion(DtRegionRealization& region,
169 DtSubRegionSet* regionSet);
174 virtual DtSubRegionSet* removeSubRegion(DtRegionEntryList
const& regionList,
175 DtSubRegionSet* regionSet);
179 virtual DtSubRegionSet* getSubRegionSet(
DtHandle regionSetHandle);
183 virtual DtRemoteRegionSet* getRemoteSubRegionSet(
192 virtual DtSubRegionSet* createPasRegionSet(
193 DtRegionRealization& region, DtSubRegionSet* regionSet,
202 virtual DtSubRegionSet* createPasRegionSet(
203 DtRegionEntryList
const& regionList, DtSubRegionSet* regionSet,
208 virtual DtSubRegionSet* addPasRegion(DtRegionRealization& region,
209 DtSubRegionSet* regionSet);
213 virtual DtSubRegionSet* addPasRegion(
214 DtRegionEntryList
const& regionList, DtSubRegionSet* regionSet);
219 virtual DtSubRegionSet* removePasRegion(DtRegionRealization& region,
220 DtSubRegionSet* regionSet);
225 virtual DtSubRegionSet* removePasRegion(DtRegionEntryList
const& regionList,
226 DtSubRegionSet* regionSet);
230 virtual DtSubRegionSet* getPasRegionSet(
DtHandle regionSetHandle);
234 virtual DtPubRegionSet* defaultPubRegionSet();
235 virtual DtSubRegionSet* defaultSubRegionSet();
236 virtual DtSubRegionSet* defaultPasRegionSet();
237 virtual DtRemoteRegionSet* defaultRemotePubRegionSet();
238 virtual DtRemoteRegionSet* defaultRemoteSubRegionSet();
243 virtual void registerAssociateRegionForUpdates(
244 DtRegionEntryListWithAttributes& regionList,
DtRtiObject*
object);
248 virtual void registerAssociateRegionForUpdates(
DtRtiObject&
object,
258 virtual void sendRegionSetMsg(DtObjRegSetType type,
265 virtual void sendAssocPublishRegionMsg(
272 virtual void sendAssocSubscribeRegionMsg(
278 void collectPendingRegisterWithRegion(
DtRtiObject&
object);
285 virtual void deleteSubRegionSet(DtSubRegionSet* regionSet);
292 virtual void processDeleteRegion(DtRegionRealization& region);
298 virtual void processNotifyRegion(DtRegionRealization ®ion,
bool newRegion);
308 DtRemoteRegionSet* remoteRegSet);
309 #elif defined(DtIFSPEC1516E)
313 DtRemoteRegionSet* remoteRegSet);
318 DtRemoteRegionSet* remoteRegSet);
330 virtual void remoteSubscribeRegion(
337 virtual void removeRemoteSubscribeRegion(
345 virtual void processRemoteUnsubscribeRegion();
349 virtual void processRemoteScopeChanges(DtRemoteRegionSet* regionSet);
353 virtual void processPubRegionSet(
const DtObjRegSetMsg& msg);
354 virtual void processSubRegionSet(
const DtObjRegSetMsg& msg);
355 virtual void processAssocPubReg(
const DtAssocPubRegMsg& msg);
356 virtual void processAssocSubReg(
const DtAssocSubRegMsg& msg);
372 static void processAssocPubReg(
const DtAssocPubRegMsg& msg,
void* usr);
373 static void processAssocSubReg(
const DtAssocSubRegMsg& msg,
void* usr);
374 static void processRegionSet(
const DtObjRegSetMsg& msg,
void* usr);
380 virtual DtHandle uniqueRegionSetHandle();
384 virtual void registerAssociateDistributedRegionForUpdates(
DtRtiObject&
object,
389 virtual void calculateRegionSet(
391 #elif defined(DtIFSPEC1516E)
393 virtual void calculateRegionSet(
396 virtual void calculateRegionSet(
397 unsigned long channel,
const DtAhvps& reflectSet);
410 virtual void removeLocalObjectAssociations(
DtRtiObject&
object);
413 virtual void removeRemoteObjectAssociations(
DtRtiObject&
object);
417 virtual void addPendingAssocPubRegAdd(DtPubRegionSet& regionSet,
419 virtual void addPendingAssocPubRegRemove(DtPubRegionSet& regionSet,
421 virtual void addPendingUnassocPubReg(DtPubRegionSet& regionSet,
423 virtual void processPendingAssocPubReg();
428 virtual void addPendingAssocSubRegAdd(DtSubRegionSet& regionSet,
430 virtual void addPendingAssocSubRegRemove(DtSubRegionSet& regionSet,
432 virtual void addPendingUnassocSubReg(DtSubRegionSet& regionSet,
434 DtSubRegionSet* pasRegionSet=0);
435 virtual void processPendingSubRegAssoc();
440 virtual void addPendingAssocPasRegAdd(DtSubRegionSet& regionSet,
442 virtual void addPendingAssocPasRegRemove(DtSubRegionSet& regionSet,
444 virtual void addPendingUnassocPasReg(DtSubRegionSet& regionSet,
446 DtSubRegionSet* subRegionSet=0);
447 virtual void processPendingPasRegAssoc();
454 virtual void collectPendingPubRegSet(DtObjectRegionSet* regionSet);
455 virtual void collectPendingSubRegSet(DtObjectRegionSet* regionSet);
456 virtual void collectPendingAssocPubReg(DtPubRegionSet& regionSet,
458 virtual void collectPendingAssocSubReg(DtSubRegionSet& regionSet,
460 virtual void processCollectedPubRegSet(
462 virtual void processCollectedAssocPubReg(
464 virtual void processCollectedSubRegSet();
465 virtual void processCollectedAssocSubReg();
469 virtual void processAssocSubReg(DtRemoteRegionSet* regionSet,
475 virtual void processAssocPubReg(
477 DtRemoteRegionSet* regionSet,
482 bool isRemoveAssociation);
487 virtual void evaluateScopeUpdates(
DtRtiObject*
object,
492 virtual void evaluateOutOfScopeUpdates(
DtRtiObject*
object,
501 virtual unsigned int evaluateMatchingAfterAdd(
502 DtRegionMatchList& matchList,
503 DtRegionMatchList& matchOverlapList,
504 DtLocalRegionSet& localRegionSet,
505 DtRemoteRegionSet& remoteRegionSet,
514 virtual void evaluateMatchingLocalPubAfterAdd(
515 DtPubRegionSet& pubRegionSet,
522 virtual void evaluateMatchingRemotePubAfterAdd(DtRegionSetList& regSetList,
523 DtRemoteRegionSet& remotePubRegionSet,
530 virtual void evaluateMatchingLocalSubAfterAdd(
531 DtSubRegionSet& subRegionSet,
534 std::set<DtObjectRegionSet*>& collectedJoins);
539 virtual void evaluateMatchingRemoteSubAfterAdd(
540 DtRemoteRegionSet& remoteSubRegionSet,
548 virtual void evaluateMatchingAfterLocalRemove(DtRegionMatchList& matchList,
549 DtRegionMatchList& matchOverlapList, DtLocalRegionSet& regionSet,
551 std::set<DtObjectRegionSet*>* collectedDrops = 0);
557 virtual void evaluateMatchingLocalPubAfterRemove(DtLocalRegionSet& regionSet,
564 virtual void evaluateMatchingLocalSubAfterRemove(DtLocalRegionSet& regionSet,
566 std::set<DtObjectRegionSet*>& collectedDrops);
570 virtual void evaluateMatchingAfterRemoteRemove(
571 DtRegionMatchList& matchList, DtRegionMatchList& matchOverlapList,
577 virtual void evaluateMatchingRemotePubAfterRemove(
583 virtual void evaluateMatchingRemoteSubAfterRemove(
590 virtual void evaluateMatchingRemotePubForRemove(
598 virtual void evaluateMatchingRemoteSubForRemove(
608 virtual void evaluateRegionSetOverlap(DtRegionSetList& evalList,
609 DtRegionMatchList& overlapList,
610 DtRegionMatchList& matchOverlapList,
611 DtObjectRegionSet& regionSet,
613 std::set<DtRemoteRegionSet*>* overlapsAdded=0,
614 std::set<DtRemoteRegionSet*>* overlapsRemoved=0);
623 virtual void evaluateRegionOverlap(DtRegionSetList& evalList,
624 DtRegionMatchList& overlapList,
625 DtRegionMatchList& matchOverlapList,
626 DtObjectRegionSet& regionSet, DtRegionRealization& region,
628 std::set<DtRemoteRegionSet*>* overlapsAdded=0,
629 std::set<DtRemoteRegionSet*>* overlapsRemoved=0);
633 virtual void discoverAssociatedObjects(std::set<DtRemoteRegionSet*> overlapsAdded);
637 virtual void joinRegionSetGroups(std::set<DtRemoteRegionSet*> overlapsAdded);
641 virtual void dropRegionSetGroups(std::set<DtRemoteRegionSet*> overlapsRemoved);
644 virtual void addRemoteSubscribeRegion(
DtRtiObject&
object, DtRemoteRegionSet
const& subRegSet);
647 virtual void addRemoteSubscribeRegion(
DtRtiObject&
object, DtRemoteRegionSet
const& subRegSet,
651 virtual void removeRemoteSubscribeRegion(
DtRtiObject&
object, DtRemoteRegionSet
const& subRegSet);
654 virtual void removeRemoteSubscribeRegion(
DtRtiObject&
object, DtRemoteRegionSet
const& subRegSet,
660 virtual void updateRemoteSubscribeRegion(DtPubRegionSet& regionSet,
661 std::set<DtRemoteRegionSet*> added, std::set<DtRemoteRegionSet*> removed);
689 virtual void addObjectDefaultByClass(
DtRtiObject*
object);
690 virtual void removeObjectDefaultByClass(
DtRtiObject*
object);
695 virtual void getDefaultPubRegionSetAttrList(
703 DtRemoteRegionSet* regSet);
713 virtual void acquireAssociateRegionForUpdates(
721 virtual void unassociateRegionForDivested(
DtRtiObject&
object,
725 virtual void destroyRegionLists();
730 DtObjectRegionSet* regSet );
735 DtObjectRegionSet* regSet,
bool isDefaultRegionSet=
false);
740 DtRemoteRegionSet* regSet,
bool isDefaultRegionSet=
false);
746 DtPubRegionSet* myDefaultPubRegionSet;
747 DtSubRegionSet* myDefaultSubRegionSet;
748 DtSubRegionSet* myDefaultPasRegionSet;
749 DtRemoteRegionSet* myDefaultRemotePubRegionSet;
750 DtRemoteRegionSet* myDefaultRemoteSubRegionSet;
755 DtRegionSetList myLocalPublish;
756 DtRegionSetList myRemotePublish;
761 DtRegionMatchList myMatchPublish;
762 DtRegionMatchList myOverlapPublish;
763 DtRegionMatchList myMatchOverlapPub;
764 DtRegionSetList myLocalSubscribe;
765 DtRegionSetList myPassiveSubscribe;
766 DtRegionSetList myRemoteSubscribe;
767 DtRegionMatchList myMatchSubscribe;
768 DtRegionMatchList myOverlapSubscribe;
769 DtRegionMatchList myMatchOverlapSub;
777 MAKRti::DtHashList myPendingPubRegAdd;
778 MAKRti::DtHashList myPendingPubRegRemove;
779 MAKRti::DtHashList myPendingPubRegUnassoc;
780 MAKRti::DtHashList myPendingSubRegAdd;
781 MAKRti::DtHashList myPendingSubRegRemove;
782 MAKRti::DtHashList myPendingSubRegUnassoc;
783 MAKRti::DtHashList myPendingPasRegAdd;
784 MAKRti::DtHashList myPendingPasRegRemove;
785 MAKRti::DtHashList myPendingPasRegUnassoc;
786 MAKRti::DtList myPendingPubRegSets;
787 MAKRti::DtList myPendingSubRegSets;
788 MAKRti::DtHashList myPendingPubRegAssocs;
789 MAKRti::DtHashList myPendingSubRegAssocs;
793 MAKRti::DtHashlist myOldOnSet;
796 MAKRti::DtHashList myRemoteObjectRegionSets;
799 MAKRti::DtHashList myRemoteObjectDefaultAttrs;
802 MAKRti::DtHashList myRemoteObjectDefaultByClass;
805 MAKRti::DtHashList myRemoteClassRegionSets;