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(
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);
421 virtual void removeLocalObjectAssociations(
DtRtiObject&
object);
424 virtual void removeRemoteObjectAssociations(
DtRtiObject&
object);
428 virtual void addPendingAssocPubRegAdd(DtPubRegionSet& regionSet,
430 virtual void addPendingAssocPubRegRemove(DtPubRegionSet& regionSet,
432 virtual void addPendingUnassocPubReg(DtPubRegionSet& regionSet,
434 virtual void processPendingAssocPubReg();
439 virtual void addPendingAssocSubRegAdd(DtSubRegionSet& regionSet,
441 virtual void addPendingAssocSubRegRemove(DtSubRegionSet& regionSet,
443 virtual void addPendingUnassocSubReg(DtSubRegionSet& regionSet,
445 DtSubRegionSet* pasRegionSet=0);
446 virtual void processPendingSubRegAssoc();
451 virtual void addPendingAssocPasRegAdd(DtSubRegionSet& regionSet,
453 virtual void addPendingAssocPasRegRemove(DtSubRegionSet& regionSet,
455 virtual void addPendingUnassocPasReg(DtSubRegionSet& regionSet,
457 DtSubRegionSet* subRegionSet=0);
458 virtual void processPendingPasRegAssoc();
465 virtual void collectPendingPubRegSet(DtObjectRegionSet* regionSet);
466 virtual void collectPendingSubRegSet(DtObjectRegionSet* regionSet);
467 virtual void collectPendingAssocPubReg(DtPubRegionSet& regionSet,
469 virtual void collectPendingAssocSubReg(DtSubRegionSet& regionSet,
472 virtual void processCollectedPubRegSet(
474 virtual void processCollectedAssocPubReg(
476 virtual void processCollectedSubRegSet();
477 virtual void processCollectedAssocSubReg();
481 virtual void processAssocSubReg(DtRemoteRegionSet* regionSet,
487 virtual void processAssocPubReg(
489 DtRemoteRegionSet* regionSet,
494 bool isRemoveAssociation);
499 virtual void evaluateScopeUpdates(
DtRtiObject*
object,
501 virtual void evaluateScopeUpdates(
DtRtiObject*
object,
506 virtual void evaluateOutOfScopeUpdates(
DtRtiObject*
object,
515 virtual unsigned int evaluateMatchingAfterAdd(
516 DtRegionMatchList& matchList,
517 DtRegionMatchList& matchOverlapList,
518 DtLocalRegionSet& localRegionSet,
519 DtRemoteRegionSet& remoteRegionSet,
528 virtual void evaluateMatchingLocalPubAfterAdd(
529 DtPubRegionSet& pubRegionSet,
536 virtual void evaluateMatchingRemotePubAfterAdd(DtRegionSetList& regSetList,
537 DtRemoteRegionSet& remotePubRegionSet,
544 virtual void evaluateMatchingLocalSubAfterAdd(
545 DtSubRegionSet& subRegionSet,
548 std::set<DtObjectRegionSet*>& collectedJoins);
553 virtual void evaluateMatchingRemoteSubAfterAdd(
554 DtRemoteRegionSet& remoteSubRegionSet,
562 virtual void evaluateMatchingAfterLocalRemove(DtRegionMatchList& matchList,
563 DtRegionMatchList& matchOverlapList, DtLocalRegionSet& regionSet,
565 std::set<DtObjectRegionSet*>* collectedDrops = 0);
571 virtual void evaluateMatchingLocalPubAfterRemove(DtLocalRegionSet& regionSet,
578 virtual void evaluateMatchingLocalSubAfterRemove(DtLocalRegionSet& regionSet,
580 std::set<DtObjectRegionSet*>& collectedDrops);
584 virtual void evaluateMatchingAfterRemoteRemove(
585 DtRegionMatchList& matchList, DtRegionMatchList& matchOverlapList,
591 virtual void evaluateMatchingRemotePubAfterRemove(
597 virtual void evaluateMatchingRemoteSubAfterRemove(
604 virtual void evaluateMatchingRemotePubForRemove(
612 virtual void evaluateMatchingRemoteSubForRemove(
622 virtual void evaluateRegionSetOverlap(DtRegionSetList& evalList,
623 DtRegionMatchList& overlapList,
624 DtRegionMatchList& matchOverlapList,
625 DtObjectRegionSet& regionSet,
627 std::set<DtRemoteRegionSet*>* overlapsAdded=0,
628 std::set<DtRemoteRegionSet*>* overlapsRemoved=0);
637 virtual void evaluateRegionOverlap(DtRegionSetList& evalList,
638 DtRegionMatchList& overlapList,
639 DtRegionMatchList& matchOverlapList,
640 DtObjectRegionSet& regionSet, DtRegionRealization& region,
642 std::set<DtRemoteRegionSet*>* overlapsAdded=0,
643 std::set<DtRemoteRegionSet*>* overlapsRemoved=0);
647 virtual void discoverAssociatedObjects(std::set<DtRemoteRegionSet*> overlapsAdded);
651 virtual void joinRegionSetGroups(std::set<DtRemoteRegionSet*> overlapsAdded);
655 virtual void dropRegionSetGroups(std::set<DtRemoteRegionSet*> overlapsRemoved);
658 virtual void addRemoteSubscribeRegion(
DtRtiObject&
object, DtRemoteRegionSet
const& subRegSet);
661 virtual void addRemoteSubscribeRegion(
DtRtiObject&
object, DtRemoteRegionSet
const& subRegSet,
665 virtual void removeRemoteSubscribeRegion(
DtRtiObject&
object, DtRemoteRegionSet
const& subRegSet);
668 virtual void removeRemoteSubscribeRegion(
DtRtiObject&
object, DtRemoteRegionSet
const& subRegSet,
674 virtual void updateRemoteSubscribeRegion(DtPubRegionSet& regionSet,
675 std::set<DtRemoteRegionSet*> added, std::set<DtRemoteRegionSet*> removed);
703 virtual void addObjectDefaultByClass(
DtRtiObject*
object);
704 virtual void removeObjectDefaultByClass(
DtRtiObject*
object);
709 virtual void getDefaultPubRegionSetAttrList(
717 DtRemoteRegionSet* regSet);
727 virtual void acquireAssociateRegionForUpdates(
735 virtual void unassociateRegionForDivested(
DtRtiObject&
object,
739 virtual void destroyRegionLists();
744 DtObjectRegionSet* regSet );
749 DtObjectRegionSet* regSet,
bool isDefaultRegionSet=
false);
754 DtRemoteRegionSet* regSet,
bool isDefaultRegionSet=
false);
760 DtPubRegionSet* myDefaultPubRegionSet;
761 DtSubRegionSet* myDefaultSubRegionSet;
762 DtSubRegionSet* myDefaultPasRegionSet;
763 DtRemoteRegionSet* myDefaultRemotePubRegionSet;
764 DtRemoteRegionSet* myDefaultRemoteSubRegionSet;
769 DtRegionSetList myLocalPublish;
770 DtRegionSetList myRemotePublish;
775 DtRegionMatchList myMatchPublish;
776 DtRegionMatchList myOverlapPublish;
777 DtRegionMatchList myMatchOverlapPub;
778 DtRegionSetList myLocalSubscribe;
779 DtRegionSetList myPassiveSubscribe;
780 DtRegionSetList myRemoteSubscribe;
781 DtRegionMatchList myMatchSubscribe;
782 DtRegionMatchList myOverlapSubscribe;
783 DtRegionMatchList myMatchOverlapSub;
791 MAKRti::DtHashList myPendingPubRegAdd;
792 MAKRti::DtHashList myPendingPubRegRemove;
793 MAKRti::DtHashList myPendingPubRegUnassoc;
794 MAKRti::DtHashList myPendingSubRegAdd;
795 MAKRti::DtHashList myPendingSubRegRemove;
796 MAKRti::DtHashList myPendingSubRegUnassoc;
797 MAKRti::DtHashList myPendingPasRegAdd;
798 MAKRti::DtHashList myPendingPasRegRemove;
799 MAKRti::DtHashList myPendingPasRegUnassoc;
800 MAKRti::DtList myPendingPubRegSets;
801 MAKRti::DtList myPendingSubRegSets;
802 MAKRti::DtHashList myPendingPubRegAssocs;
803 MAKRti::DtHashList myPendingSubRegAssocs;
804 DtObjectClassMaskMap myPendingSubRegAssocsMask;
808 std::map<DtHandle,DtAttributeHandleSet*> myOldOnSet;
811 MAKRti::DtHashList myRemoteObjectRegionSets;
814 MAKRti::DtHashList myRemoteObjectDefaultAttrs;
817 MAKRti::DtHashList myRemoteObjectDefaultByClass;
820 MAKRti::DtHashList myRemoteClassRegionSets;