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,
266 virtual void sendAssocPublishRegionMsg(
274 virtual void sendAssocSubscribeRegionMsg(
280 void collectPendingRegisterWithRegion(
DtRtiObject&
object);
287 virtual void deleteSubRegionSet(DtSubRegionSet* regionSet);
294 virtual void processDeleteRegion(DtRegionRealization& region);
300 virtual void processNotifyRegion(DtRegionRealization ®ion,
bool newRegion);
310 DtRemoteRegionSet* remoteRegSet);
311 #elif defined(DtIFSPEC1516E)
315 DtRemoteRegionSet* remoteRegSet);
320 DtRemoteRegionSet* remoteRegSet);
332 virtual void remoteSubscribeRegion(
339 virtual void removeRemoteSubscribeRegion(
347 virtual void processRemoteUnsubscribeRegion();
351 virtual void processRemoteScopeChanges(DtRemoteRegionSet* regionSet);
355 virtual void processPubRegionSet(
const DtObjRegSetMsg& msg);
356 virtual void processSubRegionSet(
const DtObjRegSetMsg& msg);
357 virtual void processAssocPubReg(
const DtAssocPubRegMsg& msg);
358 virtual void processAssocSubReg(
const DtAssocSubRegMsg& msg);
374 static void processAssocPubReg(
const DtAssocPubRegMsg& msg,
void* usr);
375 static void processAssocSubReg(
const DtAssocSubRegMsg& msg,
void* usr);
376 static void processRegionSet(
const DtObjRegSetMsg& msg,
void* usr);
386 virtual DtHandle uniqueRegionSetHandle();
390 virtual void registerAssociateDistributedRegionForUpdates(
DtRtiObject&
object,
395 virtual void calculateRegionSet(
397 #elif defined(DtIFSPEC1516E)
399 virtual void calculateRegionSet(
402 virtual void calculateRegionSet(
403 unsigned long channel,
const DtAhvps& reflectSet);
416 virtual void removeLocalObjectAssociations(
DtRtiObject&
object);
419 virtual void removeRemoteObjectAssociations(
DtRtiObject&
object);
423 virtual void addPendingAssocPubRegAdd(DtPubRegionSet& regionSet,
425 virtual void addPendingAssocPubRegRemove(DtPubRegionSet& regionSet,
427 virtual void addPendingUnassocPubReg(DtPubRegionSet& regionSet,
429 virtual void processPendingAssocPubReg();
434 virtual void addPendingAssocSubRegAdd(DtSubRegionSet& regionSet,
436 virtual void addPendingAssocSubRegRemove(DtSubRegionSet& regionSet,
438 virtual void addPendingUnassocSubReg(DtSubRegionSet& regionSet,
440 DtSubRegionSet* pasRegionSet=0);
441 virtual void processPendingSubRegAssoc();
446 virtual void addPendingAssocPasRegAdd(DtSubRegionSet& regionSet,
448 virtual void addPendingAssocPasRegRemove(DtSubRegionSet& regionSet,
450 virtual void addPendingUnassocPasReg(DtSubRegionSet& regionSet,
452 DtSubRegionSet* subRegionSet=0);
453 virtual void processPendingPasRegAssoc();
460 virtual void collectPendingPubRegSet(DtObjectRegionSet* regionSet);
461 virtual void collectPendingSubRegSet(DtObjectRegionSet* regionSet);
462 virtual void collectPendingAssocPubReg(DtPubRegionSet& regionSet,
464 virtual void collectPendingAssocSubReg(DtSubRegionSet& regionSet,
467 virtual void processCollectedPubRegSet(
469 virtual void processCollectedAssocPubReg(
471 virtual void processCollectedSubRegSet();
472 virtual void processCollectedAssocSubReg();
476 virtual void processAssocSubReg(DtRemoteRegionSet* regionSet,
482 virtual void processAssocPubReg(
484 DtRemoteRegionSet* regionSet,
489 bool isRemoveAssociation);
494 virtual void evaluateScopeUpdates(
DtRtiObject*
object,
499 virtual void evaluateOutOfScopeUpdates(
DtRtiObject*
object,
508 virtual unsigned int evaluateMatchingAfterAdd(
509 DtRegionMatchList& matchList,
510 DtRegionMatchList& matchOverlapList,
511 DtLocalRegionSet& localRegionSet,
512 DtRemoteRegionSet& remoteRegionSet,
521 virtual void evaluateMatchingLocalPubAfterAdd(
522 DtPubRegionSet& pubRegionSet,
529 virtual void evaluateMatchingRemotePubAfterAdd(DtRegionSetList& regSetList,
530 DtRemoteRegionSet& remotePubRegionSet,
537 virtual void evaluateMatchingLocalSubAfterAdd(
538 DtSubRegionSet& subRegionSet,
541 std::set<DtObjectRegionSet*>& collectedJoins);
546 virtual void evaluateMatchingRemoteSubAfterAdd(
547 DtRemoteRegionSet& remoteSubRegionSet,
555 virtual void evaluateMatchingAfterLocalRemove(DtRegionMatchList& matchList,
556 DtRegionMatchList& matchOverlapList, DtLocalRegionSet& regionSet,
558 std::set<DtObjectRegionSet*>* collectedDrops = 0);
564 virtual void evaluateMatchingLocalPubAfterRemove(DtLocalRegionSet& regionSet,
571 virtual void evaluateMatchingLocalSubAfterRemove(DtLocalRegionSet& regionSet,
573 std::set<DtObjectRegionSet*>& collectedDrops);
577 virtual void evaluateMatchingAfterRemoteRemove(
578 DtRegionMatchList& matchList, DtRegionMatchList& matchOverlapList,
584 virtual void evaluateMatchingRemotePubAfterRemove(
590 virtual void evaluateMatchingRemoteSubAfterRemove(
597 virtual void evaluateMatchingRemotePubForRemove(
605 virtual void evaluateMatchingRemoteSubForRemove(
615 virtual void evaluateRegionSetOverlap(DtRegionSetList& evalList,
616 DtRegionMatchList& overlapList,
617 DtRegionMatchList& matchOverlapList,
618 DtObjectRegionSet& regionSet,
620 std::set<DtRemoteRegionSet*>* overlapsAdded=0,
621 std::set<DtRemoteRegionSet*>* overlapsRemoved=0);
630 virtual void evaluateRegionOverlap(DtRegionSetList& evalList,
631 DtRegionMatchList& overlapList,
632 DtRegionMatchList& matchOverlapList,
633 DtObjectRegionSet& regionSet, DtRegionRealization& region,
635 std::set<DtRemoteRegionSet*>* overlapsAdded=0,
636 std::set<DtRemoteRegionSet*>* overlapsRemoved=0);
640 virtual void discoverAssociatedObjects(std::set<DtRemoteRegionSet*> overlapsAdded);
644 virtual void joinRegionSetGroups(std::set<DtRemoteRegionSet*> overlapsAdded);
648 virtual void dropRegionSetGroups(std::set<DtRemoteRegionSet*> overlapsRemoved);
651 virtual void addRemoteSubscribeRegion(
DtRtiObject&
object, DtRemoteRegionSet
const& subRegSet);
654 virtual void addRemoteSubscribeRegion(
DtRtiObject&
object, DtRemoteRegionSet
const& subRegSet,
658 virtual void removeRemoteSubscribeRegion(
DtRtiObject&
object, DtRemoteRegionSet
const& subRegSet);
661 virtual void removeRemoteSubscribeRegion(
DtRtiObject&
object, DtRemoteRegionSet
const& subRegSet,
667 virtual void updateRemoteSubscribeRegion(DtPubRegionSet& regionSet,
668 std::set<DtRemoteRegionSet*> added, std::set<DtRemoteRegionSet*> removed);
696 virtual void addObjectDefaultByClass(
DtRtiObject*
object);
697 virtual void removeObjectDefaultByClass(
DtRtiObject*
object);
702 virtual void getDefaultPubRegionSetAttrList(
710 DtRemoteRegionSet* regSet);
720 virtual void acquireAssociateRegionForUpdates(
728 virtual void unassociateRegionForDivested(
DtRtiObject&
object,
732 virtual void destroyRegionLists();
737 DtObjectRegionSet* regSet );
742 DtObjectRegionSet* regSet,
bool isDefaultRegionSet=
false);
747 DtRemoteRegionSet* regSet,
bool isDefaultRegionSet=
false);
753 DtPubRegionSet* myDefaultPubRegionSet;
754 DtSubRegionSet* myDefaultSubRegionSet;
755 DtSubRegionSet* myDefaultPasRegionSet;
756 DtRemoteRegionSet* myDefaultRemotePubRegionSet;
757 DtRemoteRegionSet* myDefaultRemoteSubRegionSet;
762 DtRegionSetList myLocalPublish;
763 DtRegionSetList myRemotePublish;
768 DtRegionMatchList myMatchPublish;
769 DtRegionMatchList myOverlapPublish;
770 DtRegionMatchList myMatchOverlapPub;
771 DtRegionSetList myLocalSubscribe;
772 DtRegionSetList myPassiveSubscribe;
773 DtRegionSetList myRemoteSubscribe;
774 DtRegionMatchList myMatchSubscribe;
775 DtRegionMatchList myOverlapSubscribe;
776 DtRegionMatchList myMatchOverlapSub;
784 MAKRti::DtHashList myPendingPubRegAdd;
785 MAKRti::DtHashList myPendingPubRegRemove;
786 MAKRti::DtHashList myPendingPubRegUnassoc;
787 MAKRti::DtHashList myPendingSubRegAdd;
788 MAKRti::DtHashList myPendingSubRegRemove;
789 MAKRti::DtHashList myPendingSubRegUnassoc;
790 MAKRti::DtHashList myPendingPasRegAdd;
791 MAKRti::DtHashList myPendingPasRegRemove;
792 MAKRti::DtHashList myPendingPasRegUnassoc;
793 MAKRti::DtList myPendingPubRegSets;
794 MAKRti::DtList myPendingSubRegSets;
795 MAKRti::DtHashList myPendingPubRegAssocs;
796 MAKRti::DtHashList myPendingSubRegAssocs;
797 DtObjectClassMaskMap myPendingSubRegAssocsMask;
801 std::map<DtHandle,DtAttributeHandleSet*> myOldOnSet;
804 MAKRti::DtHashList myRemoteObjectRegionSets;
807 MAKRti::DtHashList myRemoteObjectDefaultAttrs;
810 MAKRti::DtHashList myRemoteObjectDefaultByClass;
813 MAKRti::DtHashList myRemoteClassRegionSets;