MAK RTIspy API Documentation for HLA 1.3
 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 
197  virtual void checkDirectedInteractions(DtObjectClassInfo const* classDesc, DtInteractionClassHandleStdSet const& interactionClassHandles);
198 
200  virtual void publishDirectedInteractions(DtObjectClassHandle objectClassHandle,
201  DtInteractionClassHandleStdSet const& interactionClassHandles);
202 
204  virtual void unpublishDirectedInteractions(DtObjectClassHandle objectClass);
205 
207  virtual void unpublishDirectedInteractions(DtObjectClassHandle objectClass,
208  DtInteractionClassHandleStdSet const& interactions);
209 
211  virtual void subscribe(
212  DtObjectClassHandle theClass,
213  const DtAttributeHandleSet& attributeList,
214  bool active
215 #if defined(DtIFSPEC13) || defined(DtIFSPEC1516)
216  );
217 #else
218  , MAKRti::DtString updateRateDesignator);
219 #endif
220 
222  virtual void unsubscribeClass(
223  DtObjectClassHandle theClass);
224 
226  virtual void unsubscribeAttributes(
227  DtObjectClassHandle theClass,
228  DtAttributeHandleSet const & attributeList);
229 
231  virtual void unsubscribeAttributes(
232  DtObjectClassInfo& classDesc,
233  DtAttributeHandleSet const & attributeList);
234 
236  virtual void subscribeDirectedInteractions(DtObjectClassHandle objectClassHandle,
237  DtInteractionClassHandleStdSet const& interactionClassHandles, bool universally);
238 
240  virtual void unsubscribeDirectedInteractions(DtObjectClassHandle objectClass);
241 
243  virtual void unsubscribeDirectedInteractions(DtObjectClassHandle objectClass,
244  DtInteractionClassHandleStdSet const& interactions);
245 
246 #if !defined(DtIFSPEC13) && !defined(DtIFSPEC1516)
247  virtual void reserveMultipleObjectInstanceName(
249  std::set<std::wstring> const & theObjectInstanceNames);
250 #endif
251 
252 
254  virtual void reserveObjectInstanceName(
255  std::string const & theObjectInstanceName);
256 
258  virtual DtObjectInstanceHandle registerObj(
259  DtObjectClassHandle theClass,
260 #if defined(DtIFSPEC13)
261  const char* name);
262 #else
263  std::string const & theObjectInstanceName);
264 #endif
265 
266 #if !defined(DtIFSPEC13) && !defined(DtIFSPEC1516)
267  virtual void releaseObjectInstanceName(
269  std::string const & theObjectInstanceName)
270  throw (RTI_API::ObjectInstanceNameNotReserved);
271  virtual void releaseMultipleObjectInstanceNames(
272  std::set< std::wstring > const & theObjectInstanceNames )
273  throw (RTI_API::ObjectInstanceNameNotReserved);
274  virtual void queryAttributeTransportationType(
275  DtObjectInstanceHandle theObject,
276  DtAttributeHandle theAttribute);
277  virtual void queryInteractionTransportationType(
278  DtFederateHandle theFederate,
279  DtInteractionClassHandle theInteraction);
280  virtual void releaseDenied( DtObjectInstanceHandle objectHandle,
281  const DtAttributeHandleSet& attrs,
283  virtual double getUpdateRateForAttribute( DtObjectInstanceHandle objHandle,
284  DtAttributeHandle attrHandle );
285 #endif
286 
288  virtual DtObjectInstanceHandle registerObj(
289  DtObjectClassHandle theClass);
290 
291 #if !defined(DtIFSPEC13) && !defined(DtIFSPEC1516)
292  bool holdsPrivilegeToDelete(const DtObjectInstanceHandle & id);
293 #endif
294 
297  virtual unsigned long deleteObj(
298  DtObjectInstanceHandle objectID,
299  DtRtiApiTime const * theTime,
300  DtRtiApiTagConstRef theTag);
301 
303  virtual void localDeleteObj(DtObjectInstanceHandle obj);
304 
306  virtual void requestObjectUpdate(
307  DtObjectInstanceHandle theObject,
308  const DtAttributeHandleSet& theAttributes,
310 
312  virtual void requestClassUpdate(
313  DtObjectClassHandle theClass,
314  const DtAttributeHandleSet& theAttributes,
316  DtHandle regionSetHandle = DtDefaultRegionSetHandle);
317 
321  virtual unsigned long sendUpdate(
322  DtObjectInstanceHandle theObject,
323  const DtAhvps& theAttrs,
324  DtRtiApiTime const * theTime,
325  DtRtiApiTagConstRef tag);
326 
329  virtual unsigned long sendUpdate(
330  DtRtiObject* theObject,
331  const DtAhvps& theAttrs,
332  DtRtiApiTime const * theTime,
333  DtRtiApiTagConstRef tag);
334 
336  virtual void acquireAttrs(
337  DtObjectInstanceHandle objHand,
338  const DtAttributeHandleSet& desiredAttributes,
339  bool onlyIfAvail,
341 
343  virtual void cancelAcquire(
344  DtObjectInstanceHandle objHand,
345  const DtAttributeHandleSet& attrs);
346 
348  virtual void divestOwnership(
349  DtObjectInstanceHandle objHand,
350  const DtAttributeHandleSet& attrs,
351  DtDivestCondition condition,
352 #if !defined(DtIFSPEC13)
353  DtAttributeHandleSet& divestedSet,
354 #endif
356 
357 #if !defined(DtIFSPEC13)
358  virtual void confirmDivestiture (
360  DtObjectInstanceHandle objHand,
361  const DtAttributeHandleSet& attrs,
362  DtRtiApiTagConstRef theUserSuppliedTag);
363 #endif
364 
366  virtual void cancelDivest(
367  DtObjectInstanceHandle objHand,
368  const DtAttributeHandleSet& attrs);
369 
371  virtual DtAttributeHandleSet* releaseResponse(
372  DtObjectInstanceHandle objHand,
373  const DtAttributeHandleSet& attrs);
374 
376  virtual void addAllObj(DtRtiObject* obj);
379  virtual void removeAllObj(DtObjectInstanceHandle obj);
380  virtual const DtRtiObjectMap& allObjects() const;
381  virtual DtRtiObject* allObj(DtObjectInstanceHandle id);
382  virtual DtRtiObject* allObj(const char* name);
384 
386  virtual void addKnownObj(DtRtiObject* obj);
389  virtual void removeKnownObj(DtObjectInstanceHandle obj);
390  virtual const DtRtiObjectMap& knownObjects() const;
391  virtual DtRtiObject* knownObj(DtObjectInstanceHandle id);
392  virtual const DtRtiObject* knownObj(DtObjectInstanceHandle id) const;
393  virtual DtRtiObject* knownObj(const char* name);
394  virtual const DtRtiObject* knownObj(const char* name) const;
396 
398  virtual void addOwnedObj(DtRtiObject* obj);
401  virtual void removeOwnedObj(DtObjectInstanceHandle obj);
402  virtual const DtRtiObjectMap& ownedObjects() const;
403  virtual DtRtiObject* ownedObj(DtObjectInstanceHandle id);
404  virtual DtRtiObject* ownedObj(const char* name);
406 
408  virtual void addLrcManagedObj(DtRtiObject* obj);
411  virtual void removeLrcManagedObj(DtObjectInstanceHandle obj);
412  virtual const DtRtiObjectMap& lrcManagedObjects() const;
413  virtual DtRtiObject* lrcManagedObj(DtObjectInstanceHandle id);
414  virtual DtRtiObject* lrcManagedObj(const char* name);
416 
418  virtual void removeFromAllLists(DtRtiObject* object);
419 
421 
422 #if !defined(DtIFSPEC1516_2025)
423  virtual void queryOwnership(DtObjectInstanceHandle obj, DtAttributeHandle attr);
424 #else
425  virtual void queryOwnership(DtObjectInstanceHandle obj, DtAttributeHandleSet const& attrSet);
426 #endif
427 
428 
430  virtual bool isAcquistionPending();
431 
436  virtual int evaluateSubscription(DtRtiMsg const& msg);
437 
439  virtual void autoProvideAttrValueUpdate();
440 
444  virtual void sendRegister(DtRtiObject* obj);
445 
449  virtual void resendRegister(DtRtiObject* obj, DtBitMask* sendMask = 0);
450 
455  virtual void resendMultiRegister( DtObjectClassHandle classHandle );
456 
459  virtual void sendRequestMsg(
460  DtRequestType type, unsigned long idOrClass,
461  const DtAttributeHandleSet& theSet,
463  bool anonymous,
465  DtFederateHandle fedHandle = 0);
466 
468  virtual void addPendingStartUpdates(
470  const DtAttributeHandleSet& attributeList);
471 
473  virtual void addPendingStopUpdates(
474  DtObjectClassHandle theClass,
475  const DtAttributeHandleSet& attributeList);
476 
478  virtual void addPendingStartReg(DtObjectClassHandle theClass);
479 
481  virtual void addPendingStopReg(DtObjectClassHandle theClass);
482 
484  virtual void addPendingRegister(DtObjectClassHandle theClass, DtFederateHandle fedHandle = 0);
485 
487  virtual void addPendingSubscription(DtObjectClassHandle theClass, DtFederateHandle fedHandle = 0);
488 
490  virtual void addPendingRegisterForObject(DtObjectInstanceHandle objHandle);
491 
493  virtual void addPendingRemoval(DtObjectInstanceHandle id);
494 
496  virtual void addPendingRequestAttrs(DtObjectInstanceHandle objectHandle,
497  DtAttributeHandleSet attributes);
498 
500  virtual void addPendingDivestNotification(DtObjectInstanceHandle objectHandle,
501  DtAttributeHandleSet attributes);
502 
504  virtual void addPendingDiscovery(DtObjectInstanceHandle objectHandle,
505  DtObjectClassHandle classHandle, DtFederateHandle federate,
506  bool isNonDiscovery);
507 
509  virtual void processResign(const DtResignMsg& msg);
510 
512  void testResign(RTI_API::ResignAction const & theAction);
515  void prepareToResign(RTI_API::ResignAction const & theAction);
517 
519  virtual void preTick();
520 
522  virtual void postTick();
523 
526 
527  virtual void setRestoreInProgress(bool isRestore);
529  virtual bool restoreInProgress() const;
531 
533  virtual void enableClassRelevanceSwitch();
536  virtual void disableClassRelevanceSwitch();
538 
540 
541  virtual void setClassRelevanceSwitch(bool enableSwitch);
542  virtual bool classRelevanceSwitch() const;
544 
546  virtual void enableAttributeRelevanceSwitch();
549  virtual void disableAttributeRelevanceSwitch();
551 
553 
554  virtual void setAttributeRelevanceSwitch(bool enableSwitch);
555  virtual bool attributeRelevanceSwitch() const;
557 
559  virtual void enableAttributeScopeSwitch();
562  virtual void disableAttributeScopeSwitch();
564 
566 
567  virtual void setAttributeScopeSwitch(bool enableSwitch);
568  virtual bool attributeScopeSwitch() const;
570 
572  virtual void turnUpdatesOn(DtRtiObject const& object, DtAttributeHandleSet const& oldOnSet);
573 
575  virtual void turnUpdatesOff(DtRtiObject const& object, DtAttributeHandleSet const& oldOnSet);
576 
579  virtual DtObjectInstanceHandle uniqueHandle();
580 
583  virtual void getUniqueName(DtObjectInstanceHandle handle,
584  MAKRti::DtString& objectName);
585 
588  virtual bool objectWasCreatedByFederate( DtRtiObject const& obj, DtFederateHandle const& fedHandle );
589 
594  virtual DtRtiObject* processNewObj(DtObjectInstanceHandle objHand,
595  DtObjectClassHandle realClass, const char* name,
596  const DtAttributeHandleSet& inSet,
597  DtHandle regSetHandle,
598  DtFederateHandle sourceFederate);
599 
601  virtual DtObjectClassInfo* firstSubscribedClass(
602  DtObjectClassInfo* classDesc,
603  DtHandle regSetHandle);
604 
605 #ifdef DtMOM
606 
607  virtual void getObjectsOwned(DtMomTallyList& list) const;
609  virtual void getObjectsReflected(DtMomTallyList& list) const;
610  virtual void getObjectsUpdated(DtMomTallyList& list) const;
612 #endif
613 
615  virtual int numObjectsOwned();
616 
618  virtual void setDefaultClassAttributeTransportationType(DtObjectClassHandle theObjectClass,
619  const DtAttributeHandleSet& theAttributes, MAKRti::DtTransportType theType);
620 
622  virtual void setAttributeTransportType (DtObjectInstanceHandle theObject,
623  const DtAttributeHandleSet& theAttributes, MAKRti::DtTransportType theType);
624 
626  virtual void setDefaultClassAttributeOrderType(DtObjectClassHandle theObjectClass,
627  const DtAttributeHandleSet& theAttributes,MAKRti::DtOrderType theType);
628 
630  virtual void setAttributeOrderType (DtObjectInstanceHandle theObject,
631  const DtAttributeHandleSet& theAttributes, MAKRti::DtOrderType theType);
632 
633 
634 #ifdef DDM
635 
639 
642  virtual void registerAssociateRegionForUpdates(DtRtiObject& object,
643  DtAttributeHandleSet const& attributes, DtRegion& region) {};
644 
645 #if defined(DtIFSPEC13)
648  DtObjectClassHandle objectClass,
649  DtAttributeHandle attributes[],
650  DtRegion13 *regions[],
651  unsigned long numberOfHandles,
652  const char *objectName=NULL) { return 0; }
653 
655  virtual void associateRegionForUpdates(
656  DtRegion& theRegion,
657  DtObjectInstanceHandle theObject,
658  const DtAttributeHandleSet& theAttributes) {}
659 
661  virtual void unassociateRegionForUpdates(
662  DtRegion& theRegion, DtObjectInstanceHandle theObject) {}
663 
666  DtObjectClassHandle theClass,
667  DtRegion &theRegion,
668  const DtAttributeHandleSet &attributeList,
669  bool active) {}
670 
673  DtObjectClassHandle theClass, DtRegion &theRegion) {}
674 
677  DtObjectClassHandle theClass,
678  const DtAttributeHandleSet &theAttributes,
679  const DtRegion &theRegion) {}
680 #else
681  virtual DtObjectInstanceHandle registerObjectInstanceWithRegions (
683  DtObjectClassHandle theClass,
684  RTI_API::AttributeHandleSetRegionHandleSetPairVector const & theAttributeRegionPairs,
685  const char * theObjectInstanceName=NULL) { return 0;}
686 
688  virtual void associateRegionsForUpdates (
689  DtObjectInstanceHandle theObject,
690  RTI_API::AttributeHandleSetRegionHandleSetPairVector const & theAttributeRegionPairs) {}
691 
693  virtual void unassociateRegionsForUpdates (
694  DtObjectInstanceHandle theObject,
695  RTI_API::AttributeHandleSetRegionHandleSetPairVector const & theAttributeRegionPairs) {}
696 
698  virtual void subscribeObjectClassAttributesWithRegions (
699  DtObjectClassHandle theClass,
700  RTI_API::AttributeHandleSetRegionHandleSetPairVector const & theAttributeRegionPairs, bool active
701 #if !defined(DtIFSPEC1516)
702  , MAKRti::DtString updateRateDesignator
703 #endif
704  ) {}
705 
707  virtual void unsubscribeObjectClassAttributesWithRegions (
708  DtObjectClassHandle theClass,
709  RTI_API::AttributeHandleSetRegionHandleSetPairVector const & theAttributeHandleSetRegionHandleSetPairVector) {}
710 
712  virtual void requestAttributeValueUpdateWithRegions (
713  DtObjectClassHandle theClass,
714  RTI_API::AttributeHandleSetRegionHandleSetPairVector const & theAttributeRegionPairs,
715  DtRtiApiTagConstRef theUserSuppliedTag) {}
716 #endif
717 
718 
719 
720 #endif
721 
722 #ifdef DtTIME
723  virtual void checkPendingTsoRemoveObject();
727 
730  virtual bool retractTsoRemoveObject(DtMessageRetractionHandle const& retractionHandle);
731 #endif
732 
734  virtual bool save(DtRtiSaveFile& file);
735 
737  virtual void prepareToRestore();
738 
740  virtual bool restore( DtRtiSaveFile& file );
741 
744  virtual void sendNotDiscoveredMsgForSmartForwarding(
745  DtObjectInstanceHandle handle,
746  const DtObjectClassInfo& classInfo,
747  DtFederateHandle federate,
748  const DtAttributeHandleSet* attributes = 0);
749  virtual void sendNotDiscoveredMsgForSmartForwarding(
750  DtObjectInstanceHandle handle,
751  const DtObjectClassInfo& classInfo,
752  DtFederateHandle federate,
753  const DtAhvps* attributes);
754 
755 public:
756 
760  static DtObjectMgr* create(DtFederateMgr* fedMgr);
761 
764  static void setCreatorFunction(DtObjectMgrCreator creator);
765 
770  static void setInternalCreatorFunction(DtObjectMgrCreator fn);
771 
773  virtual void ignoreNextUpdate(DtObjectInstanceHandle hdl);
774 
775 protected:
776 
777  virtual void insertBitMask(DtObjectClassMaskMap& classMaskMap, DtObjectClassHandle classHandle, DtFederateHandle fedHandle);
778  virtual void insertRegBitMask( DtObjectClassHandle classHandle, DtFederateHandle fedHandle );
779  virtual void insertSubBitMask( DtObjectClassHandle classHandle, DtFederateHandle fedHandle );
780  virtual void insertDiscBitMask( DtObjectClassHandle classHandle, DtFederateHandle fedHandle );
781  virtual void insertNonDiscBitMask( DtObjectClassHandle classHandle, DtFederateHandle fedHandle );
782 
784  virtual void provideAttrValueUpdate(const DtRtiObject* obj,
785  const DtAttributeHandleSet& attrHandles,
786  DtRtiApiTagConstRef tag);
787 
790  virtual void remoteSubscribe(
791  DtObjectClassInfo& classDesc,
792  const DtAttributeHandleSet& attrs,
793  DtFederateHandle fedHandle,
794  bool isReplacement);
795 
797  virtual void remotePassiveSubscribe(
798  DtObjectClassInfo& classDesc,
799  const DtAttributeHandleSet& attrs,
800  DtFederateHandle fedHandle,
801  bool isReplacement);
802 
805  virtual void remoteUnsubscribe(
806  DtObjectClassHandle classHandle,
807  const DtAttributeHandleSet& attrs,
808  DtFederateHandle fedHandle);
809 
812  virtual void setDiscoveredClass(DtRtiObject& object,
813  DtFederateHandle federateHandle, DtObjectClassHandle classHandle);
814 
816  virtual void processUpdate(const DtUpdateMsg& msg);
818  virtual void processReserveName(DtReserveNameMsg const& msg);
819  virtual void processNameReserved(DtNameReservedMsg const& msg);
820 #if !defined(DtIFSPEC13) && !defined (DtIFSPEC1516)
821  virtual void processMultiNameReserved( DtMultiNameReservedMsg const& msg );
822  virtual void processQueryTransport(const DtQueryTransportMsg& msg);
823  virtual void processQueryInterTransport(const DtQueryInterTransportMsg& msg);
824 #endif
825  virtual void processRegister(const DtRegObjMsg& msg);
826  virtual void processMultiRegister(const DtMultiRegObjMsg& msg);
827  virtual void processDiscover(const DtDiscObjMsg& msg);
828  virtual void processRequestDiscover(const DtReqDiscObjMsg& msg);
829  virtual void processDelete(const DtDeleteRoMsg& msg);
830 #ifdef DtTIME
831  virtual void processDeleteTso(const DtDeleteTsoMsg& msg);
832 #endif
833  virtual void processLocDelete(const DtLocDelMsg& msg);
834  virtual void processPub(const DtPubObjMsg& msg);
835  virtual void processUnpub(const DtUnpubObjMsg& msg);
836  virtual void processSub(const DtSubObjMsg& msg);
837  virtual void processUnsub(const DtUnsubObjMsg& msg);
838  virtual void processRequest(const DtRequestMsg& msg);
839  virtual void processOwnership(const DtOwnershipMsg& msg);
841 
843  virtual void processAcquire(
844  DtObjectInstanceHandle objHand, const DtAttributeHandleSet& attrs,
845  DtFederateHandle fed, bool onlyIfAvail,
846  DtRtiApiTagConstRef tag);
847 
849  virtual void processCancelAcquire(
850  DtObjectInstanceHandle objHand,
851  const DtAttributeHandleSet& attrs,
852  DtFederateHandle fed);
853 
855  virtual void processConfirmCancelAcquire(
856  DtObjectInstanceHandle objHand,
857  const DtAttributeHandleSet& attrs);
858 
860  virtual void processDivest(DtObjectInstanceHandle objHand,
861  const DtAttributeHandleSet& attrs, DtFederateHandle fed,
862  bool negotiated,
864 
867  virtual void notifyDivestedAttributes(DtObjectClassHandle objectClass,
868  DtAttributeHandleSet const& attrs);
869 
871  virtual void processQueryOwner(DtObjectInstanceHandle objHand,
872  DtAttributeHandleSet const& attrs, DtFederateHandle requestor);
873 
875  virtual void processNotifyAcquire(
876  DtObjectInstanceHandle objHand,
877  const DtAttributeHandleSet& attrs,
879  bool forceAcquire=false);
880 
882  virtual void processNotifyAcquireForDirectedMessaging(
883  DtFederateHandle fedHandle,
884  DtObjectInstanceHandle objHand,
885  const DtAttributeHandleSet& attrs);
886 
888  virtual void processGiveToLrc(DtObjectInstanceHandle objHand,
889  const DtAttributeHandleSet& attrs,
890  const char* objectName,
891  DtHandle hand);
892 
894  virtual void processOwnershipUnavailable(DtObjectInstanceHandle objectHandle, const DtAttributeHandleSet& attributes,
895  DtRtiApiTagConstRef userTag);
896 
898  virtual void resetOwner(DtFederateHandle fedHandle, DtObjectInstanceHandle objHandle);
899 
901  virtual void sendPublishMsg(DtObjectClassHandle handle, const DtAttributeHandleSet& theSet);
903  virtual void sendUnpublishMsg(DtObjectInstanceHandle handle, const DtAttributeHandleSet& theSet);
904  virtual void sendUnsubscribeMsg(DtObjectClassHandle handle, const DtAttributeHandleSet& theSet);
905  virtual void sendSubscribeMsg(DtObjectClassHandle theObj, bool isPassive, bool replacement,
906  const DtAttributeHandleSet& theSet, DtFederateHandle fedHandle);
907  virtual void sendSubscribeMsg(DtObjectClassHandle theObj, bool isPassive, bool replacement,
908  const DtAttributeHandleSet& theSet, DtBitMask* sendMask = 0);
909  virtual void sendRegisterMsg(DtRtiObject* object, DtBitMask* sendMask = 0);
910  virtual void sendRegisterMsg( DtRtiMsg* msg, DtRtiObject* object, DtBitMask* sendMask = 0);
911  virtual void sendLocalDeleteMsg(DtObjectInstanceHandle handle);
912  virtual void sendDiscoverMsg(DtObjectInstanceHandle objHandle, DtObjectClassHandle classHandle, DtFederateHandle owner);
913  virtual void sendDiscoverMsg(DtObjectInstanceHandle objHandle, DtObjectClassHandle classHandle, DtFederateHandle owner,
914  DtBitMask* fedHandles);
915  virtual void sendRequestDiscoverMsg(DtObjectInstanceHandle objHandle, DtObjectClassHandle classHandle);
916  virtual void sendRemoveDiscoverMsg(DtObjectInstanceHandle objHandle, DtObjectClassHandle classHandle,
917  DtFederateHandle fedHandle);
918  virtual void sendReserveNameMsg(std::string const & theObjectInstanceName);
919  virtual void sendBestEffortUpdateMsg(DtRtiObject* obj, const DtAhvpBase& theAttrs, DtOrderHandle orderType,
920  DtRtiApiTime const * theTime, DtRtiApiTagConstRef tag, unsigned long serialNumber, const MAKRti::DtInetAddr& destAddr,
921  unsigned int offset=0);
922  virtual void sendReliableUpdateMsg(DtRtiObject* obj, const DtAhvpBase& theAttrs, DtOrderHandle orderType,
923  DtRtiApiTime const * theTime, DtRtiApiTagConstRef tag, unsigned long serialNumber);
924  virtual unsigned long sendDeleteMsg(DtObjectInstanceHandle handle, DtOrderHandle orderType, DtRtiApiTime const * theTime,
925  DtRtiApiTagConstRef tag);
926  virtual void sendOwnershipMsg(DtOwnerMsgKind kind, DtObjectInstanceHandle objHand, const DtAttributeHandleSet& attrs,
928  virtual void sendOwnershipMsg(DtOwnerMsgKind kind, DtObjectInstanceHandle objHand, const DtAttributeHandle attr,
930 
931 #if !defined(DtIFSPEC13) && !defined(DtIFSPEC1516)
932  virtual void sendAttrQueryFoundMsg(DtFederateHandle targetFed, DtObjectInstanceHandle objHand, const DtAttributeHandle attr,
933  DtTransportType transType);
934  virtual void sendInterQueryFoundMsg(DtFederateHandle targetFed, DtObjectInstanceHandle objHand,
935  const DtInteractionClassHandle handle, DtTransportType transType );
936  void sendInterQueryMsg(DtFederateHandle targetFed, DtInteractionClassHandle handle, DtFederateHandle sendingFed );
937 #endif
938 
939 
941  virtual void sendPendingStartUpdates();
942 
944  virtual void sendPendingStopUpdates();
945 
947  virtual void sendPendingStartReg();
948 
950  virtual void sendPendingStopReg();
951 
953  virtual void sendPendingRegister();
954 
956  virtual void sendPendingSubscription();
957 
959  virtual void sendPendingRemovals();
960 
962  virtual void sendPendingRequestAttributes();
963 
965  virtual void sendPendingDiscoveries();
966 
968  virtual void invokePendingDivestNotification();
969 
971  virtual void invokePendingConfirmTransportChange();
972 
974  virtual void purgeDeletedObjects();
975 
976 #if !defined(DtIFSPEC13)
977  virtual void resetNameReservation(std::string objectName);
979 
981  virtual void resetNameUsed(std::string objectName);
982 #endif
983 
986  virtual void throwIfAcquisitionPending(
987  DtObjectClassHandle classHand,
988  const DtAttributeHandleSet& attrs);
989 
990 #if !defined(DtIFSPEC13)
991  virtual void confirmAllInstancesPendingDivestitures(
994  DtObjectClassHandle classHand,
995  const DtAttributeHandleSet& attrs );
996 
999  virtual void confirmPendingDivestitures(
1000  DtObjectInstanceHandle objHand,
1001  const DtAttributeHandleSet& attrs,
1002  DtAttributeHandleSet& divestedSet,
1004 
1007  virtual void cancelPendingConfirms(
1008  DtRtiObject* obj,
1009  const DtAttributeHandleSet& attrs );
1010 #endif
1011 
1014  virtual void divestAllInstances(
1015  DtObjectClassHandle classHand,
1016  const DtAttributeHandleSet& attrs);
1017 
1020  virtual void divestAllInstances();
1021 
1024  virtual void releaseAllAttributes(DtRtiObject* object);
1025 
1028  virtual void releaseOwnership(
1029  DtRtiObject* obj,
1030  const DtAttributeHandleSet& attrs);
1031 
1033  virtual void sendUpdateMessage( DtUpdateMsg* update,
1034  DtObjectClassInfo* classDesc, DtUpdateType updateType,
1035  MAKRti::DtTransportType trans, unsigned int numberAttrs,
1036  MAKRti::DtInetAddr destAddr = DtInetAddr::inaddrAny(),
1037  unsigned int offset = 0);
1038 
1039 #ifdef DtMOM
1040 
1041  virtual void incrementUpdateTally(DtHandle objectClass);
1043  virtual void incrementSentAttributesTally(DtHandle objectClass,
1044  MAKRti::DtTransportType transport, unsigned int numberAttrs);
1045  virtual void incrementReceivedTally(DtHandle objectClass,
1046  MAKRti::DtTransportType transport, unsigned int numberAttrs);
1048 #endif
1049 
1051  virtual void deleteAllOwnedObjects();
1052 
1054  virtual void deleteObj(DtRtiObject* obj, bool isLocalDelete=false);
1055 
1058  virtual void retainTsoDeletedObj(DtRtiObject* obj, DtRtiApiTime const & time);
1059 
1063  virtual void retainTsoRemovedObj(DtRtiObject* obj, DtRtiApiTime const & time);
1064 
1068  virtual bool removedObjectIsRetained(DtObjectInstanceHandle objectHandle);
1069 
1071  virtual void removeObjectAssociations(DtRtiObject& object);
1072 
1076  virtual void collectRemoteSubscriptions(DtRtiObject& object);
1077 
1078  // NOTE:
1079  // The following 2 helper methods (nextOffsetId, and federateHandleSlotFromObjectHandle)
1080  // are specifically excluded from the API.
1081  // Users should instead over-ride:
1082  // DtObjectInstanceHandle uniqueHandle()
1083  // or
1084  // bool objectWasCreatedByFederate( DtRtiObject const& obj, DtFederateHandle const& fedHandle )
1086  virtual unsigned long federateHandleSlotFromObjectHandle(DtObjectInstanceHandle handle) const;
1088 
1091  virtual unsigned long nextOffsetId();
1093 
1096  virtual DtObjectInstanceHandle findReusableHandle();
1097 
1099  virtual DtRtiObject* registerObj(
1100  DtObjectClassHandle theClass,
1101  DtObjectInstanceHandle objHandle,
1102  const char* name);
1103 
1108  virtual DtRtiObject* processNewObj(DtObjectInstanceHandle objHand,
1109  DtObjectClassInfo* actualClass,
1110  DtObjectClassInfo* subscribedClass,
1111  const char* name,
1112  const DtAhvps& inSet,
1113  DtHandle regSetHandle,
1114  DtFederateHandle sourceFederate);
1115 
1119  virtual DtRtiObject* discoverObject(DtObjectInstanceHandle objHandle,
1120  const char* objName,
1121  DtObjectClassInfo* actualClass,
1122  DtObjectClassInfo* discoveredClass,
1123  const DtAttributeHandleSet& attrSet,
1124  DtFederateHandle federateHandle,
1125  bool federateOwnsPrivilegeToDelete);
1126 
1127 #ifdef DDM
1128 
1132 
1134 #if defined(DtIFSPEC13)
1135  virtual void calculateRegionSet(unsigned long channel, const DtAhvps& reflectSet) {}
1136 #else
1137  virtual void calculateRegionSet(unsigned long channel, RTI_API::RegionHandleSet & regionHandles) {}
1138 #endif
1139 
1144  virtual void checkForRegionalSubscribe(DtObjectClassInfo& info, DtFederateHandle fedHandle = 0) {}
1145 
1149  virtual void acquireAssociateRegionForUpdates(
1150  DtObjectInstanceHandle theObject,
1151  const DtAttributeHandleSet& theAttributes) {}
1152 
1154  virtual void unassociateRegionForDivested(
1155  DtRtiObject& obj, const DtAttributeHandleSet& set, bool atomic){}
1156 
1158 
1159 #endif
1160 
1162 
1164  virtual void removeObjectInstance(DtObjectInstanceHandle objectHandle, DtRtiApiTagConstRef tag, DtFederateHandle federateHandle);
1165  virtual void removeObjectInstance(DtObjectInstanceHandle objectHandle, DtRtiApiTagConstRef tag, DtOrderHandle orderType,
1166  DtRtiApiTime const& time, DtFederateHandle federateHandle, unsigned long serialNumber);
1168 
1170 #if defined(DtIFSPEC13)
1171  virtual void invokeReflect(DtFederateHandle federateHandle,
1172  DtObjectInstanceHandle objectHandle,
1173  DtAhvps const& reflectedValues,
1174  DtTransportHandle transportType,
1175  DtOrderHandle sentOrder,
1176  char const * tag = 0,
1177  DtRtiApiTime const * time = 0,
1178  unsigned long serialNumber = 0);
1179 #else
1180  virtual void invokeReflect(DtFederateHandle federateHandle,
1181  RTI_API::ObjectInstanceHandle objectHandle,
1182  RTI_API::AttributeHandleValueMap const& reflectedValues,
1183  DtRtiApiTransportationType transportType,
1184  RTI_API::OrderType sentOrder,
1185  RTI_API::OrderType receivedOrder,
1186  DtRtiApiTagConstRef theTag,
1187  DtRtiApiTime const * time = 0,
1188  unsigned long serialNumber = 0,
1189  RTI_API::RegionHandleSet const* regionHandles = 0);
1190 #endif
1191 
1194  virtual bool acceptObjectChannel(unsigned long channel);
1195 
1198  virtual bool acceptRequestChannel(unsigned long channel);
1199 
1201  virtual void addClassMulticast(DtObjectClassInfo* classDesc, float rate=-1.0);
1207  virtual void removeClassMulticast(DtObjectClassInfo* classDesc, float rate=-1.0);
1209 
1211 
1212  virtual void invokeTurnUpdatesOn(DtObjectInstanceHandle objectHandle, const DtAttributeHandleSet& changedSet);
1213  virtual void invokeTurnUpdatesOff(DtObjectInstanceHandle objectHandle, const DtAttributeHandleSet& changedSet);
1214  // User tag is a pointer here because sometimes it's not provided in call and a default empty tag is used
1215  virtual void invokeAcquisitionNotification(DtObjectInstanceHandle objectHandle,
1216  const DtAttributeHandleSet& acquiredAttributes, DtRtiApiTagConstPtr userTag = nullptr);
1217  virtual void invokeRequestAttributeOwnershipAssumption(DtObjectInstanceHandle objectHandle,
1218  const DtAttributeHandleSet& acquiredAttributes, DtRtiApiTagConstRef userTag);
1219  virtual void invokeAttributeOwnershipUnavailable(DtObjectInstanceHandle objectHandle,
1220  const DtAttributeHandleSet& unavailableAttributes, DtRtiApiTagConstRef userTag = DtRtiMsg::theDefaultTag);
1221 #if defined(DtIFSPEC1516_2025)
1222  virtual void invokeAttributeIsNotOwned(DtObjectInstanceHandle objectHandle, const DtAttributeHandleSet& attributes);
1223  virtual void invokeAttributeIsOwnedByRTI(DtObjectInstanceHandle objectHandle, const DtAttributeHandleSet& attributes);
1224  virtual void invokeInformAttributeOwnership(DtObjectInstanceHandle objectHandle, const DtAttributeHandleSet& attributes,
1225  DtFederateHandle federate);
1226 #else
1227  virtual void invokeAttributeIsNotOwned(DtObjectInstanceHandle objectHandle, DtAttributeHandle attribute);
1228  virtual void invokeAttributeIsOwnedByRTI(DtObjectInstanceHandle objectHandle, DtAttributeHandle attribute);
1229  virtual void invokeInformAttributeOwnership(DtObjectInstanceHandle objectHandle, DtAttributeHandle attribute,
1230  DtFederateHandle federate);
1231 #endif
1232 
1234 
1236  virtual bool saveObjectList( DtRtiSaveFile& file );
1237 
1239  virtual bool restoreObjectList(DtRtiSaveFile& file);
1240 
1242  virtual void destroyObjectLists();
1243 
1245  virtual unsigned long savePacketLength();
1246 
1248  virtual void removeRequestedOwnershipAssumption(DtObjectInstanceHandle objHdl,
1249  const DtAttributeHandleSet& attrs);
1250 
1251 protected:
1252 
1254  static void processUpdate(const DtUpdateMsg& msg, void* usr);
1256  static void processReserveName(DtReserveNameMsg const& msg, void* usr);
1257  static void processNameReserved(DtNameReservedMsg const& msg, void* usr);
1258 #if !defined(DtIFSPEC13) && !defined(DtIFSPEC1516)
1259  static void processMultiNameReserved(DtMultiNameReservedMsg const& msg, void* usr);
1260  static void processQueryTransport(const DtQueryTransportMsg& msg, void* usr);
1261  static void processQueryInterTransport(const DtQueryInterTransportMsg& msg, void* usr);
1262 #endif
1263  static void processRegister(const DtRegObjMsg& msg, void* usr);
1264  static void processMultiRegister(const DtMultiRegObjMsg& msg, void* usr);
1265  static void processDiscover(const DtDiscObjMsg& msg, void* usr);
1266  static void processRequestDiscover(const DtReqDiscObjMsg& msg, void* usr);
1267  static void processDelete(const DtDeleteRoMsg& msg, void* usr);
1268 #ifdef DtTIME
1269  static void processDeleteTso(const DtDeleteTsoMsg& msg, void* usr);
1270 #endif
1271  static void processLocDelete(const DtLocDelMsg& msg, void* usr);
1272  static void processPub(const DtPubObjMsg& msg, void* usr);
1273  static void processUnpub(const DtUnpubObjMsg& msg, void* usr);
1274  static void processSub(const DtSubObjMsg& msg, void* usr);
1275  static void processUnsub(const DtUnsubObjMsg& msg, void* usr);
1276  static void processRequest(const DtRequestMsg& msg, void* usr);
1277  static void processOwnership(const DtOwnershipMsg& msg, void* usr);
1279 
1280 protected:
1281 
1284 
1286  std::set<std::string> myReservedNames;
1288  std::set<std::string> myUsedNames;
1290  std::set<std::string> myFailedNames;
1291 
1293  MAKRti::DtString myHlaNamePrefix;
1294 
1297 
1299  std::map<MAKRti::DtString, DtRtiObject*> myObjectsByName;
1300 
1303 
1305  std::map<MAKRti::DtString, DtRtiObject*> myKnownObjsByName;
1306 
1309 
1311  std::map<MAKRti::DtString, DtRtiObject*> myOwnedObjsByName;
1312 
1315 
1317  std::map<MAKRti::DtString, DtRtiObject*> myLrcManagedObjsByName;
1318 
1321 
1324  std::map<DtObjectInstanceHandle, MAKRti::DtTime> myDeletedObjects;
1325 
1326 #ifdef DtTIME
1327 
1328  DtRtiMsgQueue* myTsoRemoveQueue;
1330  DtObjectHandleTimeMap myTsoDeletedObjects;
1331  DtObjectPtrTimeMap myTsoDeletedObjectCache;
1332  DtObjectPtrTimeMap myTsoRemovedObjectCache;
1334 #endif
1335 
1337  DtObjectClassHandleStdSet myRetransmitSubClass;
1348  MAKRti::DtList myPendingRemovals;
1353 #if !defined(DtIFSPEC13) && !defined(DtIFSPEC1516)
1355 #endif
1356 
1358 
1361 
1363  bool myClassRelevanceSwitch;
1368 
1371 
1374 
1377 
1379  MAKRti::DtClock myClock;
1380 
1382  typedef std::map<DtObjectClassHandle, DtObjectInstanceHandleStdSet> DtClassToPendingObjDiscMap;
1383  typedef std::map<DtFederateHandle, DtClassToPendingObjDiscMap> DtFederateToPendingObjDiscMap;
1388 
1391 
1394 
1397 
1398  std::set<DtRtiMsgKind> myConstrainedUpdateKinds;
1399  std::set<DtRtiMsgKind> myConstrainedDeleteKinds;
1400 
1401  // Number bits to shift federate handle slot when constructing object instance handle
1403 
1404 
1405 protected:
1406 
1408  static DtObjectMgrCreator theCreator;
1409 
1411  static DtObjectMgrCreator theInternalCreator;
1412 };
std::set< std::string > myReservedNames
These names are reserved by this federate but have not been used.
Definition: objMgr.h:1286
Definition: aHandValBase.h:21
std::map< MAKRti::DtString, DtRtiObject * > myKnownObjsByName
List of known objects by name.
Definition: objMgr.h:1305
bool myForceBestEffort
Send everything best effort.
Definition: objMgr.h:1396
virtual void unassociateRegionForUpdates(Region &theRegion, ObjectHandle theObject)
DtFederateMgr * federateMgr() const
Definition: objMgr.h:131
bool myIsJoined
Manager has performed join processing.
Definition: objMgr.h:1370
OrderType
Definition: datatypes.pb.h:472
bool myRestoreInProgress
Status of restore.
Definition: objMgr.h:1373
static const DtRtiApiVariableLengthData theDefaultTag
Definition: rtiMsg.h:246
DtFederateToPendingObjDiscMap myPendingDiscoveries
Definition: objMgr.h:1384
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:1351
std::list< std::pair< DtObjectClassHandle, DtAttributeHandleSet > > DtObjClassAttrSetPairList
Definition: objMgr.h:95
DtObjectClassHandleStdSet myPendingStopRegList
Post processing lists.
Definition: objMgr.h:1344
std::set< DtRtiMsgKind > myConstrainedUpdateKinds
Definition: objMgr.h:1398
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:1379
RTI_API::TransportationTypeHandle DtRtiApiTransportationType
Definition: rtiApiTypes.h:114
bool myReuseIds
Unique object IDs have been exhausted, attempt to reuse IDs.
Definition: objMgr.h:1376
DtObjectClassHandleStdSet myPendingRegisterList
Post processing lists.
Definition: objMgr.h:1345
Definition: nameReservedMsg.h:25
bool myAttributeRelevanceSwitch
Advisory switches.
Definition: objMgr.h:1365
DtRtiApiVariableLengthData const * DtRtiApiTagConstPtr
Definition: rtiApiTypes.h:99
Definition: ownerMsg.h:45
This file contains the declaration of the Connection Manager.
DtObjectInstanceHandleStdSet myLocalDeletedObjects
Post processing lists.
Definition: objMgr.h:1340
DtRequestType
Definition: reqObjMsg.h:24
Definition: objMgr.h:69
DtRtiObjectMap myKnownObjs
List of known objects by handle.
Definition: objMgr.h:1302
DtPendingRequestAttrMap myPendingDivestNotifications
Post processing lists.
Definition: objMgr.h:1350
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:1341
std::map< DtFederateHandle, DtClassToPendingObjDiscMap > DtFederateToPendingObjDiscMap
Definition: objMgr.h:1383
DtFederateMgr * myFederateMgr
Access to the federate manager.
Definition: objMgr.h:1283
DtUpdateType
Update type for object.
Definition: rtiObject.h:94
DtHandle DtInteractionClassHandle
Definition: internalTypes.h:52
bool myAttributeScopeSwitch
Advisory switches.
Definition: objMgr.h:1366
DtRtiApiVariableLengthData const & DtRtiApiTagConstRef
Definition: rtiApiTypes.h:98
virtual void requestClassAttributeValueUpdateWithRegion(ObjectClassHandle theClass, const AttributeHandleSet &theAttributes, const Region &theRegion)
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:1411
std::list< std::pair< DtObjectInstanceHandle, DtAttributeHandleSet > > DtObjInstAttrSetPairList
Definition: objMgr.h:96
DtObjectClassMaskMap myPendingNonDiscoveriesMaskList
Definition: objMgr.h:1387
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:1385
#define NULL
Definition: baseTypes13.h:8
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:1382
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
virtual void unsubscribeObjectClassWithRegion(ObjectClassHandle theClass, Region &theRegion)
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:1299
DtHandle DtTransportHandle
Definition: internalTypes.h:59
DtObjectClassHandleStdSet myPendingStartRegList
Post processing lists.
Definition: objMgr.h:1343
DtPendingConfirmTransport myPendingConfirmTransportChange
Post processing lists.
Definition: objMgr.h:1354
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:1402
DtPendingRequestAttrMap myPendingOwnershipRequest
Post processing lists.
Definition: objMgr.h:1352
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:1324
MAKRti::DtString myHlaNamePrefix
The HLA object instance name prefix.
Definition: objMgr.h:1293
DtHandle myFreeObjHandle
The next free object handle.
Definition: objMgr.h:1360
std::set< std::string > myFailedNames
Reservation of these names failed (i.e., reserved by another federate).
Definition: objMgr.h:1290
DtRtiObjectMap myObjects
List of all objects by handle.
Definition: objMgr.h:1296
virtual void associateRegionForUpdates(Region &theRegion, ObjectHandle theObject, const AttributeHandleSet &theAttributes)
static DtObjectMgrCreator theCreator
The plugin creator.
Definition: objMgr.h:1408
DtObjectInstanceHandleStdSet myPendingInstRegisterList
Post processing lists.
Definition: objMgr.h:1347
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:1317
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
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
virtual ObjectHandle registerObjectInstanceWithRegion(ObjectClassHandle theClass, const char *theObject, AttributeHandle theAttributes[], Region *theRegions[], ULong theNumberOfHandles)
MAKRti::DtList myPendingRemovals
Post processing lists.
Definition: objMgr.h:1348
unsigned long DtHandle
The internal types.
Definition: internalTypes.h:41
DtHandle DtAttributeHandle
Definition: internalTypes.h:54
DtObjClassAttrSetPairList myPendingStopUpdatesList
Post processing lists.
Definition: objMgr.h:1342
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:1390
DtAddrMap myAddrMap
Map of routing addresses by region set handle.
Definition: objMgr.h:1320
Definition: aHandValSet.h:33
std::set< DtInteractionClassHandle > DtInteractionClassHandleStdSet
Definition: internalTypes.h:53
DtRtiObjectMap myLrcManagedObjs
List of LRC owned objects by handle.
Definition: objMgr.h:1314
DtOwnerMsgKind
Definition: ownerMsg.h:24
DtObjectClassMaskMap myPendingRegisterMaskList
Post processing lists.
Definition: objMgr.h:1346
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:1349
Definition: saveFile.h:21
DtObjectInstanceHandleStdSet myIgnoreObjects
Set of object handles whose next updates should be ignored.
Definition: objMgr.h:1393
DtRIDParameters * params() const
Return pointer to RID parameters.
Definition: objMgr.h:140
std::set< DtRtiMsgKind > myConstrainedDeleteKinds
Definition: objMgr.h:1399
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:1339
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:1288
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:1311
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
virtual void subscribeObjectClassAttributesWithRegion(ObjectClassHandle theClass, Region &theRegion, const AttributeHandleSet &attributeList, Boolean active=RTI_TRUE)
DtRtiObjectMap myOwnedObjs
List of owned objects by handle.
Definition: objMgr.h:1308
DtFederateToPendingObjDiscMap myPendingNonDiscoveries
Definition: objMgr.h:1386
Definition: queryInterTransportMsg.h:24
Definition: objMgr.h:71

Document ID: Generated on Wed Jul 8 16:20:32 EDT 2026 from SVN revision 291616
Copyright © 2005-2025 MAK Technologies Inc. All Rights Reserved (www.mak.com)