MAK RTIspy API Documentation for HLA 1516
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
objMgr.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1998 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: objMgr.h,v $ $Revision: 1.142 $ $State: Exp $
7 *********************************************************************/
8 
9 #pragma once
10 
13 
14 #include "timeMgr.h"
15 #include "fedMgr.h"
16 #include "rtiMsConfig.h"
17 #include "connection.h"
18 #include "objClassInfo.h"
19 #include "rtiObject.h"
20 #include "connectMgr.h"
21 #include "RIDparams.h"
22 #include "addrMap.h"
23 #include "reqObjMsg.h"
24 #include "ownerMsg.h"
25 #include "aHandValSet.h"
26 #include "rtiApiTypes.h"
27 
28 #include <vlutil/vlFedTarget.h>
29 
30 #include <set>
31 #include <list>
32 
34 #define DtHlaNamePrefix "HLA_"
35 
36 class DtUpdateMsg;
37 class DtReserveNameMsg;
38 class DtNameReservedMsg;
39 class DtRegObjMsg;
40 class DtMultiRegObjMsg;
41 class DtDiscObjMsg;
42 class DtReqDiscObjMsg;
43 class DtDeleteRoMsg;
44 class DtDeleteTsoMsg;
45 class DtLocDelMsg;
46 class DtPubObjMsg;
47 class DtUnpubObjMsg;
48 class DtSubObjMsg;
49 class DtUnsubObjMsg;
50 class DtRequestMsg;
51 class DtOwnershipMsg;
52 class DtResignMsg;
53 class DtRegion13;
54 class DtRegionEntryListWithAttributes;
55 class DtRtiSaveFile;
56 class DtMomTallyList;
57 class DtObjectMgr;
58 class DtFomClassMgr;
59 class DtTimeMgr;
65 
68 {
72 };
73 
74 typedef std::map<DtHandle,DtRtiObject*> DtRtiObjectMap;
75 
82 {
83 public:
84 
86  typedef DtObjectMgr* (*DtObjectMgrCreator)(DtFederateMgr* fedMgr);
87 
89  typedef std::map<DtObjectInstanceHandle, DtAttributeHandleSet>
91 
92 protected:
93  typedef std::map< DtObjectClassHandle,DtBitMask*> DtObjectClassMaskMap;
94  typedef std::map< DtObjectInstanceHandle,DtBitMask*> DtObjectInstanceMaskMap;
95  typedef std::list< std::pair< DtObjectClassHandle, DtAttributeHandleSet > > DtObjClassAttrSetPairList;
96  typedef std::list< std::pair< DtObjectInstanceHandle, DtAttributeHandleSet > > DtObjInstAttrSetPairList;
97  typedef std::list< std::pair< DtObjectInstanceHandle, std::pair<MAKRti::DtTransportType, DtAttributeHandleSet>>> DtPendingConfirmTransport;
98 #ifdef DtTIME
99  typedef std::map<DtObjectInstanceHandle, DtRtiApiTime const *> DtObjectHandleTimeMap;
100  typedef std::map<DtRtiObject*, DtRtiApiTime const *> DtObjectPtrTimeMap;
101 #endif
102 
103 protected:
104 
106  DtObjectMgr(DtFederateMgr* fedMgr);
107 
108 public:
109 
111  virtual ~DtObjectMgr();
112 
113 private:
114 
116  DtObjectMgr(DtObjectMgr const& );
117 
119  DtObjectMgr& operator= (DtObjectMgr const& );
120 
121 public:
122 
124  virtual void postJoinInit();
125 
127  virtual bool isPostJoined() const;
128 
130  inline DtFederateMgr* federateMgr() {return myFederateMgr;}
131  inline DtFederateMgr* federateMgr() const {return myFederateMgr;}
132 
134  inline DtConnectionMgr* connectMgr() {return federateMgr()->connectMgr();}
135  inline DtConnectionMgr* connectMgr() const {return federateMgr()->connectMgr();}
136 
138  inline DtRIDParameters* params() {return federateMgr()->params();}
140  inline DtRIDParameters* params() const {return federateMgr()->params();}
142 
144  inline DtFomClassMgr* fom() {return federateMgr()->fom();}
146  inline DtFomClassMgr* fom() const {return federateMgr()->fom();}
148 
149 #ifdef DtTIME
150  inline DtTimeMgr* timeMgr() {return federateMgr()->timeMgr();}
152  inline DtTimeMgr* timeMgr() const {return federateMgr()->timeMgr();}
153 #endif
154 
156  virtual bool useHlaNamePrefix();
157 
159  virtual DtObjectInstanceHandle objectHandle(const char* name);
160 
163  virtual const char* objectName(DtObjectInstanceHandle handle);
164 
166  virtual DtObjectClassHandle objectClass(DtObjectInstanceHandle handle);
167 
169  virtual int subscribed(DtObjectClassHandle handle);
170 
172  virtual int published(DtObjectClassHandle handle);
173 
175  virtual void publish(
176  DtObjectClassHandle theObject,
177  const DtAttributeHandleSet& attributeList);
178 
180  virtual void unpublishClass(
181  DtObjectClassHandle theObject);
182 
184  virtual void unpublishAttributes(
185  DtObjectClassHandle theClass,
186  DtAttributeHandleSet const & attributeList);
187 
190  virtual void unpublishAttributes(
191  DtObjectClassInfo& classDesc,
192  DtAttributeHandleSet const & attributeList,
193  bool implicitlyUnpublishPrivilegeToDelete);
194 
196  virtual void publishDirectedInteractions(DtObjectClassHandle objectClassHandle,
197  DtInteractionClassHandleStdSet const& interactionClassHandles);
198 
200  virtual void unpublishDirectedInteractions(DtObjectClassHandle objectClass);
201 
203  virtual void unpublishDirectedInteractions(DtObjectClassHandle objectClass,
204  DtInteractionClassHandleStdSet const& interactions);
205 
207  virtual void subscribe(
208  DtObjectClassHandle theClass,
209  const DtAttributeHandleSet& attributeList,
210  bool active
211 #if defined(DtIFSPEC13) || defined(DtIFSPEC1516)
212  );
213 #else
214  , MAKRti::DtString updateRateDesignator);
215 #endif
216 
218  virtual void unsubscribeClass(
219  DtObjectClassHandle theClass);
220 
222  virtual void unsubscribeAttributes(
223  DtObjectClassHandle theClass,
224  DtAttributeHandleSet const & attributeList);
225 
227  virtual void unsubscribeAttributes(
228  DtObjectClassInfo& classDesc,
229  DtAttributeHandleSet const & attributeList);
230 
232  virtual void subscribeDirectedInteractions(DtObjectClassHandle objectClassHandle,
233  DtInteractionClassHandleStdSet const& interactionClassHandles, bool universally);
234 
236  virtual void unsubscribeDirectedInteractions(DtObjectClassHandle objectClass);
237 
239  virtual void unsubscribeDirectedInteractions(DtObjectClassHandle objectClass,
240  DtInteractionClassHandleStdSet const& interactions);
241 
242 #if !defined(DtIFSPEC13) && !defined(DtIFSPEC1516)
243  virtual void reserveMultipleObjectInstanceName(
245  std::set<std::wstring> const & theObjectInstanceNames);
246 #endif
247 
248 
250  virtual void reserveObjectInstanceName(
251  std::string const & theObjectInstanceName);
252 
254  virtual DtObjectInstanceHandle registerObj(
255  DtObjectClassHandle theClass,
256 #if defined(DtIFSPEC13)
257  const char* name);
258 #else
259  std::string const & theObjectInstanceName);
260 #endif
261 
262 #if !defined(DtIFSPEC13) && !defined(DtIFSPEC1516)
263  virtual void releaseObjectInstanceName(
265  std::string const & theObjectInstanceName)
266  throw (RTI_API::ObjectInstanceNameNotReserved);
267  virtual void releaseMultipleObjectInstanceNames(
268  std::set< std::wstring > const & theObjectInstanceNames )
269  throw (RTI_API::ObjectInstanceNameNotReserved);
270  virtual void queryAttributeTransportationType(
271  DtObjectInstanceHandle theObject,
272  DtAttributeHandle theAttribute);
273  virtual void queryInteractionTransportationType(
274  DtFederateHandle theFederate,
275  DtInteractionClassHandle theInteraction);
276  virtual void releaseDenied( DtObjectInstanceHandle objectHandle,
277  const DtAttributeHandleSet& attrs,
279  virtual double getUpdateRateForAttribute( DtObjectInstanceHandle objHandle,
280  DtAttributeHandle attrHandle );
281 #endif
282 
284  virtual DtObjectInstanceHandle registerObj(
285  DtObjectClassHandle theClass);
286 
287 #if !defined(DtIFSPEC13) && !defined(DtIFSPEC1516)
288  bool holdsPrivilegeToDelete(const DtObjectInstanceHandle & id);
289 #endif
290 
293  virtual unsigned long deleteObj(
294  DtObjectInstanceHandle objectID,
295  DtRtiApiTime const * theTime,
296  DtRtiApiTagConstRef theTag);
297 
299  virtual void localDeleteObj(DtObjectInstanceHandle obj);
300 
302  virtual void requestObjectUpdate(
303  DtObjectInstanceHandle theObject,
304  const DtAttributeHandleSet& theAttributes,
306 
308  virtual void requestClassUpdate(
309  DtObjectClassHandle theClass,
310  const DtAttributeHandleSet& theAttributes,
312  DtHandle regionSetHandle = DtDefaultRegionSetHandle);
313 
317  virtual unsigned long sendUpdate(
318  DtObjectInstanceHandle theObject,
319  const DtAhvps& theAttrs,
320  DtRtiApiTime const * theTime,
321  DtRtiApiTagConstRef tag);
322 
325  virtual unsigned long sendUpdate(
326  DtRtiObject* theObject,
327  const DtAhvps& theAttrs,
328  DtRtiApiTime const * theTime,
329  DtRtiApiTagConstRef tag);
330 
332  virtual void acquireAttrs(
333  DtObjectInstanceHandle objHand,
334  const DtAttributeHandleSet& desiredAttributes,
335  bool onlyIfAvail,
337 
339  virtual void cancelAcquire(
340  DtObjectInstanceHandle objHand,
341  const DtAttributeHandleSet& attrs);
342 
344  virtual void divestOwnership(
345  DtObjectInstanceHandle objHand,
346  const DtAttributeHandleSet& attrs,
347  DtDivestCondition condition,
348 #if !defined(DtIFSPEC13)
349  DtAttributeHandleSet& divestedSet,
350 #endif
352 
353 #if !defined(DtIFSPEC13)
354  virtual void confirmDivestiture (
356  DtObjectInstanceHandle objHand,
357  const DtAttributeHandleSet& attrs,
358  DtRtiApiTagConstRef theUserSuppliedTag);
359 #endif
360 
362  virtual void cancelDivest(
363  DtObjectInstanceHandle objHand,
364  const DtAttributeHandleSet& attrs);
365 
367  virtual DtAttributeHandleSet* releaseResponse(
368  DtObjectInstanceHandle objHand,
369  const DtAttributeHandleSet& attrs);
370 
372  virtual void addAllObj(DtRtiObject* obj);
375  virtual void removeAllObj(DtObjectInstanceHandle obj);
376  virtual const DtRtiObjectMap& allObjects() const;
377  virtual DtRtiObject* allObj(DtObjectInstanceHandle id);
378  virtual DtRtiObject* allObj(const char* name);
380 
382  virtual void addKnownObj(DtRtiObject* obj);
385  virtual void removeKnownObj(DtObjectInstanceHandle obj);
386  virtual const DtRtiObjectMap& knownObjects() const;
387  virtual DtRtiObject* knownObj(DtObjectInstanceHandle id);
388  virtual const DtRtiObject* knownObj(DtObjectInstanceHandle id) const;
389  virtual DtRtiObject* knownObj(const char* name);
390  virtual const DtRtiObject* knownObj(const char* name) const;
392 
394  virtual void addOwnedObj(DtRtiObject* obj);
397  virtual void removeOwnedObj(DtObjectInstanceHandle obj);
398  virtual const DtRtiObjectMap& ownedObjects() const;
399  virtual DtRtiObject* ownedObj(DtObjectInstanceHandle id);
400  virtual DtRtiObject* ownedObj(const char* name);
402 
404  virtual void addLrcManagedObj(DtRtiObject* obj);
407  virtual void removeLrcManagedObj(DtObjectInstanceHandle obj);
408  virtual const DtRtiObjectMap& lrcManagedObjects() const;
409  virtual DtRtiObject* lrcManagedObj(DtObjectInstanceHandle id);
410  virtual DtRtiObject* lrcManagedObj(const char* name);
412 
414  virtual void removeFromAllLists(DtRtiObject* object);
415 
417 
418 #if !defined(DtIFSPEC1516_2025)
419  virtual void queryOwnership(DtObjectInstanceHandle obj, DtAttributeHandle attr);
420 #else
421  virtual void queryOwnership(DtObjectInstanceHandle obj, DtAttributeHandleSet const& attrSet);
422 #endif
423 
424 
426  virtual bool isAcquistionPending();
427 
432  virtual int evaluateSubscription(DtRtiMsg const& msg);
433 
435  virtual void autoProvideAttrValueUpdate();
436 
440  virtual void sendRegister(DtRtiObject* obj);
441 
445  virtual void resendRegister(DtRtiObject* obj, DtBitMask* sendMask = 0);
446 
451  virtual void resendMultiRegister( DtObjectClassHandle classHandle );
452 
455  virtual void sendRequestMsg(
456  DtRequestType type, unsigned long idOrClass,
457  const DtAttributeHandleSet& theSet,
459  bool anonymous,
461  DtFederateHandle fedHandle = 0);
462 
464  virtual void addPendingStartUpdates(
466  const DtAttributeHandleSet& attributeList);
467 
469  virtual void addPendingStopUpdates(
470  DtObjectClassHandle theClass,
471  const DtAttributeHandleSet& attributeList);
472 
474  virtual void addPendingStartReg(DtObjectClassHandle theClass);
475 
477  virtual void addPendingStopReg(DtObjectClassHandle theClass);
478 
480  virtual void addPendingRegister(DtObjectClassHandle theClass, DtFederateHandle fedHandle = 0);
481 
483  virtual void addPendingSubscription(DtObjectClassHandle theClass, DtFederateHandle fedHandle = 0);
484 
486  virtual void addPendingRegisterForObject(DtObjectInstanceHandle objHandle);
487 
489  virtual void addPendingRemoval(DtObjectInstanceHandle id);
490 
492  virtual void addPendingRequestAttrs(DtObjectInstanceHandle objectHandle,
493  DtAttributeHandleSet attributes);
494 
496  virtual void addPendingDivestNotification(DtObjectInstanceHandle objectHandle,
497  DtAttributeHandleSet attributes);
498 
500  virtual void addPendingDiscovery(DtObjectInstanceHandle objectHandle,
501  DtObjectClassHandle classHandle, DtFederateHandle federate,
502  bool isNonDiscovery);
503 
505  virtual void processResign(const DtResignMsg& msg);
506 
508  void testResign(RTI_API::ResignAction const & theAction);
511  void prepareToResign(RTI_API::ResignAction const & theAction);
513 
515  virtual void preTick();
516 
518  virtual void postTick();
519 
522 
523  virtual void setRestoreInProgress(bool isRestore);
525  virtual bool restoreInProgress() const;
527 
529  virtual void enableClassRelevanceSwitch();
532  virtual void disableClassRelevanceSwitch();
534 
536 
537  virtual void setClassRelevanceSwitch(bool enableSwitch);
538  virtual bool classRelevanceSwitch() const;
540 
542  virtual void enableAttributeRelevanceSwitch();
545  virtual void disableAttributeRelevanceSwitch();
547 
549 
550  virtual void setAttributeRelevanceSwitch(bool enableSwitch);
551  virtual bool attributeRelevanceSwitch() const;
553 
555  virtual void enableAttributeScopeSwitch();
558  virtual void disableAttributeScopeSwitch();
560 
562 
563  virtual void setAttributeScopeSwitch(bool enableSwitch);
564  virtual bool attributeScopeSwitch() const;
566 
568  virtual void turnUpdatesOn(DtRtiObject const& object, DtAttributeHandleSet const& oldOnSet);
569 
571  virtual void turnUpdatesOff(DtRtiObject const& object, DtAttributeHandleSet const& oldOnSet);
572 
575  virtual DtObjectInstanceHandle uniqueHandle();
576 
579  virtual void getUniqueName(DtObjectInstanceHandle handle,
580  MAKRti::DtString& objectName);
581 
584  virtual bool objectWasCreatedByFederate( DtRtiObject const& obj, DtFederateHandle const& fedHandle );
585 
590  virtual DtRtiObject* processNewObj(DtObjectInstanceHandle objHand,
591  DtObjectClassHandle realClass, const char* name,
592  const DtAttributeHandleSet& inSet,
593  DtHandle regSetHandle,
594  DtFederateHandle sourceFederate);
595 
597  virtual DtObjectClassInfo* firstSubscribedClass(
598  DtObjectClassInfo* classDesc,
599  DtHandle regSetHandle);
600 
601 #ifdef DtMOM
602 
603  virtual void getObjectsOwned(DtMomTallyList& list) const;
605  virtual void getObjectsReflected(DtMomTallyList& list) const;
606  virtual void getObjectsUpdated(DtMomTallyList& list) const;
608 #endif
609 
611  virtual int numObjectsOwned();
612 
614  virtual void setDefaultClassAttributeTransportationType(DtObjectClassHandle theObjectClass,
615  const DtAttributeHandleSet& theAttributes, MAKRti::DtTransportType theType);
616 
618  virtual void setAttributeTransportType (DtObjectInstanceHandle theObject,
619  const DtAttributeHandleSet& theAttributes, MAKRti::DtTransportType theType);
620 
622  virtual void setDefaultClassAttributeOrderType(DtObjectClassHandle theObjectClass,
623  const DtAttributeHandleSet& theAttributes,MAKRti::DtOrderType theType);
624 
626  virtual void setAttributeOrderType (DtObjectInstanceHandle theObject,
627  const DtAttributeHandleSet& theAttributes, MAKRti::DtOrderType theType);
628 
629 
630 #ifdef DDM
631 
635 
638  virtual void registerAssociateRegionForUpdates(DtRtiObject& object,
639  DtAttributeHandleSet const& attributes, DtRegion& region) {};
640 
641 #if defined(DtIFSPEC13)
642  virtual DtObjectInstanceHandle registerObjectInstanceWithRegion(
644  DtObjectClassHandle objectClass,
645  DtAttributeHandle attributes[],
646  DtRegion13 *regions[],
647  unsigned long numberOfHandles,
648  const char *objectName=NULL) { return 0; }
649 
651  virtual void associateRegionForUpdates(
652  DtRegion& theRegion,
653  DtObjectInstanceHandle theObject,
654  const DtAttributeHandleSet& theAttributes) {}
655 
657  virtual void unassociateRegionForUpdates(
658  DtRegion& theRegion, DtObjectInstanceHandle theObject) {}
659 
661  virtual void subscribeObjectClassAttributesWithRegion(
662  DtObjectClassHandle theClass,
663  DtRegion &theRegion,
664  const DtAttributeHandleSet &attributeList,
665  bool active) {}
666 
668  virtual void unsubscribeObjectClassWithRegion(
669  DtObjectClassHandle theClass, DtRegion &theRegion) {}
670 
672  virtual void requestClassAttributeValueUpdateWithRegion (
673  DtObjectClassHandle theClass,
674  const DtAttributeHandleSet &theAttributes,
675  const DtRegion &theRegion) {}
676 #else
677  virtual DtObjectInstanceHandle registerObjectInstanceWithRegions (
679  DtObjectClassHandle theClass,
680  RTI_API::AttributeHandleSetRegionHandleSetPairVector const & theAttributeRegionPairs,
681  const char * theObjectInstanceName=NULL) { return 0;}
682 
684  virtual void associateRegionsForUpdates (
685  DtObjectInstanceHandle theObject,
686  RTI_API::AttributeHandleSetRegionHandleSetPairVector const & theAttributeRegionPairs) {}
687 
689  virtual void unassociateRegionsForUpdates (
690  DtObjectInstanceHandle theObject,
691  RTI_API::AttributeHandleSetRegionHandleSetPairVector const & theAttributeRegionPairs) {}
692 
694  virtual void subscribeObjectClassAttributesWithRegions (
695  DtObjectClassHandle theClass,
696  RTI_API::AttributeHandleSetRegionHandleSetPairVector const & theAttributeRegionPairs, bool active
697 #if !defined(DtIFSPEC1516)
698  , MAKRti::DtString updateRateDesignator
699 #endif
700  ) {}
701 
703  virtual void unsubscribeObjectClassAttributesWithRegions (
704  DtObjectClassHandle theClass,
705  RTI_API::AttributeHandleSetRegionHandleSetPairVector const & theAttributeHandleSetRegionHandleSetPairVector) {}
706 
708  virtual void requestAttributeValueUpdateWithRegions (
709  DtObjectClassHandle theClass,
710  RTI_API::AttributeHandleSetRegionHandleSetPairVector const & theAttributeRegionPairs,
711  DtRtiApiTagConstRef theUserSuppliedTag) {}
712 #endif
713 
714 
715 
716 #endif
717 
718 #ifdef DtTIME
719  virtual void checkPendingTsoRemoveObject();
723 
726  virtual bool retractTsoRemoveObject(DtMessageRetractionHandle const& retractionHandle);
727 #endif
728 
730  virtual bool save(DtRtiSaveFile& file);
731 
733  virtual void prepareToRestore();
734 
736  virtual bool restore( DtRtiSaveFile& file );
737 
740  virtual void sendNotDiscoveredMsgForSmartForwarding(
741  DtObjectInstanceHandle handle,
742  const DtObjectClassInfo& classInfo,
743  DtFederateHandle federate,
744  const DtAttributeHandleSet* attributes = 0);
745  virtual void sendNotDiscoveredMsgForSmartForwarding(
746  DtObjectInstanceHandle handle,
747  const DtObjectClassInfo& classInfo,
748  DtFederateHandle federate,
749  const DtAhvps* attributes);
750 
751 public:
752 
756  static DtObjectMgr* create(DtFederateMgr* fedMgr);
757 
760  static void setCreatorFunction(DtObjectMgrCreator creator);
761 
766  static void setInternalCreatorFunction(DtObjectMgrCreator fn);
767 
769  virtual void ignoreNextUpdate(DtObjectInstanceHandle hdl);
770 
771 protected:
772 
773  virtual void insertBitMask(DtObjectClassMaskMap& classMaskMap, DtObjectClassHandle classHandle, DtFederateHandle fedHandle);
774  virtual void insertRegBitMask( DtObjectClassHandle classHandle, DtFederateHandle fedHandle );
775  virtual void insertSubBitMask( DtObjectClassHandle classHandle, DtFederateHandle fedHandle );
776  virtual void insertDiscBitMask( DtObjectClassHandle classHandle, DtFederateHandle fedHandle );
777  virtual void insertNonDiscBitMask( DtObjectClassHandle classHandle, DtFederateHandle fedHandle );
778 
780  virtual void provideAttrValueUpdate(const DtRtiObject* obj,
781  const DtAttributeHandleSet& attrHandles,
782  DtRtiApiTagConstRef tag);
783 
786  virtual void remoteSubscribe(
787  DtObjectClassInfo& classDesc,
788  const DtAttributeHandleSet& attrs,
789  DtFederateHandle fedHandle,
790  bool isReplacement);
791 
793  virtual void remotePassiveSubscribe(
794  DtObjectClassInfo& classDesc,
795  const DtAttributeHandleSet& attrs,
796  DtFederateHandle fedHandle,
797  bool isReplacement);
798 
801  virtual void remoteUnsubscribe(
802  DtObjectClassHandle classHandle,
803  const DtAttributeHandleSet& attrs,
804  DtFederateHandle fedHandle);
805 
808  virtual void setDiscoveredClass(DtRtiObject& object,
809  DtFederateHandle federateHandle, DtObjectClassHandle classHandle);
810 
812  virtual void processUpdate(const DtUpdateMsg& msg);
814  virtual void processReserveName(DtReserveNameMsg const& msg);
815  virtual void processNameReserved(DtNameReservedMsg const& msg);
816 #if !defined(DtIFSPEC13) && !defined (DtIFSPEC1516)
817  virtual void processMultiNameReserved( DtMultiNameReservedMsg const& msg );
818  virtual void processQueryTransport(const DtQueryTransportMsg& msg);
819  virtual void processQueryInterTransport(const DtQueryInterTransportMsg& msg);
820 #endif
821  virtual void processRegister(const DtRegObjMsg& msg);
822  virtual void processMultiRegister(const DtMultiRegObjMsg& msg);
823  virtual void processDiscover(const DtDiscObjMsg& msg);
824  virtual void processRequestDiscover(const DtReqDiscObjMsg& msg);
825  virtual void processDelete(const DtDeleteRoMsg& msg);
826 #ifdef DtTIME
827  virtual void processDeleteTso(const DtDeleteTsoMsg& msg);
828 #endif
829  virtual void processLocDelete(const DtLocDelMsg& msg);
830  virtual void processPub(const DtPubObjMsg& msg);
831  virtual void processUnpub(const DtUnpubObjMsg& msg);
832  virtual void processSub(const DtSubObjMsg& msg);
833  virtual void processUnsub(const DtUnsubObjMsg& msg);
834  virtual void processRequest(const DtRequestMsg& msg);
835  virtual void processOwnership(const DtOwnershipMsg& msg);
837 
839  virtual void processAcquire(
840  DtObjectInstanceHandle objHand, const DtAttributeHandleSet& attrs,
841  DtFederateHandle fed, bool onlyIfAvail,
842  DtRtiApiTagConstRef tag);
843 
845  virtual void processCancelAcquire(
846  DtObjectInstanceHandle objHand,
847  const DtAttributeHandleSet& attrs,
848  DtFederateHandle fed);
849 
851  virtual void processConfirmCancelAcquire(
852  DtObjectInstanceHandle objHand,
853  const DtAttributeHandleSet& attrs);
854 
856  virtual void processDivest(DtObjectInstanceHandle objHand,
857  const DtAttributeHandleSet& attrs, DtFederateHandle fed,
858  bool negotiated,
860 
863  virtual void notifyDivestedAttributes(DtObjectClassHandle objectClass,
864  DtAttributeHandleSet const& attrs);
865 
867  virtual void processQueryOwner(DtObjectInstanceHandle objHand,
868  DtAttributeHandleSet const& attrs, DtFederateHandle requestor);
869 
871  virtual void processNotifyAcquire(
872  DtObjectInstanceHandle objHand,
873  const DtAttributeHandleSet& attrs,
875  bool forceAcquire=false);
876 
878  virtual void processNotifyAcquireForDirectedMessaging(
879  DtFederateHandle fedHandle,
880  DtObjectInstanceHandle objHand,
881  const DtAttributeHandleSet& attrs);
882 
884  virtual void processGiveToLrc(DtObjectInstanceHandle objHand,
885  const DtAttributeHandleSet& attrs,
886  const char* objectName,
887  DtHandle hand);
888 
890  virtual void processOwnershipUnavailable(DtObjectInstanceHandle objectHandle, const DtAttributeHandleSet& attributes,
891  DtRtiApiTagConstRef userTag);
892 
894  virtual void resetOwner(DtFederateHandle fedHandle, DtObjectInstanceHandle objHandle);
895 
897  virtual void sendPublishMsg(DtObjectClassHandle handle, const DtAttributeHandleSet& theSet);
899  virtual void sendUnpublishMsg(DtObjectInstanceHandle handle, const DtAttributeHandleSet& theSet);
900  virtual void sendUnsubscribeMsg(DtObjectClassHandle handle, const DtAttributeHandleSet& theSet);
901  virtual void sendSubscribeMsg(DtObjectClassHandle theObj, bool isPassive, bool replacement,
902  const DtAttributeHandleSet& theSet, DtFederateHandle fedHandle);
903  virtual void sendSubscribeMsg(DtObjectClassHandle theObj, bool isPassive, bool replacement,
904  const DtAttributeHandleSet& theSet, DtBitMask* sendMask = 0);
905  virtual void sendRegisterMsg(DtRtiObject* object, DtBitMask* sendMask = 0);
906  virtual void sendRegisterMsg( DtRtiMsg* msg, DtRtiObject* object, DtBitMask* sendMask = 0);
907  virtual void sendLocalDeleteMsg(DtObjectInstanceHandle handle);
908  virtual void sendDiscoverMsg(DtObjectInstanceHandle objHandle, DtObjectClassHandle classHandle, DtFederateHandle owner);
909  virtual void sendDiscoverMsg(DtObjectInstanceHandle objHandle, DtObjectClassHandle classHandle, DtFederateHandle owner,
910  DtBitMask* fedHandles);
911  virtual void sendRequestDiscoverMsg(DtObjectInstanceHandle objHandle, DtObjectClassHandle classHandle);
912  virtual void sendRemoveDiscoverMsg(DtObjectInstanceHandle objHandle, DtObjectClassHandle classHandle,
913  DtFederateHandle fedHandle);
914  virtual void sendReserveNameMsg(std::string const & theObjectInstanceName);
915  virtual void sendBestEffortUpdateMsg(DtRtiObject* obj, const DtAhvpBase& theAttrs, DtOrderHandle orderType,
916  DtRtiApiTime const * theTime, DtRtiApiTagConstRef tag, unsigned long serialNumber, const MAKRti::DtInetAddr& destAddr,
917  unsigned int offset=0);
918  virtual void sendReliableUpdateMsg(DtRtiObject* obj, const DtAhvpBase& theAttrs, DtOrderHandle orderType,
919  DtRtiApiTime const * theTime, DtRtiApiTagConstRef tag, unsigned long serialNumber);
920  virtual unsigned long sendDeleteMsg(DtObjectInstanceHandle handle, DtOrderHandle orderType, DtRtiApiTime const * theTime,
921  DtRtiApiTagConstRef tag);
922  virtual void sendOwnershipMsg(DtOwnerMsgKind kind, DtObjectInstanceHandle objHand, const DtAttributeHandleSet& attrs,
924  virtual void sendOwnershipMsg(DtOwnerMsgKind kind, DtObjectInstanceHandle objHand, const DtAttributeHandle attr,
926 
927 #if !defined(DtIFSPEC13) && !defined(DtIFSPEC1516)
928  virtual void sendAttrQueryFoundMsg(DtFederateHandle targetFed, DtObjectInstanceHandle objHand, const DtAttributeHandle attr,
929  DtTransportType transType);
930  virtual void sendInterQueryFoundMsg(DtFederateHandle targetFed, DtObjectInstanceHandle objHand,
931  const DtInteractionClassHandle handle, DtTransportType transType );
932  void sendInterQueryMsg(DtFederateHandle targetFed, DtInteractionClassHandle handle, DtFederateHandle sendingFed );
933 #endif
934 
935 
937  virtual void sendPendingStartUpdates();
938 
940  virtual void sendPendingStopUpdates();
941 
943  virtual void sendPendingStartReg();
944 
946  virtual void sendPendingStopReg();
947 
949  virtual void sendPendingRegister();
950 
952  virtual void sendPendingSubscription();
953 
955  virtual void sendPendingRemovals();
956 
958  virtual void sendPendingRequestAttributes();
959 
961  virtual void sendPendingDiscoveries();
962 
964  virtual void invokePendingDivestNotification();
965 
967  virtual void invokePendingConfirmTransportChange();
968 
970  virtual void purgeDeletedObjects();
971 
972 #if !defined(DtIFSPEC13)
973  virtual void resetNameReservation(std::string objectName);
975 
977  virtual void resetNameUsed(std::string objectName);
978 #endif
979 
982  virtual void throwIfAcquisitionPending(
983  DtObjectClassHandle classHand,
984  const DtAttributeHandleSet& attrs);
985 
986 #if !defined(DtIFSPEC13)
987  virtual void confirmAllInstancesPendingDivestitures(
990  DtObjectClassHandle classHand,
991  const DtAttributeHandleSet& attrs );
992 
995  virtual void confirmPendingDivestitures(
996  DtObjectInstanceHandle objHand,
997  const DtAttributeHandleSet& attrs,
998  DtAttributeHandleSet& divestedSet,
1000 
1003  virtual void cancelPendingConfirms(
1004  DtRtiObject* obj,
1005  const DtAttributeHandleSet& attrs );
1006 #endif
1007 
1010  virtual void divestAllInstances(
1011  DtObjectClassHandle classHand,
1012  const DtAttributeHandleSet& attrs);
1013 
1016  virtual void divestAllInstances();
1017 
1020  virtual void releaseAllAttributes(DtRtiObject* object);
1021 
1024  virtual void releaseOwnership(
1025  DtRtiObject* obj,
1026  const DtAttributeHandleSet& attrs);
1027 
1029  virtual void sendUpdateMessage( DtUpdateMsg* update,
1030  DtObjectClassInfo* classDesc, DtUpdateType updateType,
1031  MAKRti::DtTransportType trans, unsigned int numberAttrs,
1032  MAKRti::DtInetAddr destAddr = DtInetAddr::inaddrAny(),
1033  unsigned int offset = 0);
1034 
1035 #ifdef DtMOM
1036 
1037  virtual void incrementUpdateTally(DtHandle objectClass);
1039  virtual void incrementSentAttributesTally(DtHandle objectClass,
1040  MAKRti::DtTransportType transport, unsigned int numberAttrs);
1041  virtual void incrementReceivedTally(DtHandle objectClass,
1042  MAKRti::DtTransportType transport, unsigned int numberAttrs);
1044 #endif
1045 
1047  virtual void deleteAllOwnedObjects();
1048 
1050  virtual void deleteObj(DtRtiObject* obj, bool isLocalDelete=false);
1051 
1054  virtual void retainTsoDeletedObj(DtRtiObject* obj, DtRtiApiTime const & time);
1055 
1059  virtual void retainTsoRemovedObj(DtRtiObject* obj, DtRtiApiTime const & time);
1060 
1064  virtual bool removedObjectIsRetained(DtObjectInstanceHandle objectHandle);
1065 
1067  virtual void removeObjectAssociations(DtRtiObject& object);
1068 
1072  virtual void collectRemoteSubscriptions(DtRtiObject& object);
1073 
1074  // NOTE:
1075  // The following 2 helper methods (nextOffsetId, and federateHandleSlotFromObjectHandle)
1076  // are specifically excluded from the API.
1077  // Users should instead over-ride:
1078  // DtObjectInstanceHandle uniqueHandle()
1079  // or
1080  // bool objectWasCreatedByFederate( DtRtiObject const& obj, DtFederateHandle const& fedHandle )
1082  virtual unsigned long federateHandleSlotFromObjectHandle(DtObjectInstanceHandle handle) const;
1084 
1087  virtual unsigned long nextOffsetId();
1089 
1092  virtual DtObjectInstanceHandle findReusableHandle();
1093 
1095  virtual DtRtiObject* registerObj(
1096  DtObjectClassHandle theClass,
1097  DtObjectInstanceHandle objHandle,
1098  const char* name);
1099 
1104  virtual DtRtiObject* processNewObj(DtObjectInstanceHandle objHand,
1105  DtObjectClassInfo* actualClass,
1106  DtObjectClassInfo* subscribedClass,
1107  const char* name,
1108  const DtAhvps& inSet,
1109  DtHandle regSetHandle,
1110  DtFederateHandle sourceFederate);
1111 
1115  virtual DtRtiObject* discoverObject(DtObjectInstanceHandle objHandle,
1116  const char* objName,
1117  DtObjectClassInfo* actualClass,
1118  DtObjectClassInfo* discoveredClass,
1119  const DtAttributeHandleSet& attrSet,
1120  DtFederateHandle federateHandle,
1121  bool federateOwnsPrivilegeToDelete);
1122 
1123 #ifdef DDM
1124 
1128 
1130 #if defined(DtIFSPEC13)
1131  virtual void calculateRegionSet(unsigned long channel, const DtAhvps& reflectSet) {}
1132 #else
1133  virtual void calculateRegionSet(unsigned long channel, RTI_API::RegionHandleSet & regionHandles) {}
1134 #endif
1135 
1140  virtual void checkForRegionalSubscribe(DtObjectClassInfo& info, DtFederateHandle fedHandle = 0) {}
1141 
1145  virtual void acquireAssociateRegionForUpdates(
1146  DtObjectInstanceHandle theObject,
1147  const DtAttributeHandleSet& theAttributes) {}
1148 
1150  virtual void unassociateRegionForDivested(
1151  DtRtiObject& obj, const DtAttributeHandleSet& set, bool atomic){}
1152 
1154 
1155 #endif
1156 
1158 
1160  virtual void removeObjectInstance(DtObjectInstanceHandle objectHandle, DtRtiApiTagConstRef tag, DtFederateHandle federateHandle);
1161  virtual void removeObjectInstance(DtObjectInstanceHandle objectHandle, DtRtiApiTagConstRef tag, DtOrderHandle orderType,
1162  DtRtiApiTime const& time, DtFederateHandle federateHandle, unsigned long serialNumber);
1164 
1166 #if defined(DtIFSPEC13)
1167  virtual void invokeReflect(DtFederateHandle federateHandle,
1168  DtObjectInstanceHandle objectHandle,
1169  DtAhvps const& reflectedValues,
1170  DtTransportHandle transportType,
1171  DtOrderHandle sentOrder,
1172  char const * tag = 0,
1173  DtRtiApiTime const * time = 0,
1174  unsigned long serialNumber = 0);
1175 #else
1176  virtual void invokeReflect(DtFederateHandle federateHandle,
1177  RTI_API::ObjectInstanceHandle objectHandle,
1178  RTI_API::AttributeHandleValueMap const& reflectedValues,
1179  DtRtiApiTransportationType transportType,
1180  RTI_API::OrderType sentOrder,
1181  RTI_API::OrderType receivedOrder,
1182  DtRtiApiTagConstRef theTag,
1183  DtRtiApiTime const * time = 0,
1184  unsigned long serialNumber = 0,
1185  RTI_API::RegionHandleSet const* regionHandles = 0);
1186 #endif
1187 
1190  virtual bool acceptObjectChannel(unsigned long channel);
1191 
1194  virtual bool acceptRequestChannel(unsigned long channel);
1195 
1197  virtual void addClassMulticast(DtObjectClassInfo* classDesc, float rate=-1.0);
1203  virtual void removeClassMulticast(DtObjectClassInfo* classDesc, float rate=-1.0);
1205 
1207 
1208  virtual void invokeTurnUpdatesOn(DtObjectInstanceHandle objectHandle, const DtAttributeHandleSet& changedSet);
1209  virtual void invokeTurnUpdatesOff(DtObjectInstanceHandle objectHandle, const DtAttributeHandleSet& changedSet);
1210  // User tag is a pointer here because sometimes it's not provided in call and a default empty tag is used
1211  virtual void invokeAcquisitionNotification(DtObjectInstanceHandle objectHandle,
1212  const DtAttributeHandleSet& acquiredAttributes, DtRtiApiTagConstPtr userTag = nullptr);
1213  virtual void invokeRequestAttributeOwnershipAssumption(DtObjectInstanceHandle objectHandle,
1214  const DtAttributeHandleSet& acquiredAttributes, DtRtiApiTagConstRef userTag);
1215  virtual void invokeAttributeOwnershipUnavailable(DtObjectInstanceHandle objectHandle,
1216  const DtAttributeHandleSet& unavailableAttributes, DtRtiApiTagConstRef userTag = DtRtiMsg::theDefaultTag);
1217 #if defined(DtIFSPEC1516_2025)
1218  virtual void invokeAttributeIsNotOwned(DtObjectInstanceHandle objectHandle, const DtAttributeHandleSet& attributes);
1219  virtual void invokeAttributeIsOwnedByRTI(DtObjectInstanceHandle objectHandle, const DtAttributeHandleSet& attributes);
1220  virtual void invokeInformAttributeOwnership(DtObjectInstanceHandle objectHandle, const DtAttributeHandleSet& attributes,
1221  DtFederateHandle federate);
1222 #else
1223  virtual void invokeAttributeIsNotOwned(DtObjectInstanceHandle objectHandle, DtAttributeHandle attribute);
1224  virtual void invokeAttributeIsOwnedByRTI(DtObjectInstanceHandle objectHandle, DtAttributeHandle attribute);
1225  virtual void invokeInformAttributeOwnership(DtObjectInstanceHandle objectHandle, DtAttributeHandle attribute,
1226  DtFederateHandle federate);
1227 #endif
1228 
1230 
1232  virtual bool saveObjectList( DtRtiSaveFile& file );
1233 
1235  virtual bool restoreObjectList(DtRtiSaveFile& file);
1236 
1238  virtual void destroyObjectLists();
1239 
1241  virtual unsigned long savePacketLength();
1242 
1244  virtual void removeRequestedOwnershipAssumption(DtObjectInstanceHandle objHdl,
1245  const DtAttributeHandleSet& attrs);
1246 
1247 protected:
1248 
1250  static void processUpdate(const DtUpdateMsg& msg, void* usr);
1252  static void processReserveName(DtReserveNameMsg const& msg, void* usr);
1253  static void processNameReserved(DtNameReservedMsg const& msg, void* usr);
1254 #if !defined(DtIFSPEC13) && !defined(DtIFSPEC1516)
1255  static void processMultiNameReserved(DtMultiNameReservedMsg const& msg, void* usr);
1256  static void processQueryTransport(const DtQueryTransportMsg& msg, void* usr);
1257  static void processQueryInterTransport(const DtQueryInterTransportMsg& msg, void* usr);
1258 #endif
1259  static void processRegister(const DtRegObjMsg& msg, void* usr);
1260  static void processMultiRegister(const DtMultiRegObjMsg& msg, void* usr);
1261  static void processDiscover(const DtDiscObjMsg& msg, void* usr);
1262  static void processRequestDiscover(const DtReqDiscObjMsg& msg, void* usr);
1263  static void processDelete(const DtDeleteRoMsg& msg, void* usr);
1264 #ifdef DtTIME
1265  static void processDeleteTso(const DtDeleteTsoMsg& msg, void* usr);
1266 #endif
1267  static void processLocDelete(const DtLocDelMsg& msg, void* usr);
1268  static void processPub(const DtPubObjMsg& msg, void* usr);
1269  static void processUnpub(const DtUnpubObjMsg& msg, void* usr);
1270  static void processSub(const DtSubObjMsg& msg, void* usr);
1271  static void processUnsub(const DtUnsubObjMsg& msg, void* usr);
1272  static void processRequest(const DtRequestMsg& msg, void* usr);
1273  static void processOwnership(const DtOwnershipMsg& msg, void* usr);
1275 
1276 protected:
1277 
1280 
1282  std::set<std::string> myReservedNames;
1284  std::set<std::string> myUsedNames;
1286  std::set<std::string> myFailedNames;
1287 
1289  MAKRti::DtString myHlaNamePrefix;
1290 
1293 
1295  std::map<MAKRti::DtString, DtRtiObject*> myObjectsByName;
1296 
1299 
1301  std::map<MAKRti::DtString, DtRtiObject*> myKnownObjsByName;
1302 
1305 
1307  std::map<MAKRti::DtString, DtRtiObject*> myOwnedObjsByName;
1308 
1311 
1313  std::map<MAKRti::DtString, DtRtiObject*> myLrcManagedObjsByName;
1314 
1317 
1320  std::map<DtObjectInstanceHandle, MAKRti::DtTime> myDeletedObjects;
1321 
1322 #ifdef DtTIME
1323 
1324  DtRtiMsgQueue* myTsoRemoveQueue;
1326  DtObjectHandleTimeMap myTsoDeletedObjects;
1327  DtObjectPtrTimeMap myTsoDeletedObjectCache;
1328  DtObjectPtrTimeMap myTsoRemovedObjectCache;
1330 #endif
1331 
1333  DtObjectClassHandleStdSet myRetransmitSubClass;
1344  MAKRti::DtList myPendingRemovals;
1349 #if !defined(DtIFSPEC13) && !defined(DtIFSPEC1516)
1351 #endif
1352 
1354 
1357 
1359  bool myClassRelevanceSwitch;
1364 
1367 
1370 
1373 
1375  MAKRti::DtClock myClock;
1376 
1378  typedef std::map<DtObjectClassHandle, DtObjectInstanceHandleStdSet> DtClassToPendingObjDiscMap;
1379  typedef std::map<DtFederateHandle, DtClassToPendingObjDiscMap> DtFederateToPendingObjDiscMap;
1384 
1387 
1390 
1393 
1394  std::set<DtRtiMsgKind> myConstrainedUpdateKinds;
1395  std::set<DtRtiMsgKind> myConstrainedDeleteKinds;
1396 
1397  // Number bits to shift federate handle slot when constructing object instance handle
1399 
1400 
1401 protected:
1402 
1404  static DtObjectMgrCreator theCreator;
1405 
1407  static DtObjectMgrCreator theInternalCreator;
1408 };
std::set< std::string > myReservedNames
These names are reserved by this federate but have not been used.
Definition: objMgr.h:1282
Definition: aHandValBase.h:21
std::map< MAKRti::DtString, DtRtiObject * > myKnownObjsByName
List of known objects by name.
Definition: objMgr.h:1301
bool myForceBestEffort
Send everything best effort.
Definition: objMgr.h:1392
DtFederateMgr * federateMgr() const
Definition: objMgr.h:131
bool myIsJoined
Manager has performed join processing.
Definition: objMgr.h:1366
OrderType
Definition: datatypes.pb.h:472
bool myRestoreInProgress
Status of restore.
Definition: objMgr.h:1369
static const DtRtiApiVariableLengthData theDefaultTag
Definition: rtiMsg.h:246
DtFederateToPendingObjDiscMap myPendingDiscoveries
Definition: objMgr.h:1380
Definition: reqDiscObjMsg.h:23
Sorted list for queueing messages in time stamped order.
Definition: msgQueue.h:71
DtPendingRequestAttrMap myRequestedAttributeAssumptions
Post processing lists.
Definition: objMgr.h:1347
std::list< std::pair< DtObjectClassHandle, DtAttributeHandleSet > > DtObjClassAttrSetPairList
Definition: objMgr.h:95
DtObjectClassHandleStdSet myPendingStopRegList
Post processing lists.
Definition: objMgr.h:1340
std::set< DtRtiMsgKind > myConstrainedUpdateKinds
Definition: objMgr.h:1394
This class manages the RTI&#39;s start-up configuration using both MTL variables and functions.
Definition: RIDparams.h:87
MAKRti::DtClock myClock
Clock for timing.
Definition: objMgr.h:1375
RTI_API::TransportationTypeHandle DtRtiApiTransportationType
Definition: rtiApiTypes.h:114
bool myReuseIds
Unique object IDs have been exhausted, attempt to reuse IDs.
Definition: objMgr.h:1372
DtObjectClassHandleStdSet myPendingRegisterList
Post processing lists.
Definition: objMgr.h:1341
Definition: nameReservedMsg.h:25
bool myAttributeRelevanceSwitch
Advisory switches.
Definition: objMgr.h:1361
DtRtiApiVariableLengthData const * DtRtiApiTagConstPtr
Definition: rtiApiTypes.h:99
Definition: ownerMsg.h:45
This file contains the declaration of the Connection Manager.
std::set< RegionHandle > RegionHandleSet
Definition: Typedefs.h:31
DtObjectInstanceHandleStdSet myLocalDeletedObjects
Post processing lists.
Definition: objMgr.h:1336
DtRequestType
Definition: reqObjMsg.h:24
Definition: objMgr.h:69
DtRtiObjectMap myKnownObjs
List of known objects by handle.
Definition: objMgr.h:1298
DtPendingRequestAttrMap myPendingDivestNotifications
Post processing lists.
Definition: objMgr.h:1346
Definition: objMgr.h:70
Definition: discObjMsg.h:23
Definition: resignMsg.h:36
RTI_API::LogicalTime DtRtiApiTime
Typedefs for RTI API types that frequently require conditional precompile directives.
Definition: rtiApiTypes.h:91
DtHandle DtObjectClassHandle
Definition: internalTypes.h:48
DtObjInstAttrSetPairList myPendingStartUpdatesList
Post processing lists.
Definition: objMgr.h:1337
std::map< DtFederateHandle, DtClassToPendingObjDiscMap > DtFederateToPendingObjDiscMap
Definition: objMgr.h:1379
DtFederateMgr * myFederateMgr
Access to the federate manager.
Definition: objMgr.h:1279
DtUpdateType
Update type for object.
Definition: rtiObject.h:94
DtHandle DtInteractionClassHandle
Definition: internalTypes.h:52
bool myAttributeScopeSwitch
Advisory switches.
Definition: objMgr.h:1362
DtRtiApiVariableLengthData const & DtRtiApiTagConstRef
Definition: rtiApiTypes.h:98
virtual void removeObjectInstance(ObjectHandle theObject, const FedTime &theTime, const char *theTag, EventRetractionHandle theHandle)=0
6.9
static unsigned long theDefaultRegionSetHandle
Definition: rtiMsg.h:244
Definition: reserveNameMsg.h:25
static DtObjectMgrCreator theInternalCreator
The internal creator.
Definition: objMgr.h:1407
std::list< std::pair< DtObjectInstanceHandle, DtAttributeHandleSet > > DtObjInstAttrSetPairList
Definition: objMgr.h:96
DtObjectClassMaskMap myPendingNonDiscoveriesMaskList
Definition: objMgr.h:1383
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
DtObjectClassMaskMap myPendingDiscoveriesMaskList
Definition: objMgr.h:1381
Defines the internal representation of attribute/parameter handle sets.
Definition: attrHandSet.h:30
std::map< DtObjectClassHandle, DtObjectInstanceHandleStdSet > DtClassToPendingObjDiscMap
Pending discoveries and non-discoveries.
Definition: objMgr.h:1378
DtFederateMgr * federateMgr()
Access to the federate manager.
Definition: objMgr.h:130
Instances of DtConnectionMgr manage the communication objects that the RTI will use to either communi...
Definition: connectMgr.h:67
Definition: multiNameReservedMsg.h:25
DtRtiMsg is the base class for messages between RTI components.
Definition: rtiMsg.h:34
DtHandle DtFederateHandle
Definition: internalTypes.h:46
DtHandle DtObjectInstanceHandle
Definition: internalTypes.h:50
The RTI object maintains the internal RTI object state.
Definition: rtiObject.h:123
std::map< MAKRti::DtString, DtRtiObject * > myObjectsByName
List of all objects by name.
Definition: objMgr.h:1295
DtHandle DtTransportHandle
Definition: internalTypes.h:59
DtObjectClassHandleStdSet myPendingStartRegList
Post processing lists.
Definition: objMgr.h:1339
DtPendingConfirmTransport myPendingConfirmTransportChange
Post processing lists.
Definition: objMgr.h:1350
Definition: releaseMultiNameMsg.h:25
std::map< DtObjectInstanceHandle, DtBitMask * > DtObjectInstanceMaskMap
Definition: objMgr.h:94
Definition: queryTransportMsg.h:30
Definition: fomMgr.h:49
DtDivestCondition
The type of divestiture.
Definition: objMgr.h:67
const int myShiftForFederateHandle
Definition: objMgr.h:1398
DtPendingRequestAttrMap myPendingOwnershipRequest
Post processing lists.
Definition: objMgr.h:1348
Definition: subObjMsg.h:23
std::map< DtObjectInstanceHandle, MAKRti::DtTime > myDeletedObjects
Set of objects that have been recently deleted that will not be discovered via update.
Definition: objMgr.h:1320
std::map< AttributeHandle, VariableLengthData > AttributeHandleValueMap
Definition: Typedefs.h:36
MAKRti::DtString myHlaNamePrefix
The HLA object instance name prefix.
Definition: objMgr.h:1289
DtHandle myFreeObjHandle
The next free object handle.
Definition: objMgr.h:1356
std::set< std::string > myFailedNames
Reservation of these names failed (i.e., reserved by another federate).
Definition: objMgr.h:1286
DtRtiObjectMap myObjects
List of all objects by handle.
Definition: objMgr.h:1292
static DtObjectMgrCreator theCreator
The plugin creator.
Definition: objMgr.h:1404
DtObjectInstanceHandleStdSet myPendingInstRegisterList
Post processing lists.
Definition: objMgr.h:1343
Definition: reserveMultiNameMsg.h:25
The object manager class processes the object management services.
Definition: objMgr.h:81
std::map< MAKRti::DtString, DtRtiObject * > myLrcManagedObjsByName
List of LRC owned objects by name.
Definition: objMgr.h:1313
Maintain mappings between handles and network addresses The mappings are assumed to be propogated thr...
Definition: addrMap.h:26
ResignAction
Definition: datatypes.pb.h:305
Definition: regObjMsg.h:25
std::set< DtObjectClassHandle > DtObjectClassHandleStdSet
Definition: internalTypes.h:49
std::vector< AttributeHandleSetRegionHandleSetPair > AttributeHandleSetRegionHandleSetPairVector
Definition: Typedefs.h:49
DtConnectionMgr * connectMgr()
Returns pointer to network connection mgr.
Definition: objMgr.h:134
Definition: internalTypes.h:84
std::list< std::pair< DtObjectInstanceHandle, std::pair< MAKRti::DtTransportType, DtAttributeHandleSet > > > DtPendingConfirmTransport
Definition: objMgr.h:97
MAKRti::DtList myPendingRemovals
Post processing lists.
Definition: objMgr.h:1344
unsigned long DtHandle
The internal types.
Definition: internalTypes.h:41
DtHandle DtAttributeHandle
Definition: internalTypes.h:54
DtObjClassAttrSetPairList myPendingStopUpdatesList
Post processing lists.
Definition: objMgr.h:1338
std::map< DtObjectInstanceHandle, DtAttributeHandleSet > DtPendingRequestAttrMap
Map of requested attributes.
Definition: objMgr.h:90
The declaration of the RTI object class.
DtTime myNextPendingDiscTime
Next time we should send pending discovery messages.
Definition: objMgr.h:1386
DtAddrMap myAddrMap
Map of routing addresses by region set handle.
Definition: objMgr.h:1316
Definition: aHandValSet.h:33
std::set< DtInteractionClassHandle > DtInteractionClassHandleStdSet
Definition: internalTypes.h:53
DtRtiObjectMap myLrcManagedObjs
List of LRC owned objects by handle.
Definition: objMgr.h:1310
DtOwnerMsgKind
Definition: ownerMsg.h:24
DtObjectClassMaskMap myPendingRegisterMaskList
Post processing lists.
Definition: objMgr.h:1342
DtBitMask represents a variable length bit-field which may be used to represent an array of boolean d...
Definition: bitMask.h:24
#define DT_DLL_LRC
Definition: rtiMsConfig.h:155
Definition: unpubObjMsg.h:23
DtPendingRequestAttrMap myPendingRequestAttrs
Post processing lists.
Definition: objMgr.h:1345
Definition: saveFile.h:21
DtObjectInstanceHandleStdSet myIgnoreObjects
Set of object handles whose next updates should be ignored.
Definition: objMgr.h:1389
DtRIDParameters * params() const
Return pointer to RID parameters.
Definition: objMgr.h:140
std::set< DtRtiMsgKind > myConstrainedDeleteKinds
Definition: objMgr.h:1395
Definition: updateMsg.h:28
Definition: multiRegObjMsg.h:21
Definition: unsubObjMsg.h:24
Definition: objClassInfo.h:36
Definition: locDelMsg.h:28
DtObjectClassMaskMap myRetransmitSubClassMask
Post processing lists.
Definition: objMgr.h:1335
Message for sending receive order delete.
Definition: deleteRoMsg.h:23
const long DtDefaultRegionSetHandle
Definition: RIDparams.h:31
std::set< std::string > myUsedNames
These names have been used by this federate to register an object instance.
Definition: objMgr.h:1284
DtConnectionMgr * connectMgr() const
Definition: objMgr.h:135
Definition: pubObjMsg.h:24
std::map< MAKRti::DtString, DtRtiObject * > myOwnedObjsByName
List of owned objects by name.
Definition: objMgr.h:1307
std::map< DtObjectClassHandle, DtBitMask * > DtObjectClassMaskMap
Definition: objMgr.h:93
Definition: reqObjMsg.h:31
std::set< DtObjectInstanceHandle > DtObjectInstanceHandleStdSet
Definition: internalTypes.h:51
std::map< DtHandle, DtRtiObject * > DtRtiObjectMap
Definition: objMgr.h:74
This file contains the declaration of the base federation manager.
DtFomClassMgr * fom() const
Return fom pointer.
Definition: objMgr.h:146
DtHandle DtOrderHandle
Definition: internalTypes.h:58
DtRtiObjectMap myOwnedObjs
List of owned objects by handle.
Definition: objMgr.h:1304
DtFederateToPendingObjDiscMap myPendingNonDiscoveries
Definition: objMgr.h:1382
Definition: queryInterTransportMsg.h:24
Definition: objMgr.h:71

Document ID: Generated on Sun Jul 20 16:15:30 EDT 2025 from SVN revision 277985
Copyright © 2005-2025 MAK Technologies Inc. All Rights Reserved (www.mak.com)