MAK RTIspy API Documentation for HLA Evolved
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 #ifndef objMgr_H_
10 #define objMgr_H_
11 
14 
15 #include "rtiMsConfig.h"
16 #include "connection.h"
17 #include "objClassInfo.h"
18 #include "rtiObject.h"
19 #include <vlutil/vlHashlist.h>
20 #include <vlutil/vlFedTarget.h>
21 #include "connectMgr.h"
22 #include "RIDparams.h"
23 #include "addrMap.h"
24 #include "reqObjMsg.h"
25 #include "ownerMsg.h"
26 #include <set>
27 #include <list>
28 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E)
29 #include <RTI/Enums.h>
30 #else
31 #ifdef DtIFSPEC13DLC
32 #include "RTI13.h"
33 #define RTI rti13
34 #else
35 #include "RTI.hh"
36 #endif
37 #endif
38 
40 #define DtHlaNamePrefix "HLA_"
41 
42 class DtUpdateMsg;
43 class DtReserveNameMsg;
44 class DtNameReservedMsg;
45 class DtRegObjMsg;
46 class DtDiscObjMsg;
47 class DtReqDiscObjMsg;
48 class DtDeleteRoMsg;
49 class DtDeleteTsoMsg;
50 class DtLocDelMsg;
51 class DtPubObjMsg;
52 class DtUnpubObjMsg;
53 class DtSubObjMsg;
54 class DtUnsubObjMsg;
55 class DtRequestMsg;
56 class DtOwnershipMsg;
57 class DtResignMsg;
58 class DtRegion13;
59 class DtRegionEntryListWithAttributes;
60 class DtRtiSaveFile;
61 class DtMomTallyList;
62 class DtObjectMgr;
63 class DtFomClassMgr;
64 class DtTimeMgr;
65 
66 #ifdef DtIFSPEC1516E
72 #endif
73 
76 {
80 };
81 
88 {
89 public:
90 
92  typedef DtObjectMgr* (*DtObjectMgrCreator)(DtFederateMgr* fedMgr);
93 
95  typedef std::map<DtObjectInstanceHandle, DtAttributeHandleSet>
97 
98 protected:
99  typedef std::set< DtObjectClassHandle > DtObjectClassHandleSet;
100  typedef std::set< DtObjectInstanceHandle > DtObjectInstanceHandleSet;
101  typedef std::list< std::pair< DtObjectClassHandle, DtAttributeHandleSet > > DtObjClassAttrSetPairList;
102  typedef std::list< std::pair< DtObjectInstanceHandle, DtAttributeHandleSet > > DtObjInstAttrSetPairList;
103 #ifdef DtTIME
104 #ifdef DtIFSPEC1516
105  typedef std::map<DtObjectInstanceHandle, rti1516::LogicalTime const *> DtObjectHandleTimeMap;
106  typedef std::map<DtRtiObject*, rti1516::LogicalTime const *> DtObjectPtrTimeMap;
107 #elif defined(DtIFSPEC1516E)
108  typedef std::map<DtObjectInstanceHandle, rti1516e::LogicalTime const *> DtObjectHandleTimeMap;
109  typedef std::map<DtRtiObject*, rti1516e::LogicalTime const *> DtObjectPtrTimeMap;
110 #else
111  typedef std::map<DtObjectInstanceHandle, RTI::FedTime const *> DtObjectHandleTimeMap;
112  typedef std::map<DtRtiObject*, RTI::FedTime const *> DtObjectPtrTimeMap;
113 #endif
114 #endif
115 
116 protected:
117 
119  DtObjectMgr(DtFederateMgr* fedMgr);
120 
121 public:
122 
124  virtual ~DtObjectMgr();
125 
126 private:
127 
129  DtObjectMgr(DtObjectMgr const& );
130 
132  DtObjectMgr& operator= (DtObjectMgr const& );
133 
134 public:
135 
137  virtual void postJoinInit();
138 
140  virtual bool isPostJoined() const;
141 
143  virtual DtFederateMgr* federateMgr();
144  virtual DtFederateMgr* federateMgr() const;
145 
147  virtual DtConnectionMgr* connectMgr();
148  virtual DtConnectionMgr* connectMgr() const;
149 
151 
152  virtual DtRIDParameters* params();
153  virtual DtRIDParameters* params() const;
155 
157 
158  virtual DtFomClassMgr* fom();
159  virtual DtFomClassMgr* fom() const;
161 
162 #ifdef DtTIME
163 
164  virtual DtTimeMgr* timeMgr();
165  virtual DtTimeMgr* timeMgr() const;
166 #endif
167 
169  virtual bool useHlaNamePrefix();
170 
172  virtual DtObjectInstanceHandle objectHandle(const char* name);
173 
176  virtual const char* objectName(DtObjectInstanceHandle handle);
177 
179  virtual DtObjectClassHandle objectClass(DtObjectInstanceHandle handle);
180 
182  virtual int subscribed(DtObjectClassHandle handle);
183 
185  virtual int published(DtObjectClassHandle handle);
186 
188  virtual void publish(
189  DtObjectClassHandle theObject,
190  const DtAttributeHandleSet& attributeList);
191 
193  virtual void unpublishClass(
194  DtObjectClassHandle theObject);
195 
197  virtual void unpublishAttributes(
198  DtObjectClassHandle theClass,
199  DtAttributeHandleSet const & attributeList);
200 
203  virtual void unpublishAttributes(
204  DtObjectClassInfo& classDesc,
205  DtAttributeHandleSet const & attributeList,
206  bool implicitlyUnpublishPrivilegeToDelete);
207 
209  virtual void subscribe(
210  DtObjectClassHandle theClass,
211  const DtAttributeHandleSet& attributeList,
212  bool active);
213 
214 #ifdef DtIFSPEC1516E
215 
216  virtual void subscribe(
217  DtObjectClassHandle theClass,
218  const DtAttributeHandleSet& attributeList,
219  bool active,
220  MAKRti::DtString updateRateDesignator);
221 #endif
222 
224  virtual void unsubscribeClass(
225  DtObjectClassHandle theClass);
226 
228  virtual void unsubscribeAttributes(
229  DtObjectClassHandle theClass,
230  DtAttributeHandleSet const & attributeList);
231 
233  virtual void unsubscribeAttributes(
234  DtObjectClassInfo& classDesc,
235  DtAttributeHandleSet const & attributeList);
236 
237 #ifdef DtIFSPEC1516E
238 
239  virtual void reserveMultipleObjectInstanceName(
240  std::set<std::wstring> const & theObjectInstanceNames);
241 #endif
242 
243 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E)
244 
245  virtual void reserveObjectInstanceName (
246  std::string const & theObjectInstanceName);
247 
249  virtual DtObjectInstanceHandle registerObj(
250  DtObjectClassHandle theClass,
251  std::string const & theObjectInstanceName);
252 
253 #else
254 
255  virtual DtObjectInstanceHandle registerObj(
256  DtObjectClassHandle theClass,
257  const char* name);
258 #endif
259 
260 #ifdef DtIFSPEC1516E
261 
262  virtual void releaseObjectInstanceName(
263  std::string const & theObjectInstanceName);
264  virtual void releaseMultipleObjectInstanceNames(
265  std::set< std::wstring > const & theObjectInstanceNames );
266  virtual void queryAttributeTransportationType(
267  DtObjectInstanceHandle theObject,
268  DtAttributeHandle theAttribute);
269  virtual void queryInteractionTransportationType(
270  DtFederateHandle theFederate,
271  DtInteractionClassHandle theInteraction);
272  virtual void releaseDenied( DtObjectInstanceHandle objectHandle,
273  const DtAttributeHandleSet & attrs );
274  virtual double getUpdateRateForAttribute( DtObjectInstanceHandle objHandle,
275  DtAttributeHandle attrHandle );
276 #endif
277 
279  virtual DtObjectInstanceHandle registerObj(
280  DtObjectClassHandle theClass);
281 
282 #ifdef DtIFSPEC1516E
283  bool holdsPrivilegeToDelete( const DtObjectInstanceHandle & id );
284 #endif
285 
286 #ifdef DtIFSPEC1516
287 
288 
289  virtual unsigned long deleteObj(
290  DtObjectInstanceHandle objectID,
291  rti1516::LogicalTime const * theTime,
292  rti1516::VariableLengthData const & theTag);
293 #elif defined(DtIFSPEC1516E)
294 
295 
296  virtual unsigned long deleteObj(
297  DtObjectInstanceHandle objectID,
298  rti1516e::LogicalTime const * theTime,
299  rti1516e::VariableLengthData const & theTag);
300 #else
301 
302 
303  virtual unsigned long deleteObj(
304  DtObjectInstanceHandle objectID,
305  RTI::FedTime const * theTime,
306  char const * theTag);
307 #endif
308 
310  virtual void localDeleteObj(DtObjectInstanceHandle obj);
311 
313 #ifdef DtIFSPEC1516
314  virtual void requestObjectUpdate (
315  DtObjectInstanceHandle theObject,
316  const DtAttributeHandleSet& theAttributes,
318 #elif defined(DtIFSPEC1516E)
319  virtual void requestObjectUpdate (
320  DtObjectInstanceHandle theObject,
321  const DtAttributeHandleSet& theAttributes,
323 #else
324  virtual void requestObjectUpdate (
325  DtObjectInstanceHandle theObject,
326  const DtAttributeHandleSet& theAttributes,
327  char const * tag=DtRtiMsg::theDefaultTag);
328 #endif
329 
331 #ifdef DtIFSPEC1516
332  virtual void requestClassUpdate (
333  DtObjectClassHandle theClass,
334  const DtAttributeHandleSet& theAttributes,
336  DtHandle regionSetHandle=DtDefaultRegionSetHandle);
337 #elif defined(DtIFSPEC1516E)
338  virtual void requestClassUpdate (
339  DtObjectClassHandle theClass,
340  const DtAttributeHandleSet& theAttributes,
342  DtHandle regionSetHandle=DtDefaultRegionSetHandle);
343 #else
344  virtual void requestClassUpdate (
345  DtObjectClassHandle theClass,
346  const DtAttributeHandleSet& theAttributes,
347  char const * tag=DtRtiMsg::theDefaultTag,
348  DtHandle regionSetHandle=DtDefaultRegionSetHandle);
349 #endif
350 
354 #ifdef DtIFSPEC1516
355  virtual unsigned long sendUpdate(
356  DtObjectInstanceHandle theObject,
357  const DtAhvps& theAttrs,
358  rti1516::LogicalTime const * theTime,
359  rti1516::VariableLengthData const & tag);
360 #elif defined(DtIFSPEC1516E)
361  virtual unsigned long sendUpdate(
362  DtObjectInstanceHandle theObject,
363  const DtAhvps& theAttrs,
364  rti1516e::LogicalTime const * theTime,
365  rti1516e::VariableLengthData const & tag);
366 #else
367  virtual unsigned long sendUpdate(
368  DtObjectInstanceHandle theObject,
369  const DtAhvps& theAttrs,
370  RTI::FedTime const * theTime,
371  char const * tag);
372 #endif
373 
376 #ifdef DtIFSPEC1516
377  virtual unsigned long sendUpdate(
378  DtRtiObject* theObject,
379  const DtAhvps& theAttrs,
380  rti1516::LogicalTime const * theTime,
381  rti1516::VariableLengthData const & tag);
382 #elif defined(DtIFSPEC1516E)
383  virtual unsigned long sendUpdate(
384  DtRtiObject* theObject,
385  const DtAhvps& theAttrs,
386  rti1516e::LogicalTime const * theTime,
387  rti1516e::VariableLengthData const & tag);
388 #else
389  virtual unsigned long sendUpdate(
390  DtRtiObject* theObject,
391  const DtAhvps& theAttrs,
392  RTI::FedTime const * theTime,
393  char const * tag);
394 #endif
395 
397 #ifdef DtIFSPEC1516
398  virtual void acquireAttrs(
399  DtObjectInstanceHandle objHand,
400  const DtAttributeHandleSet& desiredAttributes,
401  bool onlyIfAvail,
403 #elif defined(DtIFSPEC1516E)
404  virtual void acquireAttrs(
405  DtObjectInstanceHandle objHand,
406  const DtAttributeHandleSet& desiredAttributes,
407  bool onlyIfAvail,
409 #else
410  virtual void acquireAttrs(
411  DtObjectInstanceHandle objHand,
412  const DtAttributeHandleSet& desiredAttributes,
413  bool onlyIfAvail,
414  char const * tag=DtRtiMsg::theDefaultTag);
415 #endif
416 
418  virtual void cancelAcquire(
419  DtObjectInstanceHandle objHand,
420  const DtAttributeHandleSet& attrs);
421 
422 #ifdef DtIFSPEC1516
423 
424  virtual void divestOwnership(
425  DtObjectInstanceHandle objHand,
426  const DtAttributeHandleSet& attrs,
427  DtDivestCondition condition,
428  DtAttributeHandleSet& divestedSet,
430 
432  virtual void confirmDivestiture (
433  DtObjectInstanceHandle objHand,
434  const DtAttributeHandleSet& attrs,
435  rti1516::VariableLengthData const & theUserSuppliedTag);
436 
437 #elif defined(DtIFSPEC1516E)
438 
439  virtual void divestOwnership(
440  DtObjectInstanceHandle objHand,
441  const DtAttributeHandleSet& attrs,
442  DtDivestCondition condition,
443  DtAttributeHandleSet& divestedSet,
445 
447  virtual void confirmDivestiture (
448  DtObjectInstanceHandle objHand,
449  const DtAttributeHandleSet& attrs,
450  rti1516e::VariableLengthData const & theUserSuppliedTag);
451 
452 #else
453 
454  virtual void divestOwnership(
455  DtObjectInstanceHandle objHand,
456  const DtAttributeHandleSet& attrs,
457  DtDivestCondition condition,
458  char const * tag=DtRtiMsg::theDefaultTag);
459 #endif
460 
462  virtual void cancelDivest(
463  DtObjectInstanceHandle objHand,
464  const DtAttributeHandleSet& attrs);
465 
467  virtual DtAttributeHandleSet* releaseResponse(
468  DtObjectInstanceHandle objHand,
469  const DtAttributeHandleSet& attrs);
470 
472 
473 
474  virtual void addAllObj(DtRtiObject* obj);
475  virtual void removeAllObj(DtObjectInstanceHandle obj);
476  virtual const MAKRti::DtList& allObjects() const;
477  virtual DtRtiObject* allObj(DtObjectInstanceHandle id);
478  virtual DtRtiObject* allObj(const char* name);
480 
482 
483 
484  virtual void addKnownObj(DtRtiObject* obj);
485  virtual void removeKnownObj(DtObjectInstanceHandle obj);
486  virtual const MAKRti::DtList& knownObjects() const;
487  virtual DtRtiObject* knownObj(DtObjectInstanceHandle id);
488  virtual DtRtiObject* knownObj(const char* name);
490 
492 
493 
494  virtual void addOwnedObj(DtRtiObject* obj);
495  virtual void removeOwnedObj(DtObjectInstanceHandle obj);
496  virtual const MAKRti::DtList& ownedObjects() const;
497  virtual DtRtiObject* ownedObj(DtObjectInstanceHandle id);
498  virtual DtRtiObject* ownedObj(const char* name);
500 
502 
503 
504  virtual void addLrcManagedObj(DtRtiObject* obj);
505  virtual void removeLrcManagedObj(DtObjectInstanceHandle obj);
506  virtual const MAKRti::DtList& lrcManagedObjects() const;
507  virtual DtRtiObject* lrcManagedObj(DtObjectInstanceHandle id);
508  virtual DtRtiObject* lrcManagedObj(const char* name);
510 
512  virtual void removeFromAllLists(DtRtiObject* object);
513 
515  virtual void queryOwnership(
517 
519  virtual bool isAcquistionPending();
520 
522  virtual void autoProvideAttrValueUpdate();
523 
527  virtual void sendRegister(DtRtiObject* obj);
528 
532  virtual void resendRegister(DtRtiObject* obj);
533 
534 #ifdef DtIFSPEC1516
535 
536 
537  virtual void sendRequestMsg(
538  DtRequestType type, unsigned long idOrClass,
539  const DtAttributeHandleSet& theSet,
540  rti1516::VariableLengthData const & tag,
541  bool anonymous,
543 #elif defined(DtIFSPEC1516E)
544 
545 
546  virtual void sendRequestMsg(
547  DtRequestType type, unsigned long idOrClass,
548  const DtAttributeHandleSet& theSet,
549  rti1516e::VariableLengthData const & tag,
550  bool anonymous,
552 #endif
553 
555  virtual void addPendingStartUpdates(
557  const DtAttributeHandleSet& attributeList);
558 
560  virtual void addPendingStopUpdates(
561  DtObjectClassHandle theClass,
562  const DtAttributeHandleSet& attributeList);
563 
565  virtual void addPendingStartReg(DtObjectClassHandle theClass);
566 
568  virtual void addPendingStopReg(DtObjectClassHandle theClass);
569 
571  virtual void addPendingRegister(DtObjectClassHandle theClass);
572 
574  virtual void addPendingSubscription(DtObjectClassHandle theClass);
575 
577  virtual void addPendingRegisterForObject(DtObjectInstanceHandle objHandle);
578 
580  virtual void addPendingRemoval(DtObjectInstanceHandle id);
581 
583  virtual void addPendingRequestAttrs(DtObjectInstanceHandle objectHandle,
584  DtAttributeHandleSet attributes);
585 
587  virtual void addPendingDivestNotification(DtObjectInstanceHandle objectHandle,
588  DtAttributeHandleSet attributes);
589 
591  virtual void addPendingDiscovery(DtObjectInstanceHandle objectHandle,
592  DtObjectClassHandle classHandle, DtFederateHandle federate,
593  bool isNonDiscovery);
594 
596  virtual void processResign(const DtResignMsg& msg);
597 
599 
600 
601 #ifdef DtIFSPEC1516
602  void testResign(rti1516::ResignAction const & theAction);
603  void prepareToResign(rti1516::ResignAction const & theAction);
604 #elif defined(DtIFSPEC1516E)
605  void testResign(rti1516e::ResignAction const & theAction);
606  void prepareToResign(rti1516e::ResignAction const & theAction);
607 #else
608  void testResign(RTI::ResignAction const & theAction);
609  void prepareToResign(RTI::ResignAction const & theAction);
610 #endif
611 
612 
614  virtual void preTick();
615 
617  virtual void postTick();
618 
621 
622 
623  virtual void setRestoreInProgress(bool isRestore);
624  virtual bool restoreInProgress() const;
626 
628 
629 
630  virtual void enableClassRelevanceSwitch();
631  virtual void disableClassRelevanceSwitch();
633 
635  virtual void setClassRelevanceSwitch(bool enableSwitch);
636  virtual bool classRelevanceSwitch();
637 
639 
640 
641  virtual void enableAttributeRelevanceSwitch();
642  virtual void disableAttributeRelevanceSwitch();
644 
646  virtual void setAttributeRelevanceSwitch(bool enableSwitch);
647  virtual bool attributeRelevanceSwitch();
648 
650 
651 
652  virtual void enableAttributeScopeSwitch();
653  virtual void disableAttributeScopeSwitch();
655 
657  virtual void setAttributeScopeSwitch(bool enableSwitch);
658  virtual bool attributeScopeSwitch();
659 
661  virtual void turnUpdatesOn(DtRtiObject const& object, DtAttributeHandleSet const& oldOnSet);
662 
664  virtual void turnUpdatesOff(DtRtiObject const& object, DtAttributeHandleSet const& oldOnSet);
665 
668  virtual DtObjectInstanceHandle uniqueHandle();
669 
672  virtual void getUniqueName(DtObjectInstanceHandle handle,
673  MAKRti::DtString& objectName);
674 
677  virtual bool objectWasCreatedByFederate( DtRtiObject const& obj, DtFederateHandle const& fedHandle );
678 
683  virtual DtRtiObject* processNewObj(DtObjectInstanceHandle objHand,
684  DtObjectClassHandle realClass, const char* name,
685  const DtAttributeHandleSet& inSet,
686  DtHandle regSetHandle,
687  DtFederateHandle sourceFederate);
688 
690  virtual DtObjectClassInfo* firstSubscribedClass(
691  DtObjectClassInfo* classDesc,
692  DtHandle regSetHandle);
693 
694 #ifdef DtMOM
695 
696 
697  virtual void getObjectsOwned(DtMomTallyList& list);
698  virtual void getObjectsReflected(DtMomTallyList& list);
699  virtual void getObjectsUpdated(DtMomTallyList& list);
701 #endif
702 
704  virtual int numObjectsOwned();
705 
707  virtual void setAttributeTransportType (DtObjectInstanceHandle theObject,
708  const DtAttributeHandleSet& theAttributes,
709  MAKRti::DtTransportType theType);
710 
712  virtual void setAttributeOrderType (DtObjectInstanceHandle theObject,
713  const DtAttributeHandleSet& theAttributes,
714  MAKRti::DtOrderType theType);
715 
716 
717 #ifdef DDM
718 
719 
720 
721 
722 
725  virtual void registerAssociateRegionForUpdates(DtRtiObject& object,
726  DtAttributeHandleSet const& attributes, DtRegion& region) {};
727 
728 #ifdef DtIFSPEC1516
729 
730  virtual DtObjectInstanceHandle registerObjectInstanceWithRegions (
731  DtObjectClassHandle theClass,
733  theAttributeRegionPairs,
734  const char * theObjectInstanceName=NULL) { return 0;}
735 
737  virtual void associateRegionsForUpdates (
738  DtObjectInstanceHandle theObject,
740  theAttributeRegionPairs) {}
741 
743  virtual void unassociateRegionsForUpdates (
744  DtObjectInstanceHandle theObject,
746  theAttributeRegionPairs) {}
747 
749  virtual void subscribeObjectClassAttributesWithRegions (
750  DtObjectClassHandle theClass,
752  theAttributeRegionPairs,
753  bool active) {}
754 
756  virtual void unsubscribeObjectClassAttributesWithRegions (
757  DtObjectClassHandle theClass,
759  theAttributeHandleSetRegionHandleSetPairVector) {}
760 
762  virtual void requestAttributeValueUpdateWithRegions (
763  DtObjectClassHandle theClass,
765  theAttributeRegionPairs,
766  rti1516::VariableLengthData const & theUserSuppliedTag) {}
767 
768 #elif defined(DtIFSPEC1516E)
769 
770  virtual DtObjectInstanceHandle registerObjectInstanceWithRegions (
771  DtObjectClassHandle theClass,
773  theAttributeRegionPairs,
774  const char * theObjectInstanceName=NULL) { return 0;}
775 
777  virtual void associateRegionsForUpdates (
778  DtObjectInstanceHandle theObject,
780  theAttributeRegionPairs) {}
781 
783  virtual void unassociateRegionsForUpdates (
784  DtObjectInstanceHandle theObject,
786  theAttributeRegionPairs) {}
787 
789  virtual void subscribeObjectClassAttributesWithRegions (
790  DtObjectClassHandle theClass,
792  theAttributeRegionPairs,
793  bool active,
794  MAKRti::DtString updateRateDesignator ) {}
795 
797  virtual void unsubscribeObjectClassAttributesWithRegions (
798  DtObjectClassHandle theClass,
800  theAttributeHandleSetRegionHandleSetPairVector) {}
801 
803  virtual void requestAttributeValueUpdateWithRegions (
804  DtObjectClassHandle theClass,
806  theAttributeRegionPairs,
807  rti1516e::VariableLengthData const & theUserSuppliedTag) {}
808 
809 #else
810 
812  DtObjectClassHandle objectClass,
813  DtAttributeHandle attributes[],
814  DtRegion13 *regions[],
815  unsigned long numberOfHandles,
816  const char *objectName=NULL) { return 0; }
817 
819  virtual void associateRegionForUpdates(
820  DtRegion& theRegion,
821  DtObjectInstanceHandle theObject,
822  const DtAttributeHandleSet& theAttributes) {}
823 
825  virtual void unassociateRegionForUpdates(
826  DtRegion& theRegion, DtObjectInstanceHandle theObject) {}
827 
830  DtObjectClassHandle theClass,
831  DtRegion &theRegion,
832  const DtAttributeHandleSet &attributeList,
833  bool active) {}
834 
837  DtObjectClassHandle theClass, DtRegion &theRegion) {}
838 
841  DtObjectClassHandle theClass,
842  const DtAttributeHandleSet &theAttributes,
843  const DtRegion &theRegion) {}
844 
845 #endif
846 
847 
848 
849 #endif
850 
851 #ifdef DtTIME
852 
853 
854 
855  virtual void checkPendingTsoRemoveObject();
856 
859  virtual bool retractTsoRemoveObject(DtMessageRetractionHandle const& retractionHandle);
860 #endif
861 
863  virtual bool save(DtRtiSaveFile& file);
864 
866  virtual void prepareToRestore();
867 
869  virtual bool restore( DtRtiSaveFile& file );
870 
873  virtual void sendNotDiscoveredMsgForSmartForwarding(
874  DtObjectInstanceHandle handle,
875  const DtObjectClassInfo& classInfo,
876  DtFederateHandle federate,
877  const DtAttributeHandleSet* attributes = 0);
878  virtual void sendNotDiscoveredMsgForSmartForwarding(
879  DtObjectInstanceHandle handle,
880  const DtObjectClassInfo& classInfo,
881  DtFederateHandle federate,
882  const DtAhvps* attributes);
883 
884 public:
885 
889  static DtObjectMgr* create(DtFederateMgr* fedMgr);
890 
893  static void setCreatorFunction(DtObjectMgrCreator creator);
894 
899  static void setInternalCreatorFunction(DtObjectMgrCreator fn);
900 
902  virtual void ignoreNextUpdate(DtObjectInstanceHandle hdl);
903 
904 protected:
905 
907 #ifdef DtIFSPEC1516
908  virtual void provideAttrValueUpdate(const DtRtiObject* obj,
909  const DtAttributeHandleSet& attrHandles,
910  rti1516::VariableLengthData const & tag);
911 #elif defined(DtIFSPEC1516E)
912  virtual void provideAttrValueUpdate(const DtRtiObject* obj,
913  const DtAttributeHandleSet& attrHandles,
914  rti1516e::VariableLengthData const & tag);
915 #else
916  virtual void provideAttrValueUpdate(const DtRtiObject* obj,
917  const DtAttributeHandleSet& attrHandles,
918  char const * tag);
919 #endif
920 
923  virtual void remoteSubscribe(
924  DtObjectClassInfo& classDesc,
925  const DtAttributeHandleSet& attrs,
926  DtFederateHandle fedHandle,
927  bool isReplacement);
928 
930  virtual void remotePassiveSubscribe(
931  DtObjectClassInfo& classDesc,
932  const DtAttributeHandleSet& attrs,
933  DtFederateHandle fedHandle,
934  bool isReplacement);
935 
938  virtual void remoteUnsubscribe(
939  DtObjectClassHandle classHandle,
940  const DtAttributeHandleSet& attrs,
941  DtFederateHandle fedHandle);
942 
945  virtual void setDiscoveredClass(DtRtiObject& object,
946  DtFederateHandle federateHandle, DtObjectClassHandle classHandle);
947 
949 
950  virtual void processUpdate(const DtUpdateMsg& msg);
951 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E)
952  virtual void processReserveName(DtReserveNameMsg const& msg);
953  virtual void processNameReserved(DtNameReservedMsg const& msg);
954 #ifdef DtIFSPEC1516E
955  virtual void processMultiNameReserved( DtMultiNameReservedMsg const& msg );
956 #endif
957 #endif
958  virtual void processRegister(const DtRegObjMsg& msg);
959  virtual void processDiscover(const DtDiscObjMsg& msg);
960  virtual void processRequestDiscover(const DtReqDiscObjMsg& msg);
961  virtual void processDelete(const DtDeleteRoMsg& msg);
962 #ifdef DtTIME
963  virtual void processDeleteTso(const DtDeleteTsoMsg& msg);
964 #endif
965  virtual void processLocDelete(const DtLocDelMsg& msg);
966  virtual void processPub(const DtPubObjMsg& msg);
967  virtual void processUnpub(const DtUnpubObjMsg& msg);
968  virtual void processSub(const DtSubObjMsg& msg);
969  virtual void processUnsub(const DtUnsubObjMsg& msg);
970  virtual void processRequest(const DtRequestMsg& msg);
971  virtual void processOwnership(const DtOwnershipMsg& msg);
972 #ifdef DtIFSPEC1516E
973  virtual void processQueryTransport(const DtQueryTransportMsg& msg);
974  virtual void processQueryInterTransport(const DtQueryInterTransportMsg& msg);
975 #endif
976 
977 
979 #ifdef DtIFSPEC1516
980  virtual void processAcquire(
981  DtObjectInstanceHandle objHand, const DtAttributeHandleSet& attrs,
982  DtFederateHandle fed, bool onlyIfAvail,
983  rti1516::VariableLengthData const & tag);
984 #elif defined(DtIFSPEC1516E)
985  virtual void processAcquire(
986  DtObjectInstanceHandle objHand, const DtAttributeHandleSet& attrs,
987  DtFederateHandle fed, bool onlyIfAvail,
988  rti1516e::VariableLengthData const & tag);
989 #else
990  virtual void processAcquire(
991  DtObjectInstanceHandle objHand, const DtAttributeHandleSet& attrs,
992  DtFederateHandle fed, bool onlyIfAvail,
993  char const * tag);
994 #endif
995 
997  virtual void processCancelAcquire(
998  DtObjectInstanceHandle objHand,
999  const DtAttributeHandleSet& attrs,
1000  DtFederateHandle fed);
1001 
1003  virtual void processConfirmCancelAcquire(
1004  DtObjectInstanceHandle objHand,
1005  const DtAttributeHandleSet& attrs);
1006 
1008 #ifdef DtIFSPEC1516
1009  virtual void processDivest(DtObjectInstanceHandle objHand,
1010  const DtAttributeHandleSet& attrs, DtFederateHandle fed,
1011  bool negotiated,
1013 #elif defined(DtIFSPEC1516E)
1014  virtual void processDivest(DtObjectInstanceHandle objHand,
1015  const DtAttributeHandleSet& attrs, DtFederateHandle fed,
1016  bool negotiated,
1018 #else
1019  virtual void processDivest(DtObjectInstanceHandle objHand,
1020  const DtAttributeHandleSet& attrs, DtFederateHandle fed,
1021  bool negotiated,
1022  char const * tag=DtRtiMsg::theDefaultTag);
1023 #endif
1024 
1027  virtual void notifyDivestedAttributes(DtObjectClassHandle objectClass,
1028  DtAttributeHandleSet const& attrs);
1029 
1031  virtual void processQueryOwner(DtObjectInstanceHandle objHand,
1032  DtAttributeHandle attr, DtFederateHandle requestor);
1033 
1035 #ifdef DtIFSPEC1516
1036  virtual void processNotifyAcquire(
1037  DtObjectInstanceHandle objHand,
1038  const DtAttributeHandleSet& attrs,
1040  bool forceAcquire=false);
1041 #elif defined(DtIFSPEC1516E)
1042  virtual void processNotifyAcquire(
1043  DtObjectInstanceHandle objHand,
1044  const DtAttributeHandleSet& attrs,
1046  bool forceAcquire=false);
1047 #else
1048  virtual void processNotifyAcquire(
1049  DtObjectInstanceHandle objHand,
1050  const DtAttributeHandleSet& attrs,
1051  char const * tag=DtRtiMsg::theDefaultTag,
1052  bool forceAcquire=false);
1053 #endif
1054 
1056 #ifdef DtIFSPEC1516
1057  virtual void processGiveToLrc(DtObjectInstanceHandle objHand,
1058  const DtAttributeHandleSet& attrs,
1059  rti1516::VariableLengthData const & tag,
1060  DtHandle hand);
1061 #elif defined(DtIFSPEC1516E)
1062  virtual void processGiveToLrc(DtObjectInstanceHandle objHand,
1063  const DtAttributeHandleSet& attrs,
1064  rti1516e::VariableLengthData const & tag,
1065  DtHandle hand);
1066 #else
1067  virtual void processGiveToLrc(DtObjectInstanceHandle objHand,
1068  const DtAttributeHandleSet& attrs,
1069  char const * tag,
1070  DtHandle hand);
1071 #endif
1072 
1074  virtual void resetOwner(DtFederateHandle fedHandle, DtObjectInstanceHandle objHandle);
1075 
1077 
1078  virtual void sendPublishMsg(DtObjectClassHandle handle,
1079  const DtAttributeHandleSet& theSet);
1080  virtual void sendUnpublishMsg(DtObjectInstanceHandle handle,
1081  const DtAttributeHandleSet& theSet);
1082  virtual void sendUnsubscribeMsg(DtObjectClassHandle handle,
1083  const DtAttributeHandleSet& theSet);
1084  virtual void sendSubscribeMsg(DtObjectClassHandle theObj,
1085  bool isPassive, bool replacement,
1086  const DtAttributeHandleSet& theSet);
1087  virtual void sendRegisterMsg(DtRtiObject* object);
1088  virtual void sendLocalDeleteMsg(DtObjectInstanceHandle handle);
1089  virtual void sendDiscoverMsg(DtObjectInstanceHandle objHandle,
1090  DtObjectClassHandle classHandle, DtFederateHandle owner);
1091  virtual void sendRequestDiscoverMsg(DtObjectInstanceHandle objHandle,
1092  DtObjectClassHandle classHandle);
1093  virtual void sendRemoveDiscoverMsg(DtObjectInstanceHandle objHandle,
1094  DtObjectClassHandle classHandle=0);
1095 
1096 #ifdef DtIFSPEC1516
1097  virtual void sendBestEffortUpdateMsg(
1098  DtRtiObject* obj, const DtAhvps& theAttrs, DtOrderHandle orderType,
1099  rti1516::LogicalTime const * theTime,
1100  rti1516::VariableLengthData const & tag,
1101  unsigned long serialNumber, const MAKRti::DtInetAddr& destAddr,
1102  unsigned int offset=0);
1103 
1104  virtual void sendReliableUpdateMsg(
1105  DtRtiObject* obj, const DtAhvps& theAttrs,
1106  DtOrderHandle orderType,
1107  rti1516::LogicalTime const * theTime,
1108  rti1516::VariableLengthData const & tag,
1109  unsigned long serialNumber);
1110 
1111  virtual void sendReserveNameMsg(std::string const & theObjectInstanceName);
1112 
1113  virtual unsigned long sendDeleteMsg(DtObjectInstanceHandle handle,
1114  DtOrderHandle orderType,
1115  rti1516::LogicalTime const * theTime,
1116  rti1516::VariableLengthData const & tag);
1117 
1118  virtual void sendOwnershipMsg(
1119  DtOwnerMsgKind kind, DtObjectInstanceHandle objHand,
1120  const DtAttributeHandleSet& attrs,
1121  DtFederateHandle targetFed = 0,
1123 
1124  virtual void sendOwnershipMsg(
1125  DtOwnerMsgKind kind, DtObjectInstanceHandle objHand,
1126  const DtAttributeHandle attr,
1127  DtFederateHandle targetFed = 0,
1129 
1130 #elif defined(DtIFSPEC1516E)
1131  virtual void sendBestEffortUpdateMsg(
1132  DtRtiObject* obj, const DtAhvps& theAttrs, DtOrderHandle orderType,
1133  rti1516e::LogicalTime const * theTime,
1134  rti1516e::VariableLengthData const & tag,
1135  unsigned long serialNumber, const MAKRti::DtInetAddr& destAddr,
1136  unsigned int offset=0);
1137 
1138  virtual void sendReliableUpdateMsg(
1139  DtRtiObject* obj, const DtAhvps& theAttrs,
1140  DtOrderHandle orderType,
1141  rti1516e::LogicalTime const * theTime,
1142  rti1516e::VariableLengthData const & tag,
1143  unsigned long serialNumber);
1144 
1145  virtual void sendReserveNameMsg(std::string const & theObjectInstanceName);
1146 
1147  virtual unsigned long sendDeleteMsg(DtObjectInstanceHandle handle,
1148  DtOrderHandle orderType,
1149  rti1516e::LogicalTime const * theTime,
1150  rti1516e::VariableLengthData const & tag);
1151 
1152  virtual void sendOwnershipMsg(
1153  DtOwnerMsgKind kind, DtObjectInstanceHandle objHand,
1154  const DtAttributeHandleSet& attrs,
1155  DtFederateHandle targetFed = 0,
1157 
1158  virtual void sendOwnershipMsg(
1159  DtOwnerMsgKind kind, DtObjectInstanceHandle objHand,
1160  const DtAttributeHandle attr,
1161  DtFederateHandle targetFed = 0,
1163 
1164  virtual void sendAttrQueryFoundMsg(
1165  DtFederateHandle targetFed,
1166  DtObjectInstanceHandle objHand,
1167  const DtAttributeHandle attr,
1168  DtTransportType transType );
1169 
1170  virtual void sendInterQueryFoundMsg(
1171  DtFederateHandle targetFed,
1172  DtObjectInstanceHandle objHand,
1173  const DtInteractionClassHandle handle,
1174  DtTransportType transType );
1175 
1176  void sendInterQueryMsg(
1177  DtFederateHandle targetFed,
1178  DtInteractionClassHandle handle,
1179  DtFederateHandle sendingFed );
1180 #else
1181  virtual void sendBestEffortUpdateMsg(
1182  DtRtiObject* obj, const DtAhvps& theAttrs, DtOrderHandle orderType,
1183  RTI::FedTime const * theTime,
1184  char const * tag,
1185  unsigned long serialNumber, const MAKRti::DtInetAddr& destAddr,
1186  unsigned int offset=0);
1187 
1188  virtual void sendReliableUpdateMsg(
1189  DtRtiObject* obj, const DtAhvps& theAttrs,
1190  DtOrderHandle orderType,
1191  RTI::FedTime const * theTime,
1192  char const * tag,
1193  unsigned long serialNumber);
1194 
1195  virtual void sendRequestMsg(
1196  DtRequestType type, unsigned long idOrClass,
1197  const DtAttributeHandleSet& theSet,
1198  char const * tag,
1199  bool anonymous,
1200  DtHandle regionSetHandle = DtRtiMsg::theDefaultRegionSetHandle);
1201 
1202  virtual unsigned long sendDeleteMsg(DtObjectInstanceHandle handle,
1203  DtOrderHandle orderType,
1204  RTI::FedTime const * theTime,
1205  char const * tag);
1206 
1207  virtual void sendOwnershipMsg(
1208  DtOwnerMsgKind kind, DtObjectInstanceHandle objHand,
1209  const DtAttributeHandleSet& attrs,
1210  DtFederateHandle targetFed = 0,
1211  char const * tag = DtRtiMsg::theDefaultTag);
1212 
1213  virtual void sendOwnershipMsg(
1214  DtOwnerMsgKind kind, DtObjectInstanceHandle objHand,
1215  const DtAttributeHandle attr,
1216  DtFederateHandle targetFed = 0,
1217  char const * tag = DtRtiMsg::theDefaultTag);
1218 #endif
1219 
1220 
1222  virtual void sendPendingStartUpdates();
1223 
1225  virtual void sendPendingStopUpdates();
1226 
1228  virtual void sendPendingStartReg();
1229 
1231  virtual void sendPendingStopReg();
1232 
1234  virtual void sendPendingRegister();
1235 
1237  virtual void sendPendingSubscription();
1238 
1240  virtual void sendPendingRemovals();
1241 
1243  virtual void sendPendingRequestAttributes();
1244 
1246  virtual void sendPendingDiscoveries();
1247 
1249  virtual void invokePendingDivestNotification();
1250 
1252  virtual void purgeDeletedObjects();
1253 
1254 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E)
1255 
1256  virtual void resetNameReservation(std::string objectName);
1257 
1259  virtual void resetNameUsed(std::string objectName);
1260 #endif
1261 
1264  virtual void throwIfAcquisitionPending(
1265  DtObjectClassHandle classHand,
1266  const DtAttributeHandleSet& attrs);
1267 
1268 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E)
1269 
1270 
1271  virtual void confirmAllInstancesPendingDivestitures(
1272  DtObjectClassHandle classHand,
1273  const DtAttributeHandleSet& attrs );
1274 
1277  virtual void confirmPendingDivestitures(
1278  DtObjectInstanceHandle objHand,
1279  const DtAttributeHandleSet& attrs,
1280  DtAttributeHandleSet& divestedSet );
1281 
1284  virtual void cancelPendingConfirms(
1285  const DtRtiObject* obj,
1286  const DtAttributeHandleSet& attrs );
1287 #endif
1288 
1291  virtual void divestAllInstances(
1292  DtObjectClassHandle classHand,
1293  const DtAttributeHandleSet& attrs);
1294 
1297  virtual void divestAllInstances();
1298 
1301  virtual void releaseAllAttributes(DtRtiObject* object);
1302 
1305  virtual void releaseOwnership(
1306  DtRtiObject* obj,
1307  const DtAttributeHandleSet& attrs);
1308 
1310  virtual void sendUpdateMessage( DtUpdateMsg* update,
1311  DtObjectClassInfo* classDesc, DtUpdateType updateType,
1312  MAKRti::DtTransportType trans, unsigned int numberAttrs,
1313  MAKRti::DtInetAddr destAddr = DtInetAddr::inaddrAny(),
1314  unsigned int offset = 0);
1315 
1316 #ifdef DtMOM
1317 
1318 
1319  virtual void incrementUpdateTally(DtHandle objectClass);
1320  virtual void incrementSentAttributesTally(DtHandle objectClass,
1321  MAKRti::DtTransportType transport, unsigned int numberAttrs);
1322  virtual void incrementReceivedTally(DtHandle objectClass,
1323  MAKRti::DtTransportType transport, unsigned int numberAttrs);
1325 #endif
1326 
1328  virtual void deleteAllOwnedObjects();
1329 
1331  virtual void deleteObj(DtRtiObject* obj, bool isLocalDelete=false);
1332 
1333 #ifdef DtIFSPEC1516
1334 
1335 
1336  virtual void retainTsoDeletedObj(DtRtiObject* obj,
1337  rti1516::LogicalTime const & time);
1338 
1342  virtual void retainTsoRemovedObj(DtRtiObject* obj,
1343  rti1516::LogicalTime const & time);
1344 #elif defined(DtIFSPEC1516E)
1345 
1346 
1347  virtual void retainTsoDeletedObj(DtRtiObject* obj,
1348  rti1516e::LogicalTime const & time);
1349 
1353  virtual void retainTsoRemovedObj(DtRtiObject* obj,
1354  rti1516e::LogicalTime const & time);
1355 #else
1356 
1357 
1358  virtual void retainTsoDeletedObj(DtRtiObject* obj, RTI::FedTime const & time);
1359 
1363  virtual void retainTsoRemovedObj(DtRtiObject* obj,
1364  RTI::FedTime const & time);
1365 #endif
1366 
1370  virtual bool removedObjectIsRetained(DtObjectInstanceHandle objectHandle);
1371 
1373  virtual void removeObjectAssociations(DtRtiObject& object);
1374 
1378  virtual void collectRemoteSubscriptions(DtRtiObject& object);
1379 
1381  virtual DtFederateHandle federateHandleFromObjectID(DtObjectInstanceHandle id) const;
1382 
1385  virtual unsigned long nextOffsetId();
1386 
1389  virtual DtObjectInstanceHandle findReusableHandle();
1390 
1392  virtual DtRtiObject* registerObj(
1393  DtObjectClassHandle theClass,
1394  DtObjectInstanceHandle objHandle,
1395  const char* name);
1396 
1401  virtual DtRtiObject* processNewObj(DtObjectInstanceHandle objHand,
1402  DtObjectClassInfo* actualClass,
1403  DtObjectClassInfo* subscribedClass,
1404  const char* name,
1405  const DtAhvps& inSet,
1406  DtHandle regSetHandle,
1407  DtFederateHandle sourceFederate);
1408 
1412  virtual DtRtiObject* discoverObject(DtObjectInstanceHandle objHandle,
1413  const char* objName,
1414  DtObjectClassInfo* actualClass,
1415  DtObjectClassInfo* discoveredClass,
1416  const DtAttributeHandleSet& attrSet,
1417  DtFederateHandle federateHandle,
1418  bool federateOwnsPrivilegeToDelete);
1419 
1420 #ifdef DDM
1421 
1422 
1423 
1424 
1425 
1427 #ifdef DtIFSPEC1516
1428  virtual void calculateRegionSet(
1429  unsigned long channel, rti1516::RegionHandleSet & regionHandles) {}
1430 #elif defined(DtIFSPEC1516E)
1431  virtual void calculateRegionSet(
1432  unsigned long channel, rti1516e::RegionHandleSet & regionHandles) {}
1433 #else
1434  virtual void calculateRegionSet(
1435  unsigned long channel, const DtAhvps& reflectSet) {}
1436 #endif
1437 
1442  virtual void checkForRegionalSubscribe(DtObjectClassInfo& info) {}
1443 
1447  virtual void acquireAssociateRegionForUpdates(
1448  DtObjectInstanceHandle theObject,
1449  const DtAttributeHandleSet& theAttributes) {}
1450 
1452  virtual void unassociateRegionForDivested(
1453  DtRtiObject& obj, const DtAttributeHandleSet& set, bool atomic){}
1454 
1456 
1457 #endif
1458 
1460 #ifdef DtIFSPEC1516
1461  virtual void invokeReflect(DtFederateHandle federateHandle,
1462  rti1516::ObjectInstanceHandle objectHandle,
1463  rti1516::AttributeHandleValueMap const& reflectedValues,
1464  rti1516::TransportationType transportType,
1465  rti1516::OrderType sentOrder,
1466  rti1516::OrderType receivedOrder,
1467  rti1516::VariableLengthData const & theTag,
1468  rti1516::LogicalTime const * time=0,
1469  unsigned long serialNumber=0,
1470  rti1516::RegionHandleSet const* regionHandles=0);
1471 #elif defined(DtIFSPEC1516E)
1472  virtual void invokeReflect(DtFederateHandle federateHandle,
1473  rti1516e::ObjectInstanceHandle objectHandle,
1474  rti1516e::AttributeHandleValueMap const& reflectedValues,
1475  rti1516e::TransportationType transportType,
1476  rti1516e::OrderType sentOrder,
1477  rti1516e::OrderType receivedOrder,
1478  rti1516e::VariableLengthData const & theTag,
1479  rti1516e::LogicalTime const * time=0,
1480  unsigned long serialNumber=0,
1481  rti1516e::RegionHandleSet const* regionHandles=0);
1482 #else
1483  virtual void invokeReflect(DtFederateHandle federateHandle,
1484  DtObjectInstanceHandle objectHandle,
1485  DtAhvps const& reflectedValues,
1486  DtTransportHandle transportType,
1487  DtOrderHandle sentOrder,
1488  char const * tag = 0,
1489  RTI::FedTime const * time=0,
1490  unsigned long serialNumber=0);
1491 #endif
1492 
1495  virtual bool acceptObjectChannel(unsigned long channel);
1496 
1499  virtual bool acceptRequestChannel(unsigned long channel);
1500 
1502 
1503 
1504 
1505 
1506 
1507  virtual void addClassMulticast(DtObjectClassInfo* classDesc, float rate=-1.0);
1508  virtual void removeClassMulticast(DtObjectClassInfo* classDesc, float rate=-1.0);
1510 
1512  virtual bool saveObjectList( DtRtiSaveFile& file );
1513 
1515  virtual bool restoreObjectList(DtRtiSaveFile& file);
1516 
1518  virtual void destroyObjectLists();
1519 
1521  virtual unsigned long savePacketLength();
1522 
1523 protected:
1524 
1526 
1527  static void processUpdate(const DtUpdateMsg& msg, void* usr);
1528 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E)
1529  static void processReserveName(DtReserveNameMsg const& msg, void* usr);
1530  static void processNameReserved(DtNameReservedMsg const& msg, void* usr);
1531 #ifdef DtIFSPEC1516E
1532  static void processMultiNameReserved( DtMultiNameReservedMsg const& msg, void* usr );
1533 #endif
1534 #endif
1535  static void processRegister(const DtRegObjMsg& msg, void* usr);
1536  static void processDiscover(const DtDiscObjMsg& msg, void* usr);
1537  static void processRequestDiscover(const DtReqDiscObjMsg& msg, void* usr);
1538  static void processDelete(const DtDeleteRoMsg& msg, void* usr);
1539 #ifdef DtTIME
1540  static void processDeleteTso(const DtDeleteTsoMsg& msg, void* usr);
1541 #endif
1542  static void processLocDelete(const DtLocDelMsg& msg, void* usr);
1543  static void processPub(const DtPubObjMsg& msg, void* usr);
1544  static void processUnpub(const DtUnpubObjMsg& msg, void* usr);
1545  static void processSub(const DtSubObjMsg& msg, void* usr);
1546  static void processUnsub(const DtUnsubObjMsg& msg, void* usr);
1547  static void processRequest(const DtRequestMsg& msg, void* usr);
1548  static void processOwnership(const DtOwnershipMsg& msg, void* usr);
1549 #ifdef DtIFSPEC1516E
1550  static void processQueryTransport(const DtQueryTransportMsg& msg, void* usr);
1551  static void processQueryInterTransport(const DtQueryInterTransportMsg& msg, void* usr);
1552 #endif
1553 
1554 
1555 protected:
1556 
1559 
1560 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E)
1561 
1562  std::set<std::string> myReservedNames;
1564  std::set<std::string> myUsedNames;
1566  std::set<std::string> myFailedNames;
1567 #endif
1568 
1570  MAKRti::DtString myHlaNamePrefix;
1571 
1573  MAKRti::DtHashList myObjects;
1574 
1576  MAKRti::DtHashList myObjectsByName;
1577 
1579  MAKRti::DtHashList myKnownObjs;
1580 
1582  MAKRti::DtHashList myKnownObjsByName;
1583 
1585  MAKRti::DtHashList myOwnedObjs;
1586 
1588  MAKRti::DtHashList myOwnedObjsByName;
1589 
1591  MAKRti::DtHashList myLrcManagedObjs;
1592 
1594  MAKRti::DtHashList myLrcManagedObjsByName;
1595 
1598 
1601  std::map<DtObjectInstanceHandle, MAKRti::DtTime> myDeletedObjects;
1602 
1603 #ifdef DtTIME
1604 
1605 
1606  DtRtiMsgQueue* myTsoRemoveQueue;
1607  DtObjectHandleTimeMap myTsoDeletedObjects;
1608  DtObjectPtrTimeMap myTsoDeletedObjectCache;
1609  DtObjectPtrTimeMap myTsoRemovedObjectCache;
1611 #endif
1612 
1614 
1623  MAKRti::DtList myPendingRemovals;
1627 
1630 
1632 
1637 
1640 
1643 
1646 
1648  MAKRti::DtClock myClock;
1649 
1651  typedef std::set<DtObjectInstanceHandle> DtObjHandleSet;
1652  typedef std::map<DtObjectClassHandle, DtObjHandleSet> DtClassToPendingObjDiscMap;
1653  typedef std::map<DtFederateHandle, DtClassToPendingObjDiscMap> DtFederateToPendingObjDiscMap;
1656 
1659 
1662 
1663 protected:
1664 
1666  static DtObjectMgrCreator theCreator;
1667 
1669  static DtObjectMgrCreator theInternalCreator;
1670 };
1671 
1672 #endif
1673 
1674 
1675 

Document ID: Generated on Tue May 7 16:26:47 EDT 2013 from SVN revision 126903
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)