MAK RTIspy API Documentation for HLA 1516
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions
DtObjectMgr Class Reference

The object manager class processes the object management services. More...

+ Collaboration diagram for DtObjectMgr:

Public Types

typedef DtObjectMgr *(* DtObjectMgrCreator )(DtFederateMgr *fedMgr)
 Object manager creator type.
typedef std::map
< DtObjectInstanceHandle,
DtAttributeHandleSet
DtPendingRequestAttrMap
 Map of requested attributes.

Public Member Functions

virtual ~DtObjectMgr ()
 Destructor.
virtual void postJoinInit ()
 Post join processing. All managers shall have been created and initialized.
virtual bool isPostJoined () const
 Return bool: Was the post join initialization perfomerd?
virtual DtFederateMgrfederateMgr ()
 Access to the federate manager.
virtual DtFederateMgrfederateMgr () const
virtual DtConnectionMgrconnectMgr ()
 Returns pointer to network connection mgr.
virtual DtConnectionMgrconnectMgr () const
virtual bool useHlaNamePrefix ()
 Get switch to use HLA prefix for object names.
virtual DtObjectInstanceHandle objectHandle (const char *name)
 Get objectHandle from name.
virtual const char * objectName (DtObjectInstanceHandle handle)
 Get object name from handle.
virtual DtObjectClassHandle objectClass (DtObjectInstanceHandle handle)
 Get an object's class.
virtual int subscribed (DtObjectClassHandle handle)
 Returns 1 if subscribed to the class, 0 otherwise.
virtual int published (DtObjectClassHandle handle)
 Returns 1 if published the class, 0 otherwise.
virtual void publish (DtObjectClassHandle theObject, const DtAttributeHandleSet &attributeList)
 Publish specified class attributes.
virtual void unpublishClass (DtObjectClassHandle theObject)
 Unpublishes all attributes but privilege to delete is implicit.
virtual void unpublishAttributes (DtObjectClassHandle theClass, DtAttributeHandleSet const &attributeList)
 Explicit unpublish of specified attributes.
virtual void unpublishAttributes (DtObjectClassInfo &classDesc, DtAttributeHandleSet const &attributeList, bool implicitlyUnpublishPrivilegeToDelete)
 Explicit unpublish of specified attributes Except privilege to delete is implicit if so designated.
virtual void subscribe (DtObjectClassHandle theClass, const DtAttributeHandleSet &attributeList, bool active)
 Subscribe specified class attributes.
virtual void unsubscribeClass (DtObjectClassHandle theClass)
 Unsubscribe from all attributes of specified class.
virtual void unsubscribeAttributes (DtObjectClassHandle theClass, DtAttributeHandleSet const &attributeList)
 Unsubscribe specified class attributes.
virtual void unsubscribeAttributes (DtObjectClassInfo &classDesc, DtAttributeHandleSet const &attributeList)
 Unsubscribe specified class attributes.
virtual DtObjectInstanceHandle registerObj (DtObjectClassHandle theClass, const char *name)
 Register a locally simulated object.
virtual DtObjectInstanceHandle registerObj (DtObjectClassHandle theClass)
 Register a locally simulated object.
virtual unsigned long deleteObj (DtObjectInstanceHandle objectID, RTI::FedTime const *theTime, char const *theTag)
 Delete a locally simulated object Return retraction handle serial number.
virtual void localDeleteObj (DtObjectInstanceHandle obj)
 Implements the localDeleteObjectInstance service.
virtual void requestObjectUpdate (DtObjectInstanceHandle theObject, const DtAttributeHandleSet &theAttributes, char const *tag=DtRtiMsg::theDefaultTag)
 Request an attribute value update for an object.
virtual void requestClassUpdate (DtObjectClassHandle theClass, const DtAttributeHandleSet &theAttributes, char const *tag=DtRtiMsg::theDefaultTag, DtHandle regionSetHandle=DtDefaultRegionSetHandle)
 Request an attribute value update for a class of objects.
virtual unsigned long sendUpdate (DtObjectInstanceHandle theObject, const DtAhvps &theAttrs, RTI::FedTime const *theTime, char const *tag)
 Implements update attribute values Checks attributes definition and ownership Return retraction handle serial number.
virtual unsigned long sendUpdate (DtRtiObject *theObject, const DtAhvps &theAttrs, RTI::FedTime const *theTime, char const *tag)
 Generate and transmit update attribute value messages Return retraction handle serial number.
virtual void acquireAttrs (DtObjectInstanceHandle objHand, const DtAttributeHandleSet &desiredAttributes, bool onlyIfAvail, char const *tag=DtRtiMsg::theDefaultTag)
 Process an attribute acquisition.
virtual void cancelAcquire (DtObjectInstanceHandle objHand, const DtAttributeHandleSet &attrs)
 Cancel an attribute acquisition.
virtual void divestOwnership (DtObjectInstanceHandle objHand, const DtAttributeHandleSet &attrs, DtDivestCondition condition, char const *tag=DtRtiMsg::theDefaultTag)
 Process a attribute divestiture.
virtual void cancelDivest (DtObjectInstanceHandle objHand, const DtAttributeHandleSet &attrs)
 Cancel an attribute divestiture.
virtual DtAttributeHandleSetreleaseResponse (DtObjectInstanceHandle objHand, const DtAttributeHandleSet &attrs)
 Respond to an attribute acquisition.
virtual void removeFromAllLists (DtRtiObject *object)
 Remove an object from all lists.
virtual void queryOwnership (DtObjectInstanceHandle obj, DtAttributeHandle attr)
 Implements the queryAttributeOwnership service.
virtual bool isAcquistionPending ()
 Return true if ownership acquistion is pending for remote attrs.
virtual void autoProvideAttrValueUpdate ()
 Invoke provide for all owned attributes.
virtual void sendRegister (DtRtiObject *obj)
 Sends register information, if DDM is active then this information could include region and region association information.
virtual void resendRegister (DtRtiObject *obj, DtBitMask *sendMask=0)
 Re-sends register information, if DDM is active then this information could include region and region association information.
virtual void resendMultiRegister (DtObjectClassHandle classHandle)
 Re-sends register information for all objects of a specific class if DDM is active then this information could include region and region association information.
virtual void addPendingStartUpdates (DtObjectInstanceHandle obj, const DtAttributeHandleSet &attributeList)
 Add pending startUpdates that will get called during the next tick.
virtual void addPendingStopUpdates (DtObjectClassHandle theClass, const DtAttributeHandleSet &attributeList)
 Add pending stopUpdates that will get called during the next tick.
virtual void addPendingStartReg (DtObjectClassHandle theClass)
 Add pending startRegistration that will get processed during the next tick.
virtual void addPendingStopReg (DtObjectClassHandle theClass)
 Add pending stopRegistration that will get processed during the next tick.
virtual void addPendingRegister (DtObjectClassHandle theClass, DtFederateHandle fedHandle=0)
 Add pending Register that will get processed during the next tick.
virtual void addPendingSubscription (DtObjectClassHandle theClass, DtFederateHandle fedHandle=0)
 Add pending subscription class retransmissions that will get processed during next tick.
virtual void addPendingRegisterForObject (DtObjectInstanceHandle objHandle)
 Add pending Register for the given object that will get processed during next tick.
virtual void addPendingRemoval (DtObjectInstanceHandle id)
 Add pending object removals that will get processed during the next tick.
virtual void addPendingRequestAttrs (DtObjectInstanceHandle objectHandle, DtAttributeHandleSet attributes)
 Add pending request attribute value that will get processed during the next tick.
virtual void addPendingDivestNotification (DtObjectInstanceHandle objectHandle, DtAttributeHandleSet attributes)
 Add pending divest notification that will get processed during the next tick.
virtual void addPendingDiscovery (DtObjectInstanceHandle objectHandle, DtObjectClassHandle classHandle, DtFederateHandle federate, bool isNonDiscovery)
 Add pending discovery/non-discovery.
virtual void processResign (const DtResignMsg &msg)
 Process the resign message.
virtual void preTick ()
 Called before processing messages in RTI ambassador tick / evoke callbacks.
virtual void postTick ()
 Called after processing messages in RTI ambassador tick / evoke callbacks.
virtual void setClassRelevanceSwitch (bool enableSwitch)
 Set/Get value of classRelevanceAdvisorySwitch.
virtual bool classRelevanceSwitch ()
virtual void setAttributeRelevanceSwitch (bool enableSwitch)
 Set/Get value of attributeRelevanceAdvisorySwitch.
virtual bool attributeRelevanceSwitch ()
virtual void setAttributeScopeSwitch (bool enableSwitch)
 Set/Get value of attributeScopeAdvisorySwitch.
virtual bool attributeScopeSwitch ()
virtual void turnUpdatesOn (DtRtiObject const &object, DtAttributeHandleSet const &oldOnSet)
 Turn updates on for any attribute now on but it is not in old on set.
virtual void turnUpdatesOff (DtRtiObject const &object, DtAttributeHandleSet const &oldOnSet)
 Turn updates off for any attribute now off but it is in old on set.
virtual DtObjectInstanceHandle uniqueHandle ()
 Returns an ObjectHandle that is unique across the federation.
virtual void getUniqueName (DtObjectInstanceHandle handle, MAKRti::DtString &objectName)
 Use the supplied object handle to construct a unique object name and assign a unique name to the supplied string.
virtual bool objectWasCreatedByFederate (DtRtiObject const &obj, DtFederateHandle const &fedHandle)
 Query the object manager to determine whether the specified federate was the initial creator of the specified object.
virtual DtRtiObjectprocessNewObj (DtObjectInstanceHandle objHand, DtObjectClassHandle realClass, const char *name, const DtAttributeHandleSet &inSet, DtHandle regSetHandle, DtFederateHandle sourceFederate)
 Assumes we have not yet discovered objHand.
virtual DtObjectClassInfofirstSubscribedClass (DtObjectClassInfo *classDesc, DtHandle regSetHandle)
 Returns most specific superclass of class, to which we are subscribed.
virtual int numObjectsOwned ()
 return the number of owned objects
virtual void setAttributeTransportType (DtObjectInstanceHandle theObject, const DtAttributeHandleSet &theAttributes, MAKRti::DtTransportType theType)
 Set the transport type of the attribute instance.
virtual void setAttributeOrderType (DtObjectInstanceHandle theObject, const DtAttributeHandleSet &theAttributes, MAKRti::DtOrderType theType)
 Set the order type of the attribute instance.
virtual bool save (DtRtiSaveFile &file)
 DDM.
virtual void prepareToRestore ()
 Prepare the state information to be restored (i.e., clear out existing data).
virtual bool restore (DtRtiSaveFile &file)
 Restore the state information from the given file.
virtual void sendNotDiscoveredMsgForSmartForwarding (DtObjectInstanceHandle handle, const DtObjectClassInfo &classInfo, DtFederateHandle federate, const DtAttributeHandleSet *attributes=0)
 Send a message removing this federate from remote federate's smart forwarding list for the given object.
virtual void sendNotDiscoveredMsgForSmartForwarding (DtObjectInstanceHandle handle, const DtObjectClassInfo &classInfo, DtFederateHandle federate, const DtAhvps *attributes)
virtual void ignoreNextUpdate (DtObjectInstanceHandle hdl)
 Tells the object manager to ignore the next update for the given object.
virtual DtRIDParametersparams ()
 Return pointer to RID parameters.
virtual DtRIDParametersparams () const
 Return pointer to RID parameters.
virtual DtFomClassMgrfom ()
 Return fom pointer.
virtual DtFomClassMgrfom () const
 Return fom pointer.
virtual void addAllObj (DtRtiObject *obj)
 Add/Remove/Get objects (superset of all objects including MOM) All objects must be in this set.
virtual void removeAllObj (DtObjectInstanceHandle obj)
 Add/Remove/Get objects (superset of all objects including MOM) All objects must be in this set.
virtual const DtRtiObjectMapallObjects () const
 Add/Remove/Get objects (superset of all objects including MOM) All objects must be in this set.
virtual DtRtiObjectallObj (DtObjectInstanceHandle id)
 Add/Remove/Get objects (superset of all objects including MOM) All objects must be in this set.
virtual DtRtiObjectallObj (const char *name)
 Add/Remove/Get objects (superset of all objects including MOM) All objects must be in this set.
virtual void addKnownObj (DtRtiObject *obj)
 Add/Remove/Get known objects (registered or discovered) All registered and discovered objects must be in this set.
virtual void removeKnownObj (DtObjectInstanceHandle obj)
 Add/Remove/Get known objects (registered or discovered) All registered and discovered objects must be in this set.
virtual const DtRtiObjectMapknownObjects () const
 Add/Remove/Get known objects (registered or discovered) All registered and discovered objects must be in this set.
virtual DtRtiObjectknownObj (DtObjectInstanceHandle id)
 Add/Remove/Get known objects (registered or discovered) All registered and discovered objects must be in this set.
virtual DtRtiObjectknownObj (const char *name)
 Add/Remove/Get known objects (registered or discovered) All registered and discovered objects must be in this set.
virtual void addOwnedObj (DtRtiObject *obj)
 Add/Remove/Get owned objects (at least one owned attribute) All objects with attributes owned by this federate must be in this set.
virtual void removeOwnedObj (DtObjectInstanceHandle obj)
 Add/Remove/Get owned objects (at least one owned attribute) All objects with attributes owned by this federate must be in this set.
virtual const DtRtiObjectMapownedObjects () const
 Add/Remove/Get owned objects (at least one owned attribute) All objects with attributes owned by this federate must be in this set.
virtual DtRtiObjectownedObj (DtObjectInstanceHandle id)
 Add/Remove/Get owned objects (at least one owned attribute) All objects with attributes owned by this federate must be in this set.
virtual DtRtiObjectownedObj (const char *name)
 Add/Remove/Get owned objects (at least one owned attribute) All objects with attributes owned by this federate must be in this set.
virtual void addLrcManagedObj (DtRtiObject *obj)
 Add/Remove/Get lrc managed objects (at least one LRC managed attribute) All objects with attributes owned by this LRC must be in this set.
virtual void removeLrcManagedObj (DtObjectInstanceHandle obj)
 Add/Remove/Get lrc managed objects (at least one LRC managed attribute) All objects with attributes owned by this LRC must be in this set.
virtual const DtRtiObjectMaplrcManagedObjects () const
 Add/Remove/Get lrc managed objects (at least one LRC managed attribute) All objects with attributes owned by this LRC must be in this set.
virtual DtRtiObjectlrcManagedObj (DtObjectInstanceHandle id)
 Add/Remove/Get lrc managed objects (at least one LRC managed attribute) All objects with attributes owned by this LRC must be in this set.
virtual DtRtiObjectlrcManagedObj (const char *name)
 Add/Remove/Get lrc managed objects (at least one LRC managed attribute) All objects with attributes owned by this LRC must be in this set.
void testResign (RTI::ResignAction const &theAction)
 Called when resigning from a federation to test conditions and to delete owned objects.
void prepareToResign (RTI::ResignAction const &theAction)
 Called when resigning from a federation to test conditions and to delete owned objects.
virtual void setRestoreInProgress (bool isRestore)
 Note: The advisory switches are disabled by a restore in progress.
virtual bool restoreInProgress () const
 Note: The advisory switches are disabled by a restore in progress.
virtual void enableClassRelevanceSwitch ()
 Enable/Disable classRelevanceAdvisorySwitch 1516 throws exception if call is redundant.
virtual void disableClassRelevanceSwitch ()
 Enable/Disable classRelevanceAdvisorySwitch 1516 throws exception if call is redundant.
virtual void enableAttributeRelevanceSwitch ()
 Enable/Disable attributeRelevanceAdvisorySwitch 1516 throws exception if call is redundant.
virtual void disableAttributeRelevanceSwitch ()
 Enable/Disable attributeRelevanceAdvisorySwitch 1516 throws exception if call is redundant.
virtual void enableAttributeScopeSwitch ()
 Enable/Disable attributeScopeAdvisorySwitch 1516 throws exception if call is redundant.
virtual void disableAttributeScopeSwitch ()
 Enable/Disable attributeScopeAdvisorySwitch 1516 throws exception if call is redundant.

Static Public Member Functions

static DtObjectMgrcreate (DtFederateMgr *fedMgr)
 A Object Manager instance is created and its pointer is returned.
static void setCreatorFunction (DtObjectMgrCreator creator)
 Register a creator function.
static void setInternalCreatorFunction (DtObjectMgrCreator fn)
 Register alternate internal creators.

Protected Types

typedef std::set
< DtObjectClassHandle
DtObjectClassHandleSet
typedef std::set
< DtObjectInstanceHandle
DtObjectInstanceHandleSet
typedef std::map
< DtObjectClassHandle,
DtBitMask * > 
DtObjectClassMaskMap
typedef std::map
< DtObjectInstanceHandle,
DtBitMask * > 
DtObjectInstanceMaskMap
typedef std::list< std::pair
< DtObjectClassHandle,
DtAttributeHandleSet > > 
DtObjClassAttrSetPairList
typedef std::list< std::pair
< DtObjectInstanceHandle,
DtAttributeHandleSet > > 
DtObjInstAttrSetPairList
typedef std::set
< DtObjectInstanceHandle
DtObjHandleSet
 Pending discoveries and non-discoveries.
typedef std::map
< DtObjectClassHandle,
DtObjHandleSet
DtClassToPendingObjDiscMap
typedef std::map
< DtFederateHandle,
DtClassToPendingObjDiscMap
DtFederateToPendingObjDiscMap

Protected Member Functions

 DtObjectMgr (DtFederateMgr *fedMgr)
 Constructor.
virtual void insertRegBitMask (DtObjectClassHandle classHandle, DtFederateHandle fedHandle)
virtual void insertSubBitMask (DtObjectClassHandle classHandle, DtFederateHandle fedHandle)
virtual void insertDiscBitMask (DtObjectClassHandle classHandle, DtFederateHandle fedHandle)
virtual void insertNonDiscBitMask (DtObjectClassHandle classHandle, DtFederateHandle fedHandle)
virtual void provideAttrValueUpdate (const DtRtiObject *obj, const DtAttributeHandleSet &attrHandles, char const *tag)
 Make the fedAmb call to provide attrValUpdate for this object.
virtual void remoteSubscribe (DtObjectClassInfo &classDesc, const DtAttributeHandleSet &attrs, DtFederateHandle fedHandle, bool isReplacement)
 Add a remote subscription to object known database and determine effects on advisories.
virtual void remotePassiveSubscribe (DtObjectClassInfo &classDesc, const DtAttributeHandleSet &attrs, DtFederateHandle fedHandle, bool isReplacement)
 Track passive subscriptions ( no effect on advisories )
virtual void remoteUnsubscribe (DtObjectClassHandle classHandle, const DtAttributeHandleSet &attrs, DtFederateHandle fedHandle)
 Remove a remote subscription to object known database and determine effects on advisories.
virtual void setDiscoveredClass (DtRtiObject &object, DtFederateHandle federateHandle, DtObjectClassHandle classHandle)
 Set the remote federate's discovered class and update the object's remote subscription information.
virtual void processAcquire (DtObjectInstanceHandle objHand, const DtAttributeHandleSet &attrs, DtFederateHandle fed, bool onlyIfAvail, char const *tag)
 Process a remote attribute acquisition.
virtual void processCancelAcquire (DtObjectInstanceHandle objHand, const DtAttributeHandleSet &attrs, DtFederateHandle fed)
 Process a remote cancel attribute acquisition.
virtual void processConfirmCancelAcquire (DtObjectInstanceHandle objHand, const DtAttributeHandleSet &attrs)
 Process a remote confirm attribute acquisition.
virtual void processDivest (DtObjectInstanceHandle objHand, const DtAttributeHandleSet &attrs, DtFederateHandle fed, bool negotiated, char const *tag=DtRtiMsg::theDefaultTag)
 Process a remote attribute divestiture.
virtual void notifyDivestedAttributes (DtObjectClassHandle objectClass, DtAttributeHandleSet const &attrs)
 Find any divested attributes instances that match (is of) the supplied class and set.
virtual void processQueryOwner (DtObjectInstanceHandle objHand, DtAttributeHandle attr, DtFederateHandle requestor)
 Process a remote attribute ownership queury.
virtual void processNotifyAcquire (DtObjectInstanceHandle objHand, const DtAttributeHandleSet &attrs, char const *tag=DtRtiMsg::theDefaultTag, bool forceAcquire=false)
 Process a remote notify attribute acquisition.
virtual void processGiveToLrc (DtObjectInstanceHandle objHand, const DtAttributeHandleSet &attrs, char const *tag, DtHandle hand)
 Give the supplied attributes to the local RTI component.
virtual void resetOwner (DtFederateHandle fedHandle, DtObjectInstanceHandle objHandle)
 Reset the owner of the object.
virtual void sendPendingStartUpdates ()
 Send pending startUpdates.
virtual void sendPendingStopUpdates ()
 Send pending stopUpdates.
virtual void sendPendingStartReg ()
 Send pending startRegistration.
virtual void sendPendingStopReg ()
 Send pending stopRegistration.
virtual void sendPendingRegister ()
 Send pending Register.
virtual void sendPendingSubscription ()
 Send pending subscription class retransmissions.
virtual void sendPendingRemovals ()
 Send pending object removals.
virtual void sendPendingRequestAttributes ()
 Send pending request attribute value.
virtual void sendPendingDiscoveries ()
 Send pending discoveries.
virtual void invokePendingDivestNotification ()
 Invoke pending divest notification.
virtual void purgeDeletedObjects ()
 Purge entries for recently deleted objects that have timed out.
virtual void throwIfAcquisitionPending (DtObjectClassHandle classHand, const DtAttributeHandleSet &attrs)
 If an acquisition request is pending for an attributes in attrs for any objects known at class classHand, throw RTI::OwnershipAcquisitionPending.
virtual void divestAllInstances (DtObjectClassHandle classHand, const DtAttributeHandleSet &attrs)
 Divest ownership (unconditionally) of all owned attributes in attrs for each object that's known at class classHand.
virtual void divestAllInstances ()
 Divest ownership (unconditionally) of all owned attributes of all objects.
virtual void releaseAllAttributes (DtRtiObject *object)
 Release (unconditionally) all owned and LRC managed attributes Only used during a resign.
virtual void releaseOwnership (DtRtiObject *obj, const DtAttributeHandleSet &attrs)
 Releases ownership of the specified attributes to the LRC Used when unpublishing.
virtual void sendUpdateMessage (DtUpdateMsg *update, DtObjectClassInfo *classDesc, DtUpdateType updateType, MAKRti::DtTransportType trans, unsigned int numberAttrs, MAKRti::DtInetAddr destAddr=DtInetAddr::inaddrAny(), unsigned int offset=0)
 Send update message.
virtual void deleteAllOwnedObjects ()
 Delete all objects for which we own the privilege.
virtual void deleteObj (DtRtiObject *obj, bool isLocalDelete=false)
 Remove object from all lists and delete it.
virtual void retainTsoDeletedObj (DtRtiObject *obj, RTI::FedTime const &time)
 TSO deleted object was prematurely deleted when regulation disabled Hold onto it until deletion time passes in order to process discovery.
virtual void retainTsoRemovedObj (DtRtiObject *obj, RTI::FedTime const &time)
 TSO removed object may be discovered by other federates but should not be rediscovered by this federate.
virtual bool removedObjectIsRetained (DtObjectInstanceHandle objectHandle)
 Check list of objects that have been removed via TSO delete and are unknown to the federate but whose delete time has not passed yet.
virtual void removeObjectAssociations (DtRtiObject &object)
 Remove associations to this object (e.g., regions)
virtual void collectRemoteSubscriptions (DtRtiObject &object)
 Collect existing remote subscriptions and apply them to given object Supports attribute advisories when not distributing discovered class.
virtual DtFederateHandle federateHandleFromObjectID (DtObjectInstanceHandle id) const
 Return the federate handle used to construct the given object ID.
virtual unsigned long nextOffsetId ()
 Return the next offset ID.
virtual DtObjectInstanceHandle findReusableHandle ()
 Attempt to find an instance handle that can be re-assigned to a new registration Returns a 0 handle if no free handle found.
virtual DtRtiObjectregisterObj (DtObjectClassHandle theClass, DtObjectInstanceHandle objHandle, const char *name)
 Register a locally simulated object.
virtual DtRtiObjectprocessNewObj (DtObjectInstanceHandle objHand, DtObjectClassInfo *actualClass, DtObjectClassInfo *subscribedClass, const char *name, const DtAhvps &inSet, DtHandle regSetHandle, DtFederateHandle sourceFederate)
 Assumes we have not yet discovered objHand.
virtual DtRtiObjectdiscoverObject (DtObjectInstanceHandle objHandle, const char *objName, DtObjectClassInfo *actualClass, DtObjectClassInfo *discoveredClass, const DtAttributeHandleSet &attrSet, DtFederateHandle federateHandle, bool federateOwnsPrivilegeToDelete)
 Discover this object using the actual and discovered class and the supplied attributes that intersect the federate's subscription(s) Return object if discover successful; otherwise, NULL.
virtual void invokeReflect (DtFederateHandle federateHandle, DtObjectInstanceHandle objectHandle, DtAhvps const &reflectedValues, DtTransportHandle transportType, DtOrderHandle sentOrder, char const *tag=0, RTI::FedTime const *time=0, unsigned long serialNumber=0)
 Invoke the reflect attribute values update call.
virtual bool acceptObjectChannel (unsigned long channel)
 Return true if the channel (region set handle) should be accepted NOTE: This always returns true when DDM is disabled.
virtual bool acceptRequestChannel (unsigned long channel)
 Return true if the channel (region set handle) should be accepted NOTE: This always returns true when DDM is disabled.
virtual bool saveObjectList (DtRtiSaveFile &file)
 save out the list of of known and owned objects
virtual bool restoreObjectList (DtRtiSaveFile &file)
 restore the list of known and owned objects
virtual void destroyObjectLists ()
 Destroy all the object lists and their elements.
virtual unsigned long savePacketLength ()
 Return the length of buffer needed to save the state data.
virtual void processUpdate (const DtUpdateMsg &msg)
 Process messages.
virtual void processRegister (const DtRegObjMsg &msg)
 Process messages.
virtual void processMultiRegister (const DtMultiRegObjMsg &msg)
 Process messages.
virtual void processDiscover (const DtDiscObjMsg &msg)
 Process messages.
virtual void processRequestDiscover (const DtReqDiscObjMsg &msg)
 Process messages.
virtual void processDelete (const DtDeleteRoMsg &msg)
 Process messages.
virtual void processLocDelete (const DtLocDelMsg &msg)
 Process messages.
virtual void processPub (const DtPubObjMsg &msg)
 Process messages.
virtual void processUnpub (const DtUnpubObjMsg &msg)
 Process messages.
virtual void processSub (const DtSubObjMsg &msg)
 Process messages.
virtual void processUnsub (const DtUnsubObjMsg &msg)
 Process messages.
virtual void processRequest (const DtRequestMsg &msg)
 Process messages.
virtual void processOwnership (const DtOwnershipMsg &msg)
 Process messages.
virtual void sendPublishMsg (DtObjectClassHandle handle, const DtAttributeHandleSet &theSet)
 Send various types of RTI messages.
virtual void sendUnpublishMsg (DtObjectInstanceHandle handle, const DtAttributeHandleSet &theSet)
 Send various types of RTI messages.
virtual void sendUnsubscribeMsg (DtObjectClassHandle handle, const DtAttributeHandleSet &theSet)
 Send various types of RTI messages.
virtual void sendSubscribeMsg (DtObjectClassHandle theObj, bool isPassive, bool replacement, const DtAttributeHandleSet &theSet, DtFederateHandle fedHandle)
 Send various types of RTI messages.
virtual void sendSubscribeMsg (DtObjectClassHandle theObj, bool isPassive, bool replacement, const DtAttributeHandleSet &theSet, DtBitMask *sendMask=0)
 Send various types of RTI messages.
virtual void sendRegisterMsg (DtRtiObject *object, DtBitMask *sendMask=0)
 Send various types of RTI messages.
virtual void sendRegisterMsg (DtRtiMsg *msg, DtRtiObject *object, DtBitMask *sendMask=0)
 Send various types of RTI messages.
virtual void sendLocalDeleteMsg (DtObjectInstanceHandle handle)
 Send various types of RTI messages.
virtual void sendDiscoverMsg (DtObjectInstanceHandle objHandle, DtObjectClassHandle classHandle, DtFederateHandle owner)
 Send various types of RTI messages.
virtual void sendRequestDiscoverMsg (DtObjectInstanceHandle objHandle, DtObjectClassHandle classHandle)
 Send various types of RTI messages.
virtual void sendRemoveDiscoverMsg (DtObjectInstanceHandle objHandle, DtObjectClassHandle classHandle, DtFederateHandle fedHandle)
 Send various types of RTI messages.
virtual void sendBestEffortUpdateMsg (DtRtiObject *obj, const DtAhvps &theAttrs, DtOrderHandle orderType, RTI::FedTime const *theTime, char const *tag, unsigned long serialNumber, const MAKRti::DtInetAddr &destAddr, unsigned int offset=0)
 Send various types of RTI messages.
virtual void sendReliableUpdateMsg (DtRtiObject *obj, const DtAhvps &theAttrs, DtOrderHandle orderType, RTI::FedTime const *theTime, char const *tag, unsigned long serialNumber)
 Send various types of RTI messages.
virtual void sendRequestMsg (DtRequestType type, unsigned long idOrClass, const DtAttributeHandleSet &theSet, char const *tag, bool anonymous, DtHandle regionSetHandle=DtRtiMsg::theDefaultRegionSetHandle, DtFederateHandle fedHandle=0)
 Send various types of RTI messages.
virtual unsigned long sendDeleteMsg (DtObjectInstanceHandle handle, DtOrderHandle orderType, RTI::FedTime const *theTime, char const *tag)
 Send various types of RTI messages.
virtual void sendOwnershipMsg (DtOwnerMsgKind kind, DtObjectInstanceHandle objHand, const DtAttributeHandleSet &attrs, DtFederateHandle targetFed=0, char const *tag=DtRtiMsg::theDefaultTag)
 Send various types of RTI messages.
virtual void sendOwnershipMsg (DtOwnerMsgKind kind, DtObjectInstanceHandle objHand, const DtAttributeHandle attr, DtFederateHandle targetFed=0, char const *tag=DtRtiMsg::theDefaultTag)
 Send various types of RTI messages.
virtual void addClassMulticast (DtObjectClassInfo *classDesc, float rate=-1.0)
 Recursively add and remove the DM multicast address of this class and all its subclasses The Rate determines which update rate multicast offsets to join and drop A rate less than zero indicates rate should be retrieved from class A rate equal zero indicates no rate should be used and all offsets are affected.
virtual void removeClassMulticast (DtObjectClassInfo *classDesc, float rate=-1.0)
 Recursively add and remove the DM multicast address of this class and all its subclasses The Rate determines which update rate multicast offsets to join and drop A rate less than zero indicates rate should be retrieved from class A rate equal zero indicates no rate should be used and all offsets are affected.

Static Protected Member Functions

static void processUpdate (const DtUpdateMsg &msg, void *usr)
 Message callback methods to register with connection manager.
static void processRegister (const DtRegObjMsg &msg, void *usr)
 Message callback methods to register with connection manager.
static void processMultiRegister (const DtMultiRegObjMsg &msg, void *usr)
 Message callback methods to register with connection manager.
static void processDiscover (const DtDiscObjMsg &msg, void *usr)
 Message callback methods to register with connection manager.
static void processRequestDiscover (const DtReqDiscObjMsg &msg, void *usr)
 Message callback methods to register with connection manager.
static void processDelete (const DtDeleteRoMsg &msg, void *usr)
 Message callback methods to register with connection manager.
static void processLocDelete (const DtLocDelMsg &msg, void *usr)
 Message callback methods to register with connection manager.
static void processPub (const DtPubObjMsg &msg, void *usr)
 Message callback methods to register with connection manager.
static void processUnpub (const DtUnpubObjMsg &msg, void *usr)
 Message callback methods to register with connection manager.
static void processSub (const DtSubObjMsg &msg, void *usr)
 Message callback methods to register with connection manager.
static void processUnsub (const DtUnsubObjMsg &msg, void *usr)
 Message callback methods to register with connection manager.
static void processRequest (const DtRequestMsg &msg, void *usr)
 Message callback methods to register with connection manager.
static void processOwnership (const DtOwnershipMsg &msg, void *usr)
 Message callback methods to register with connection manager.

Protected Attributes

DtFederateMgrmyFederateMgr
 Access to the federate manager.
MAKRti::DtString myHlaNamePrefix
 The HLA object instance name prefix.
DtRtiObjectMap myObjects
 List of all objects by handle.
MAKRti::DtHashList myObjectsByName
 List of all objects by name.
DtRtiObjectMap myKnownObjs
 List of known objects by handle.
MAKRti::DtHashList myKnownObjsByName
 List of known objects by name.
DtRtiObjectMap myOwnedObjs
 List of owned objects by handle.
MAKRti::DtHashList myOwnedObjsByName
 List of owned objects by name.
DtRtiObjectMap myLrcManagedObjs
 List of LRC owned objects by handle.
MAKRti::DtHashList myLrcManagedObjsByName
 List of LRC owned objects by name.
DtAddrMap myAddrMap
 Map of routing addresses by region set handle.
std::map
< DtObjectInstanceHandle,
MAKRti::DtTime > 
myDeletedObjects
 Set of objects that have been recently deleted that will not be discovered via update.
DtHandle myFreeObjHandle
 The next free object handle.
bool myIsJoined
 Manager has performed join processing.
bool myRestoreInProgress
 Status of restore.
bool myReuseIds
 Unique object IDs have been exhausted, attempt to reuse IDs.
MAKRti::DtClock myClock
 Clock for timing.
DtFederateToPendingObjDiscMap myPendingDiscoveries
DtObjectClassMaskMap myPendingDiscoveriesMaskList
DtFederateToPendingObjDiscMap myPendingNonDiscoveries
DtObjectClassMaskMap myPendingNonDiscoveriesMaskList
DtTime myNextPendingDiscTime
 Next time we should send pending discovery messages.
DtObjHandleSet myIgnoreObjects
 Set of object handles whose next updates should be ignored.
DtObjectClassHandleSet myRetransmitSubClass
 Post processing lists.
DtObjectClassMaskMap myRetransmitSubClassMask
 Post processing lists.
DtObjectInstanceHandleSet myLocalDeletedObjects
 Post processing lists.
DtObjInstAttrSetPairList myPendingStartUpdatesList
 Post processing lists.
DtObjClassAttrSetPairList myPendingStopUpdatesList
 Post processing lists.
DtObjectClassHandleSet myPendingStartRegList
 Post processing lists.
DtObjectClassHandleSet myPendingStopRegList
 Post processing lists.
DtObjectClassHandleSet myPendingRegisterList
 Post processing lists.
DtObjectClassMaskMap myPendingRegisterMaskList
 Post processing lists.
DtObjectInstanceHandleSet myPendingInstRegisterList
 Post processing lists.
MAKRti::DtList myPendingRemovals
 Post processing lists.
DtPendingRequestAttrMap myPendingRequestAttrs
 Post processing lists.
DtPendingRequestAttrMap myPendingDivestNotifications
 Post processing lists.
bool myClassRelevanceSwitch
 Advisory switches.
bool myAttributeRelevanceSwitch
 Advisory switches.
bool myAttributeScopeSwitch
 Advisory switches.

Static Protected Attributes

static DtObjectMgrCreator theCreator = 0
 The plugin creator.
static DtObjectMgrCreator theInternalCreator = 0
 The internal creator.

Private Member Functions

 DtObjectMgr (DtObjectMgr const &)
 Copy Constructor not implemented – Copy Not Allowed!
DtObjectMgroperator= (DtObjectMgr const &)
 Assignment not implemented – Assignment Not Allowed!

Detailed Description

The object manager class processes the object management services.

The object manager manages all the objects in a federation. It handles registers, discovers, updates, reflects, subscriptions, publications, and ownership management.

Member Typedef Documentation

typedef DtObjectMgr*(* DtObjectMgr::DtObjectMgrCreator)(DtFederateMgr *fedMgr)

Object manager creator type.

Pending discoveries and non-discoveries.

Map of requested attributes.

Constructor & Destructor Documentation

DtObjectMgr::DtObjectMgr ( DtFederateMgr fedMgr)
protected
DtObjectMgr::~DtObjectMgr ( )
virtual
DtObjectMgr::DtObjectMgr ( DtObjectMgr const &  )
private

Copy Constructor not implemented – Copy Not Allowed!

Member Function Documentation

bool DtObjectMgr::acceptObjectChannel ( unsigned long  channel)
protectedvirtual

Return true if the channel (region set handle) should be accepted NOTE: This always returns true when DDM is disabled.

Referenced by processUpdate().

bool DtObjectMgr::acceptRequestChannel ( unsigned long  channel)
protectedvirtual

Return true if the channel (region set handle) should be accepted NOTE: This always returns true when DDM is disabled.

void DtObjectMgr::acquireAttrs ( DtObjectInstanceHandle  objHand,
const DtAttributeHandleSet desiredAttributes,
bool  onlyIfAvail,
char const *  tag = DtRtiMsg::theDefaultTag 
)
virtual
void DtObjectMgr::addAllObj ( DtRtiObject obj)
virtual

Add/Remove/Get objects (superset of all objects including MOM) All objects must be in this set.

References myObjects, myObjectsByName, DtRtiObject::objHandle(), and DtRtiObject::objName().

Referenced by discoverObject(), processGiveToLrc(), registerObj(), and restoreObjectList().

void DtObjectMgr::addClassMulticast ( DtObjectClassInfo classDesc,
float  rate = -1.0 
)
protectedvirtual

Recursively add and remove the DM multicast address of this class and all its subclasses The Rate determines which update rate multicast offsets to join and drop A rate less than zero indicates rate should be retrieved from class A rate equal zero indicates no rate should be used and all offsets are affected.

References connectMgr(), DtObjectClassInfo::destinationAddress(), DtObjectClassInfo::destinationDevice(), DtRIDParameters::enableUpdateRateReduction, fom(), DtConnectionMgr::listenToMulticastGroup(), DtObjectClassInfo::maxSubscribedRate(), params(), DtFomClassMgr::positionOfRate(), and DtObjectClassInfo::subclasses().

Referenced by subscribe().

void DtObjectMgr::addKnownObj ( DtRtiObject obj)
virtual

Add/Remove/Get known objects (registered or discovered) All registered and discovered objects must be in this set.

References myKnownObjs, myKnownObjsByName, DtRtiObject::objHandle(), DtRtiObject::objName(), and DtRtiObject::setIsKnown().

Referenced by discoverObject(), registerObj(), and restoreObjectList().

void DtObjectMgr::addLrcManagedObj ( DtRtiObject obj)
virtual

Add/Remove/Get lrc managed objects (at least one LRC managed attribute) All objects with attributes owned by this LRC must be in this set.

References myLrcManagedObjs, myLrcManagedObjsByName, DtRtiObject::objHandle(), and DtRtiObject::objName().

Referenced by processGiveToLrc(), registerObj(), and restoreObjectList().

void DtObjectMgr::addOwnedObj ( DtRtiObject obj)
virtual

Add/Remove/Get owned objects (at least one owned attribute) All objects with attributes owned by this federate must be in this set.

References myOwnedObjs, myOwnedObjsByName, DtRtiObject::objHandle(), and DtRtiObject::objName().

Referenced by processNotifyAcquire(), registerObj(), and restoreObjectList().

void DtObjectMgr::addPendingDiscovery ( DtObjectInstanceHandle  objectHandle,
DtObjectClassHandle  classHandle,
DtFederateHandle  federate,
bool  isNonDiscovery 
)
virtual
void DtObjectMgr::addPendingDivestNotification ( DtObjectInstanceHandle  objectHandle,
DtAttributeHandleSet  attributes 
)
virtual

Add pending divest notification that will get processed during the next tick.

References myPendingDivestNotifications, and DtAttributeHandleSet::setUnion().

void DtObjectMgr::addPendingRegister ( DtObjectClassHandle  theClass,
DtFederateHandle  fedHandle = 0 
)
virtual
void DtObjectMgr::addPendingRegisterForObject ( DtObjectInstanceHandle  objHandle)
virtual

Add pending Register for the given object that will get processed during next tick.

References myPendingInstRegisterList, and restoreInProgress().

Referenced by processNotifyAcquire().

void DtObjectMgr::addPendingRemoval ( DtObjectInstanceHandle  id)
virtual

Add pending object removals that will get processed during the next tick.

References myPendingRemovals.

void DtObjectMgr::addPendingRequestAttrs ( DtObjectInstanceHandle  objectHandle,
DtAttributeHandleSet  attributes 
)
virtual

Add pending request attribute value that will get processed during the next tick.

References myPendingRequestAttrs, and DtAttributeHandleSet::setUnion().

Referenced by processRequest().

void DtObjectMgr::addPendingStartReg ( DtObjectClassHandle  theClass)
virtual

Add pending startRegistration that will get processed during the next tick.

References classRelevanceSwitch(), and myPendingStartRegList.

Referenced by DtObjectClassInfo::publish(), and DtObjectClassInfo::updateRelevance().

void DtObjectMgr::addPendingStartUpdates ( DtObjectInstanceHandle  obj,
const DtAttributeHandleSet attributeList 
)
virtual

Add pending startUpdates that will get called during the next tick.

References attributeRelevanceSwitch(), and myPendingStartUpdatesList.

void DtObjectMgr::addPendingStopReg ( DtObjectClassHandle  theClass)
virtual

Add pending stopRegistration that will get processed during the next tick.

References classRelevanceSwitch(), and myPendingStopRegList.

Referenced by DtObjectClassInfo::publish(), and DtObjectClassInfo::updateRelevance().

void DtObjectMgr::addPendingStopUpdates ( DtObjectClassHandle  theClass,
const DtAttributeHandleSet attributeList 
)
virtual

Add pending stopUpdates that will get called during the next tick.

References attributeRelevanceSwitch(), and myPendingStopUpdatesList.

void DtObjectMgr::addPendingSubscription ( DtObjectClassHandle  theClass,
DtFederateHandle  fedHandle = 0 
)
virtual

Add pending subscription class retransmissions that will get processed during next tick.

References insertSubBitMask(), internalMsgSmartForwardingWhenUsingRtiexec, myRetransmitSubClass, params(), and useRtiExec.

Referenced by processPub().

DtRtiObject * DtObjectMgr::allObj ( DtObjectInstanceHandle  id)
virtual

Add/Remove/Get objects (superset of all objects including MOM) All objects must be in this set.

References myObjects, and NULL.

Referenced by discoverObject(), processGiveToLrc(), processOwnership(), processQueryOwner(), registerObj(), removeAllObj(), and resetOwner().

DtRtiObject * DtObjectMgr::allObj ( const char *  name)
virtual

Add/Remove/Get objects (superset of all objects including MOM) All objects must be in this set.

References myObjectsByName.

const DtRtiObjectMap & DtObjectMgr::allObjects ( ) const
virtual

Add/Remove/Get objects (superset of all objects including MOM) All objects must be in this set.

References myObjects.

bool DtObjectMgr::attributeRelevanceSwitch ( )
virtual
bool DtObjectMgr::attributeScopeSwitch ( )
virtual
void DtObjectMgr::autoProvideAttrValueUpdate ( )
virtual

Invoke provide for all owned attributes.

References myOwnedObjs, provideAttrValueUpdate(), DtAttributeHandleSet::size(), and DtRtiObject::updateOnAttrs().

void DtObjectMgr::cancelAcquire ( DtObjectInstanceHandle  objHand,
const DtAttributeHandleSet attrs 
)
virtual
void DtObjectMgr::cancelDivest ( DtObjectInstanceHandle  objHand,
const DtAttributeHandleSet attrs 
)
virtual
bool DtObjectMgr::classRelevanceSwitch ( )
virtual
void DtObjectMgr::collectRemoteSubscriptions ( DtRtiObject object)
protectedvirtual

Collect existing remote subscriptions and apply them to given object Supports attribute advisories when not distributing discovered class.

Actually can report more attributes than required.

References attributeRelevanceSwitch(), DtObjectClassInfo::baseClass(), DtIsFound(), DtObjectClassInfo::handle(), setDiscoveredClass(), DtObjectClassInfo::subscribedFederates(), turnUpdatesOff(), and turnUpdatesOn().

Referenced by processLocDelete(), processMultiRegister(), and processRegister().

DtConnectionMgr * DtObjectMgr::connectMgr ( )
virtual
DtConnectionMgr * DtObjectMgr::connectMgr ( ) const
virtual
DtObjectMgr * DtObjectMgr::create ( DtFederateMgr fedMgr)
static

A Object Manager instance is created and its pointer is returned.

A registered creator is used if present; otherwise, an internal class is instantiated.

References DtObjectMgr(), theCreator, and theInternalCreator.

Referenced by setCreatorFunction(), and setInternalCreatorFunction().

void DtObjectMgr::deleteAllOwnedObjects ( )
protectedvirtual

Delete all objects for which we own the privilege.

References deleteObj(), myOwnedObjs, NULL, DtRtiObject::objHandle(), DtRtiObject::ownPriviledgeToDelete(), and DtRtiMsg::theDefaultTag.

unsigned long DtObjectMgr::deleteObj ( DtObjectInstanceHandle  objectID,
RTI::FedTime const *  theTime,
char const *  theTag 
)
virtual

Delete a locally simulated object Return retraction handle serial number.

References DtRtiObject::attrOrder(), DtPrivilegeToDelete, and DtRtiObject::ownPriviledgeToDelete().

Referenced by deleteAllOwnedObjects(), destroyObjectLists(), localDeleteObj(), processDelete(), and processResign().

void DtObjectMgr::deleteObj ( DtRtiObject obj,
bool  isLocalDelete = false 
)
protectedvirtual
void DtObjectMgr::destroyObjectLists ( )
protectedvirtual
void DtObjectMgr::disableAttributeRelevanceSwitch ( )
virtual

Enable/Disable attributeRelevanceAdvisorySwitch 1516 throws exception if call is redundant.

References attributeRelevanceSwitch(), and setAttributeRelevanceSwitch().

void DtObjectMgr::disableAttributeScopeSwitch ( )
virtual

Enable/Disable attributeScopeAdvisorySwitch 1516 throws exception if call is redundant.

References attributeScopeSwitch(), and setAttributeScopeSwitch().

void DtObjectMgr::disableClassRelevanceSwitch ( )
virtual

Enable/Disable classRelevanceAdvisorySwitch 1516 throws exception if call is redundant.

References classRelevanceSwitch(), and setClassRelevanceSwitch().

DtRtiObject * DtObjectMgr::discoverObject ( DtObjectInstanceHandle  objHandle,
const char *  objName,
DtObjectClassInfo actualClass,
DtObjectClassInfo discoveredClass,
const DtAttributeHandleSet attrSet,
DtFederateHandle  federateHandle,
bool  federateOwnsPrivilegeToDelete 
)
protectedvirtual
void DtObjectMgr::divestAllInstances ( DtObjectClassHandle  classHand,
const DtAttributeHandleSet attrs 
)
protectedvirtual

Divest ownership (unconditionally) of all owned attributes in attrs for each object that's known at class classHand.

References DtRtiObject::knownClassHandle(), myOwnedObjs, DtRtiObject::ownedAttrs(), releaseOwnership(), DtAttributeHandleSet::setIntersection(), and DtAttributeHandleSet::size().

void DtObjectMgr::divestAllInstances ( )
protectedvirtual

Divest ownership (unconditionally) of all owned attributes of all objects.

References myOwnedObjs, DtRtiObject::ownedAttrs(), and releaseOwnership().

Referenced by publish(), and unpublishAttributes().

void DtObjectMgr::divestOwnership ( DtObjectInstanceHandle  objHand,
const DtAttributeHandleSet attrs,
DtDivestCondition  condition,
char const *  tag = DtRtiMsg::theDefaultTag 
)
virtual
void DtObjectMgr::enableAttributeRelevanceSwitch ( )
virtual

Enable/Disable attributeRelevanceAdvisorySwitch 1516 throws exception if call is redundant.

References attributeRelevanceSwitch(), and setAttributeRelevanceSwitch().

void DtObjectMgr::enableAttributeScopeSwitch ( )
virtual

Enable/Disable attributeScopeAdvisorySwitch 1516 throws exception if call is redundant.

References attributeScopeSwitch(), and setAttributeScopeSwitch().

void DtObjectMgr::enableClassRelevanceSwitch ( )
virtual

Enable/Disable classRelevanceAdvisorySwitch 1516 throws exception if call is redundant.

References classRelevanceSwitch(), and setClassRelevanceSwitch().

DtFederateHandle DtObjectMgr::federateHandleFromObjectID ( DtObjectInstanceHandle  id) const
protectedvirtual

Return the federate handle used to construct the given object ID.

References DtRIDParameters::maxObjectsPerFederate(), and params().

Referenced by objectWasCreatedByFederate().

DtFederateMgr * DtObjectMgr::federateMgr ( )
virtual

Access to the federate manager.

References myFederateMgr.

Referenced by connectMgr(), fom(), params(), processResign(), and sendPendingRemovals().

DtFederateMgr * DtObjectMgr::federateMgr ( ) const
virtual

References myFederateMgr.

DtObjectInstanceHandle DtObjectMgr::findReusableHandle ( )
protectedvirtual

Attempt to find an instance handle that can be re-assigned to a new registration Returns a 0 handle if no free handle found.

References myFreeObjHandle, myKnownObjs, and nextOffsetId().

Referenced by uniqueHandle().

DtObjectClassInfo * DtObjectMgr::firstSubscribedClass ( DtObjectClassInfo classDesc,
DtHandle  regSetHandle 
)
virtual

Returns most specific superclass of class, to which we are subscribed.

References DtObjectClassInfo::baseClass(), NULL, and DtObjectClassInfo::subscribed().

Referenced by processMultiRegister(), processNewObj(), processRegister(), and processUpdate().

DtFomClassMgr * DtObjectMgr::fom ( )
virtual
DtFomClassMgr * DtObjectMgr::fom ( ) const
virtual

Return fom pointer.

References federateMgr(), and DtFederateMgr::fom().

void DtObjectMgr::getUniqueName ( DtObjectInstanceHandle  handle,
MAKRti::DtString &  objectName 
)
virtual

Use the supplied object handle to construct a unique object name and assign a unique name to the supplied string.

References myHlaNamePrefix.

Referenced by registerObj().

void DtObjectMgr::ignoreNextUpdate ( DtObjectInstanceHandle  hdl)
virtual

Tells the object manager to ignore the next update for the given object.

References myIgnoreObjects.

void DtObjectMgr::insertDiscBitMask ( DtObjectClassHandle  classHandle,
DtFederateHandle  fedHandle 
)
protectedvirtual
void DtObjectMgr::insertNonDiscBitMask ( DtObjectClassHandle  classHandle,
DtFederateHandle  fedHandle 
)
protectedvirtual
void DtObjectMgr::insertRegBitMask ( DtObjectClassHandle  classHandle,
DtFederateHandle  fedHandle 
)
protectedvirtual
void DtObjectMgr::insertSubBitMask ( DtObjectClassHandle  classHandle,
DtFederateHandle  fedHandle 
)
protectedvirtual
void DtObjectMgr::invokePendingDivestNotification ( )
protectedvirtual
void DtObjectMgr::invokeReflect ( DtFederateHandle  federateHandle,
DtObjectInstanceHandle  objectHandle,
DtAhvps const &  reflectedValues,
DtTransportHandle  transportType,
DtOrderHandle  sentOrder,
char const *  tag = 0,
RTI::FedTime const *  time = 0,
unsigned long  serialNumber = 0 
)
protectedvirtual

Invoke the reflect attribute values update call.

References connectMgr(), DtConnectionMgr::fedAmb(), and RTI::FederateAmbassador::reflectAttributeValues().

Referenced by processUpdate().

bool DtObjectMgr::isAcquistionPending ( )
virtual

Return true if ownership acquistion is pending for remote attrs.

References DtRtiObject::ifAvailRequestedAttrs(), myObjects, DtAttributeHandleSet::size(), and DtRtiObject::uncondRequestedAttrs().

bool DtObjectMgr::isPostJoined ( ) const
virtual

Return bool: Was the post join initialization perfomerd?

References myIsJoined.

DtRtiObject * DtObjectMgr::knownObj ( DtObjectInstanceHandle  id)
virtual
DtRtiObject * DtObjectMgr::knownObj ( const char *  name)
virtual

Add/Remove/Get known objects (registered or discovered) All registered and discovered objects must be in this set.

References myKnownObjsByName.

const DtRtiObjectMap & DtObjectMgr::knownObjects ( ) const
virtual

Add/Remove/Get known objects (registered or discovered) All registered and discovered objects must be in this set.

References myKnownObjs.

void DtObjectMgr::localDeleteObj ( DtObjectInstanceHandle  obj)
virtual
DtRtiObject * DtObjectMgr::lrcManagedObj ( DtObjectInstanceHandle  id)
virtual

Add/Remove/Get lrc managed objects (at least one LRC managed attribute) All objects with attributes owned by this LRC must be in this set.

References myLrcManagedObjs, and NULL.

Referenced by localDeleteObj(), processGiveToLrc(), and removeLrcManagedObj().

DtRtiObject * DtObjectMgr::lrcManagedObj ( const char *  name)
virtual

Add/Remove/Get lrc managed objects (at least one LRC managed attribute) All objects with attributes owned by this LRC must be in this set.

References myLrcManagedObjsByName.

const DtRtiObjectMap & DtObjectMgr::lrcManagedObjects ( ) const
virtual

Add/Remove/Get lrc managed objects (at least one LRC managed attribute) All objects with attributes owned by this LRC must be in this set.

References myLrcManagedObjs.

unsigned long DtObjectMgr::nextOffsetId ( )
protectedvirtual

Return the next offset ID.

An invalid ID of 0 is returned if this next offset exceeded the maximum.

References connectMgr(), DtConnectionMgr::fedHandle(), DtRIDParameters::maxObjectsPerFederate(), myFreeObjHandle, and params().

Referenced by findReusableHandle(), and uniqueHandle().

void DtObjectMgr::notifyDivestedAttributes ( DtObjectClassHandle  objectClass,
DtAttributeHandleSet const &  attrs 
)
protectedvirtual

Find any divested attributes instances that match (is of) the supplied class and set.

Send a notify divest for them.

References DtRtiObject::actualClass(), DtRtiObject::divestedAttrs(), DtUncondDivest, DtObjectClassInfo::isOfClass(), myOwnedObjs, DtRtiObject::objHandle(), sendOwnershipMsg(), DtAttributeHandleSet::setIntersection(), and DtAttributeHandleSet::size().

Referenced by processPub().

int DtObjectMgr::numObjectsOwned ( )
virtual

return the number of owned objects

References myOwnedObjs, and DtRtiObject::ownPriviledgeToDelete().

Referenced by testResign().

DtObjectClassHandle DtObjectMgr::objectClass ( DtObjectInstanceHandle  handle)
virtual

Get an object's class.

References DtRtiObject::knownClassHandle(), and knownObj().

DtObjectInstanceHandle DtObjectMgr::objectHandle ( const char *  name)
virtual

Get objectHandle from name.

References knownObj(), and DtRtiObject::objHandle().

Referenced by removedObjectIsRetained().

const char * DtObjectMgr::objectName ( DtObjectInstanceHandle  handle)
virtual

Get object name from handle.

Returns pointer to internal memory.

References knownObj(), and DtRtiObject::objName().

Referenced by registerObj().

bool DtObjectMgr::objectWasCreatedByFederate ( DtRtiObject const &  obj,
DtFederateHandle const &  fedHandle 
)
virtual

Query the object manager to determine whether the specified federate was the initial creator of the specified object.

References federateHandleFromObjectID(), and DtRtiObject::id().

Referenced by processResign().

DtObjectMgr& DtObjectMgr::operator= ( DtObjectMgr const &  )
private

Assignment not implemented – Assignment Not Allowed!

DtRtiObject * DtObjectMgr::ownedObj ( DtObjectInstanceHandle  id)
virtual

Add/Remove/Get owned objects (at least one owned attribute) All objects with attributes owned by this federate must be in this set.

References myOwnedObjs, and NULL.

Referenced by invokePendingDivestNotification(), processDiscover(), processLocDelete(), processRequest(), removeOwnedObj(), sendPendingRegister(), sendPendingRequestAttributes(), and sendPendingStartUpdates().

DtRtiObject * DtObjectMgr::ownedObj ( const char *  name)
virtual

Add/Remove/Get owned objects (at least one owned attribute) All objects with attributes owned by this federate must be in this set.

References myOwnedObjsByName.

const DtRtiObjectMap & DtObjectMgr::ownedObjects ( ) const
virtual

Add/Remove/Get owned objects (at least one owned attribute) All objects with attributes owned by this federate must be in this set.

References myOwnedObjs.

Referenced by remotePassiveSubscribe(), remoteSubscribe(), remoteUnsubscribe(), and testResign().

DtRIDParameters * DtObjectMgr::params ( )
virtual
DtRIDParameters * DtObjectMgr::params ( ) const
virtual

Return pointer to RID parameters.

References federateMgr(), and DtFederateMgr::params().

void DtObjectMgr::postJoinInit ( )
virtual

Post join processing. All managers shall have been created and initialized.

References connectMgr(), myIsJoined, and params().

void DtObjectMgr::postTick ( )
virtual
void DtObjectMgr::prepareToResign ( RTI::ResignAction const &  theAction)
void DtObjectMgr::prepareToRestore ( )
virtual

Prepare the state information to be restored (i.e., clear out existing data).

References destroyObjectLists().

Referenced by DtRtiExecFederateMgr::prepareToRestoreLRC().

void DtObjectMgr::preTick ( )
virtual

Called before processing messages in RTI ambassador tick / evoke callbacks.

References invokePendingDivestNotification().

Referenced by DtFederateMgr::pretick().

void DtObjectMgr::processAcquire ( DtObjectInstanceHandle  objHand,
const DtAttributeHandleSet attrs,
DtFederateHandle  fed,
bool  onlyIfAvail,
char const *  tag 
)
protectedvirtual
void DtObjectMgr::processCancelAcquire ( DtObjectInstanceHandle  objHand,
const DtAttributeHandleSet attrs,
DtFederateHandle  fed 
)
protectedvirtual
void DtObjectMgr::processConfirmCancelAcquire ( DtObjectInstanceHandle  objHand,
const DtAttributeHandleSet attrs 
)
protectedvirtual
void DtObjectMgr::processDelete ( const DtDeleteRoMsg msg)
protectedvirtual
void DtObjectMgr::processDelete ( const DtDeleteRoMsg msg,
void *  usr 
)
staticprotected

Message callback methods to register with connection manager.

void DtObjectMgr::processDiscover ( const DtDiscObjMsg msg)
protectedvirtual
void DtObjectMgr::processDiscover ( const DtDiscObjMsg msg,
void *  usr 
)
staticprotected

Message callback methods to register with connection manager.

void DtObjectMgr::processDivest ( DtObjectInstanceHandle  objHand,
const DtAttributeHandleSet attrs,
DtFederateHandle  fed,
bool  negotiated,
char const *  tag = DtRtiMsg::theDefaultTag 
)
protectedvirtual
void DtObjectMgr::processGiveToLrc ( DtObjectInstanceHandle  objHand,
const DtAttributeHandleSet attrs,
char const *  tag,
DtHandle  hand 
)
protectedvirtual
void DtObjectMgr::processLocDelete ( const DtLocDelMsg msg)
protectedvirtual
void DtObjectMgr::processLocDelete ( const DtLocDelMsg msg,
void *  usr 
)
staticprotected

Message callback methods to register with connection manager.

void DtObjectMgr::processMultiRegister ( const DtMultiRegObjMsg msg)
protectedvirtual
void DtObjectMgr::processMultiRegister ( const DtMultiRegObjMsg msg,
void *  usr 
)
staticprotected

Message callback methods to register with connection manager.

DtRtiObject * DtObjectMgr::processNewObj ( DtObjectInstanceHandle  objHand,
DtObjectClassHandle  realClass,
const char *  name,
const DtAttributeHandleSet inSet,
DtHandle  regSetHandle,
DtFederateHandle  sourceFederate 
)
virtual

Assumes we have not yet discovered objHand.

If the object meets our discovery criteria, create a new object, add to the list of known objects, and call discover RTI service. Returns the new object if discovered; otherwise, NULL.

References DtFomClassMgr::classByHandle(), discoverObject(), DtPrivilegeToDelete, firstSubscribedClass(), fom(), DtAttributeHandleSet::isMember(), NULL, DtAttributeHandleSet::setIntersection(), DtAttributeHandleSet::size(), and DtObjectClassInfo::subscribedAttrs().

Referenced by processUpdate().

DtRtiObject * DtObjectMgr::processNewObj ( DtObjectInstanceHandle  objHand,
DtObjectClassInfo actualClass,
DtObjectClassInfo subscribedClass,
const char *  name,
const DtAhvps &  inSet,
DtHandle  regSetHandle,
DtFederateHandle  sourceFederate 
)
protectedvirtual

Assumes we have not yet discovered objHand.

If the object meets our discovery criteria, create a new object, add to the list of known objects, and call discover RTI service. Returns the new object if discovered; otherwise, NULL.

References DtAttributeHandleSet::add(), discoverObject(), DtAttributeHandleSet::getHandle(), DtObjectClassInfo::isSubscribed(), NULL, and DtAttributeHandleSet::size().

void DtObjectMgr::processNotifyAcquire ( DtObjectInstanceHandle  objHand,
const DtAttributeHandleSet attrs,
char const *  tag = DtRtiMsg::theDefaultTag,
bool  forceAcquire = false 
)
protectedvirtual
void DtObjectMgr::processOwnership ( const DtOwnershipMsg msg)
protectedvirtual
void DtObjectMgr::processOwnership ( const DtOwnershipMsg msg,
void *  usr 
)
staticprotected

Message callback methods to register with connection manager.

void DtObjectMgr::processPub ( const DtPubObjMsg msg)
protectedvirtual
void DtObjectMgr::processPub ( const DtPubObjMsg msg,
void *  usr 
)
staticprotected

Message callback methods to register with connection manager.

void DtObjectMgr::processQueryOwner ( DtObjectInstanceHandle  objHand,
DtAttributeHandle  attr,
DtFederateHandle  requestor 
)
protectedvirtual
void DtObjectMgr::processRegister ( const DtRegObjMsg msg)
protectedvirtual
void DtObjectMgr::processRegister ( const DtRegObjMsg msg,
void *  usr 
)
staticprotected

Message callback methods to register with connection manager.

void DtObjectMgr::processRequest ( const DtRequestMsg msg)
protectedvirtual
void DtObjectMgr::processRequest ( const DtRequestMsg msg,
void *  usr 
)
staticprotected

Message callback methods to register with connection manager.

void DtObjectMgr::processRequestDiscover ( const DtReqDiscObjMsg msg)
protectedvirtual
void DtObjectMgr::processRequestDiscover ( const DtReqDiscObjMsg msg,
void *  usr 
)
staticprotected

Message callback methods to register with connection manager.

void DtObjectMgr::processResign ( const DtResignMsg msg)
virtual
void DtObjectMgr::processSub ( const DtSubObjMsg msg)
protectedvirtual
void DtObjectMgr::processSub ( const DtSubObjMsg msg,
void *  usr 
)
staticprotected

Message callback methods to register with connection manager.

void DtObjectMgr::processUnpub ( const DtUnpubObjMsg msg)
protectedvirtual

Process messages.

References connectMgr(), DtRtiMsg::federateHandle(), and DtConnectionMgr::fedHandle().

Referenced by DtObjectMgr(), and ~DtObjectMgr().

void DtObjectMgr::processUnpub ( const DtUnpubObjMsg msg,
void *  usr 
)
staticprotected

Message callback methods to register with connection manager.

void DtObjectMgr::processUnsub ( const DtUnsubObjMsg msg)
protectedvirtual
void DtObjectMgr::processUnsub ( const DtUnsubObjMsg msg,
void *  usr 
)
staticprotected

Message callback methods to register with connection manager.

void DtObjectMgr::processUpdate ( const DtUpdateMsg msg)
protectedvirtual
void DtObjectMgr::processUpdate ( const DtUpdateMsg msg,
void *  usr 
)
staticprotected

Message callback methods to register with connection manager.

void DtObjectMgr::provideAttrValueUpdate ( const DtRtiObject obj,
const DtAttributeHandleSet attrHandles,
char const *  tag 
)
protectedvirtual

Make the fedAmb call to provide attrValUpdate for this object.

References DtRtiObject::filterOwned(), DtAttributeHandleSet::isEmpty(), and DtRtiObject::objHandle().

Referenced by autoProvideAttrValueUpdate(), and processRequest().

void DtObjectMgr::publish ( DtObjectClassHandle  theObject,
const DtAttributeHandleSet attributeList 
)
virtual
int DtObjectMgr::published ( DtObjectClassHandle  handle)
virtual

Returns 1 if published the class, 0 otherwise.

References DtFomClassMgr::classByHandle(), fom(), and DtObjectClassInfo::published().

void DtObjectMgr::purgeDeletedObjects ( )
protectedvirtual

Purge entries for recently deleted objects that have timed out.

References myClock, and myDeletedObjects.

Referenced by postTick().

void DtObjectMgr::queryOwnership ( DtObjectInstanceHandle  obj,
DtAttributeHandle  attr 
)
virtual
DtObjectInstanceHandle DtObjectMgr::registerObj ( DtObjectClassHandle  theClass,
const char *  name 
)
virtual

Register a locally simulated object.

References uniqueHandle(), and useHlaNamePrefix().

Referenced by registerObj().

DtObjectInstanceHandle DtObjectMgr::registerObj ( DtObjectClassHandle  theClass)
virtual

Register a locally simulated object.

References getUniqueName(), objectName(), registerObj(), and uniqueHandle().

DtRtiObject * DtObjectMgr::registerObj ( DtObjectClassHandle  theClass,
DtObjectInstanceHandle  objHandle,
const char *  name 
)
protectedvirtual
void DtObjectMgr::releaseAllAttributes ( DtRtiObject object)
protectedvirtual
void DtObjectMgr::releaseOwnership ( DtRtiObject obj,
const DtAttributeHandleSet attrs 
)
protectedvirtual
DtAttributeHandleSet * DtObjectMgr::releaseResponse ( DtObjectInstanceHandle  objHand,
const DtAttributeHandleSet attrs 
)
virtual
void DtObjectMgr::remotePassiveSubscribe ( DtObjectClassInfo classDesc,
const DtAttributeHandleSet attrs,
DtFederateHandle  fedHandle,
bool  isReplacement 
)
protectedvirtual

Track passive subscriptions ( no effect on advisories )

References DtRtiObject::discoveredClass(), DtObjectClassInfo::handle(), ownedObjects(), and params().

Referenced by processSub().

void DtObjectMgr::remoteSubscribe ( DtObjectClassInfo classDesc,
const DtAttributeHandleSet attrs,
DtFederateHandle  fedHandle,
bool  isReplacement 
)
protectedvirtual
void DtObjectMgr::remoteUnsubscribe ( DtObjectClassHandle  classHandle,
const DtAttributeHandleSet attrs,
DtFederateHandle  fedHandle 
)
protectedvirtual

Remove a remote subscription to object known database and determine effects on advisories.

References attributeRelevanceSwitch(), DtRtiObject::isDiscovered(), ownedObjects(), and turnUpdatesOff().

Referenced by processSub(), and processUnsub().

void DtObjectMgr::removeAllObj ( DtObjectInstanceHandle  obj)
virtual

Add/Remove/Get objects (superset of all objects including MOM) All objects must be in this set.

References allObj(), myObjects, myObjectsByName, DtRtiObject::objHandle(), and DtRtiObject::objName().

Referenced by deleteObj(), destroyObjectLists(), removeFromAllLists(), retainTsoDeletedObj(), and retainTsoRemovedObj().

void DtObjectMgr::removeClassMulticast ( DtObjectClassInfo classDesc,
float  rate = -1.0 
)
protectedvirtual

Recursively add and remove the DM multicast address of this class and all its subclasses The Rate determines which update rate multicast offsets to join and drop A rate less than zero indicates rate should be retrieved from class A rate equal zero indicates no rate should be used and all offsets are affected.

References connectMgr(), DtObjectClassInfo::destinationAddress(), DtConnectionMgr::dropMulticastGroup(), DtRIDParameters::enableUpdateRateReduction, fom(), DtObjectClassInfo::maxSubscribedRate(), params(), DtFomClassMgr::positionOfRate(), and DtObjectClassInfo::subclasses().

Referenced by unsubscribeAttributes().

bool DtObjectMgr::removedObjectIsRetained ( DtObjectInstanceHandle  objectHandle)
protectedvirtual

Check list of objects that have been removed via TSO delete and are unknown to the federate but whose delete time has not passed yet.

Return boolean: is the specified object retained?

References objectHandle().

Referenced by discoverObject().

void DtObjectMgr::removeFromAllLists ( DtRtiObject object)
virtual
void DtObjectMgr::removeKnownObj ( DtObjectInstanceHandle  obj)
virtual

Add/Remove/Get known objects (registered or discovered) All registered and discovered objects must be in this set.

References knownObj(), myKnownObjs, myKnownObjsByName, DtRtiObject::objHandle(), DtRtiObject::objName(), and DtRtiObject::setIsKnown().

Referenced by deleteObj(), destroyObjectLists(), localDeleteObj(), removeFromAllLists(), retainTsoDeletedObj(), and retainTsoRemovedObj().

void DtObjectMgr::removeLrcManagedObj ( DtObjectInstanceHandle  obj)
virtual

Add/Remove/Get lrc managed objects (at least one LRC managed attribute) All objects with attributes owned by this LRC must be in this set.

References lrcManagedObj(), myLrcManagedObjs, myLrcManagedObjsByName, DtRtiObject::objHandle(), and DtRtiObject::objName().

Referenced by deleteObj(), destroyObjectLists(), processOwnership(), removeFromAllLists(), retainTsoDeletedObj(), and retainTsoRemovedObj().

void DtObjectMgr::removeObjectAssociations ( DtRtiObject object)
protectedvirtual

Remove associations to this object (e.g., regions)

Referenced by destroyObjectLists(), localDeleteObj(), and processDelete().

void DtObjectMgr::removeOwnedObj ( DtObjectInstanceHandle  obj)
virtual

Add/Remove/Get owned objects (at least one owned attribute) All objects with attributes owned by this federate must be in this set.

References myOwnedObjs, myOwnedObjsByName, DtRtiObject::objHandle(), DtRtiObject::objName(), and ownedObj().

Referenced by deleteObj(), destroyObjectLists(), processOwnership(), releaseOwnership(), removeFromAllLists(), retainTsoDeletedObj(), and retainTsoRemovedObj().

void DtObjectMgr::requestClassUpdate ( DtObjectClassHandle  theClass,
const DtAttributeHandleSet theAttributes,
char const *  tag = DtRtiMsg::theDefaultTag,
DtHandle  regionSetHandle = DtDefaultRegionSetHandle 
)
virtual
void DtObjectMgr::requestObjectUpdate ( DtObjectInstanceHandle  theObject,
const DtAttributeHandleSet theAttributes,
char const *  tag = DtRtiMsg::theDefaultTag 
)
virtual
void DtObjectMgr::resendMultiRegister ( DtObjectClassHandle  classHandle)
virtual
void DtObjectMgr::resendRegister ( DtRtiObject obj,
DtBitMask sendMask = 0 
)
virtual

Re-sends register information, if DDM is active then this information could include region and region association information.

Overridden in DtObjectDataDistMgr

References sendRegisterMsg().

Referenced by processLocDelete(), and sendPendingRegister().

void DtObjectMgr::resetOwner ( DtFederateHandle  fedHandle,
DtObjectInstanceHandle  objHandle 
)
protectedvirtual

Reset the owner of the object.

References allObj(), and DtRtiObject::setOwnerHandle().

Referenced by processOwnership().

bool DtObjectMgr::restore ( DtRtiSaveFile file)
virtual
bool DtObjectMgr::restoreInProgress ( ) const
virtual

Note: The advisory switches are disabled by a restore in progress.

They are restored to saved state upon completion of restore. Set/Get restore in progress status

References myRestoreInProgress.

Referenced by addPendingRegister(), addPendingRegisterForObject(), attributeRelevanceSwitch(), attributeScopeSwitch(), and classRelevanceSwitch().

bool DtObjectMgr::restoreObjectList ( DtRtiSaveFile file)
protectedvirtual
void DtObjectMgr::retainTsoDeletedObj ( DtRtiObject obj,
RTI::FedTime const &  time 
)
protectedvirtual

TSO deleted object was prematurely deleted when regulation disabled Hold onto it until deletion time passes in order to process discovery.

References connectMgr(), DtConnectionMgr::logicalTimeFactory(), DtLogicalTimeFactory::makeInitial(), DtRtiObject::objHandle(), removeAllObj(), removeKnownObj(), removeLrcManagedObj(), and removeOwnedObj().

void DtObjectMgr::retainTsoRemovedObj ( DtRtiObject obj,
RTI::FedTime const &  time 
)
protectedvirtual

TSO removed object may be discovered by other federates but should not be rediscovered by this federate.

Hold onto it until deletion time passes in order to prevent rediscovery

References connectMgr(), DtConnectionMgr::logicalTimeFactory(), DtLogicalTimeFactory::makeInitial(), DtRtiObject::objHandle(), removeAllObj(), removeKnownObj(), removeLrcManagedObj(), and removeOwnedObj().

bool DtObjectMgr::save ( DtRtiSaveFile file)
virtual
bool DtObjectMgr::saveObjectList ( DtRtiSaveFile file)
protectedvirtual
unsigned long DtObjectMgr::savePacketLength ( )
protectedvirtual

Return the length of buffer needed to save the state data.

Referenced by save().

void DtObjectMgr::sendBestEffortUpdateMsg ( DtRtiObject obj,
const DtAhvps &  theAttrs,
DtOrderHandle  orderType,
RTI::FedTime const *  theTime,
char const *  tag,
unsigned long  serialNumber,
const MAKRti::DtInetAddr &  destAddr,
unsigned int  offset = 0 
)
protectedvirtual
unsigned long DtObjectMgr::sendDeleteMsg ( DtObjectInstanceHandle  handle,
DtOrderHandle  orderType,
RTI::FedTime const *  theTime,
char const *  tag 
)
protectedvirtual
void DtObjectMgr::sendDiscoverMsg ( DtObjectInstanceHandle  objHandle,
DtObjectClassHandle  classHandle,
DtFederateHandle  owner 
)
protectedvirtual
void DtObjectMgr::sendLocalDeleteMsg ( DtObjectInstanceHandle  handle)
protectedvirtual
void DtObjectMgr::sendNotDiscoveredMsgForSmartForwarding ( DtObjectInstanceHandle  handle,
const DtObjectClassInfo classInfo,
DtFederateHandle  federate,
const DtAttributeHandleSet attributes = 0 
)
virtual
void DtObjectMgr::sendNotDiscoveredMsgForSmartForwarding ( DtObjectInstanceHandle  handle,
const DtObjectClassInfo classInfo,
DtFederateHandle  federate,
const DtAhvps *  attributes 
)
virtual
void DtObjectMgr::sendOwnershipMsg ( DtOwnerMsgKind  kind,
DtObjectInstanceHandle  objHand,
const DtAttributeHandleSet attrs,
DtFederateHandle  targetFed = 0,
char const *  tag = DtRtiMsg::theDefaultTag 
)
protectedvirtual
void DtObjectMgr::sendOwnershipMsg ( DtOwnerMsgKind  kind,
DtObjectInstanceHandle  objHand,
const DtAttributeHandle  attr,
DtFederateHandle  targetFed = 0,
char const *  tag = DtRtiMsg::theDefaultTag 
)
protectedvirtual

Send various types of RTI messages.

References DtQueryInterTransportMsg::create(), DtOwnershipMsgKind, and DtOwnershipMsg::set().

void DtObjectMgr::sendPendingDiscoveries ( )
protectedvirtual
void DtObjectMgr::sendPendingRegister ( )
protectedvirtual
void DtObjectMgr::sendPendingRemovals ( )
protectedvirtual
void DtObjectMgr::sendPendingRequestAttributes ( )
protectedvirtual
void DtObjectMgr::sendPendingStartReg ( )
protectedvirtual
void DtObjectMgr::sendPendingStartUpdates ( )
protectedvirtual
void DtObjectMgr::sendPendingStopReg ( )
protectedvirtual
void DtObjectMgr::sendPendingStopUpdates ( )
protectedvirtual
void DtObjectMgr::sendPendingSubscription ( )
protectedvirtual
void DtObjectMgr::sendPublishMsg ( DtObjectClassHandle  handle,
const DtAttributeHandleSet theSet 
)
protectedvirtual
void DtObjectMgr::sendRegister ( DtRtiObject obj)
virtual

Sends register information, if DDM is active then this information could include region and region association information.

Overridden in DtObjectDataDistMgr

References sendRegisterMsg().

Referenced by registerObj().

void DtObjectMgr::sendRegisterMsg ( DtRtiObject object,
DtBitMask sendMask = 0 
)
protectedvirtual
void DtObjectMgr::sendRegisterMsg ( DtRtiMsg msg,
DtRtiObject object,
DtBitMask sendMask = 0 
)
protectedvirtual
void DtObjectMgr::sendReliableUpdateMsg ( DtRtiObject obj,
const DtAhvps &  theAttrs,
DtOrderHandle  orderType,
RTI::FedTime const *  theTime,
char const *  tag,
unsigned long  serialNumber 
)
protectedvirtual
void DtObjectMgr::sendRemoveDiscoverMsg ( DtObjectInstanceHandle  objHandle,
DtObjectClassHandle  classHandle,
DtFederateHandle  fedHandle 
)
protectedvirtual
void DtObjectMgr::sendRequestDiscoverMsg ( DtObjectInstanceHandle  objHandle,
DtObjectClassHandle  classHandle 
)
protectedvirtual
void DtObjectMgr::sendRequestMsg ( DtRequestType  type,
unsigned long  idOrClass,
const DtAttributeHandleSet theSet,
char const *  tag,
bool  anonymous,
DtHandle  regionSetHandle = DtRtiMsg::theDefaultRegionSetHandle,
DtFederateHandle  fedHandle = 0 
)
protectedvirtual

Send various types of RTI messages.

References DtMultiNameReservedMsg::create(), DtRequestMsgKind, and DtRequestMsg::set().

Referenced by discoverObject(), and requestClassUpdate().

void DtObjectMgr::sendSubscribeMsg ( DtObjectClassHandle  theObj,
bool  isPassive,
bool  replacement,
const DtAttributeHandleSet theSet,
DtFederateHandle  fedHandle 
)
protectedvirtual
void DtObjectMgr::sendSubscribeMsg ( DtObjectClassHandle  theObj,
bool  isPassive,
bool  replacement,
const DtAttributeHandleSet theSet,
DtBitMask sendMask = 0 
)
protectedvirtual
void DtObjectMgr::sendUnpublishMsg ( DtObjectInstanceHandle  handle,
const DtAttributeHandleSet theSet 
)
protectedvirtual
void DtObjectMgr::sendUnsubscribeMsg ( DtObjectClassHandle  handle,
const DtAttributeHandleSet theSet 
)
protectedvirtual
unsigned long DtObjectMgr::sendUpdate ( DtObjectInstanceHandle  theObject,
const DtAhvps &  theAttrs,
RTI::FedTime const *  theTime,
char const *  tag 
)
virtual

Implements update attribute values Checks attributes definition and ownership Return retraction handle serial number.

References DtRtiObject::actualClass(), DtObjectClassInfo::attrByHandle(), errorChecking, and DtRtiObject::owned().

unsigned long DtObjectMgr::sendUpdate ( DtRtiObject theObject,
const DtAhvps &  theAttrs,
RTI::FedTime const *  theTime,
char const *  tag 
)
virtual
void DtObjectMgr::sendUpdateMessage ( DtUpdateMsg update,
DtObjectClassInfo classDesc,
DtUpdateType  updateType,
MAKRti::DtTransportType  trans,
unsigned int  numberAttrs,
MAKRti::DtInetAddr  destAddr = DtInetAddr::inaddrAny(),
unsigned int  offset = 0 
)
protectedvirtual
void DtObjectMgr::setAttributeOrderType ( DtObjectInstanceHandle  theObject,
const DtAttributeHandleSet theAttributes,
MAKRti::DtOrderType  theType 
)
virtual
void DtObjectMgr::setAttributeRelevanceSwitch ( bool  enableSwitch)
virtual

Set/Get value of attributeRelevanceAdvisorySwitch.

References myAttributeRelevanceSwitch.

Referenced by disableAttributeRelevanceSwitch(), and enableAttributeRelevanceSwitch().

void DtObjectMgr::setAttributeScopeSwitch ( bool  enableSwitch)
virtual

Set/Get value of attributeScopeAdvisorySwitch.

References myAttributeScopeSwitch.

Referenced by disableAttributeScopeSwitch(), and enableAttributeScopeSwitch().

void DtObjectMgr::setAttributeTransportType ( DtObjectInstanceHandle  theObject,
const DtAttributeHandleSet theAttributes,
MAKRti::DtTransportType  theType 
)
virtual
void DtObjectMgr::setClassRelevanceSwitch ( bool  enableSwitch)
virtual

Set/Get value of classRelevanceAdvisorySwitch.

References myClassRelevanceSwitch.

Referenced by disableClassRelevanceSwitch(), and enableClassRelevanceSwitch().

void DtObjectMgr::setCreatorFunction ( DtObjectMgrCreator  creator)
static

Register a creator function.

When set, it will be used to create the Object Manager.

References create(), DtBindCreator(), and theCreator.

void DtObjectMgr::setDiscoveredClass ( DtRtiObject object,
DtFederateHandle  federateHandle,
DtObjectClassHandle  classHandle 
)
protectedvirtual

Set the remote federate's discovered class and update the object's remote subscription information.

References DtFomClassMgr::classByHandle(), and fom().

Referenced by collectRemoteSubscriptions(), and processDiscover().

void DtObjectMgr::setInternalCreatorFunction ( DtObjectMgrCreator  fn)
static

Register alternate internal creators.

The RTI proper uses this function to choose from various internal implementations. This function should not be used by plugins as the assignment may be overridden internally. Use the setCreatorFunction.

References create(), and theInternalCreator.

void DtObjectMgr::setRestoreInProgress ( bool  isRestore)
virtual

Note: The advisory switches are disabled by a restore in progress.

They are restored to saved state upon completion of restore. Set/Get restore in progress status

References myRestoreInProgress.

void DtObjectMgr::subscribe ( DtObjectClassHandle  theClass,
const DtAttributeHandleSet attributeList,
bool  active 
)
virtual
int DtObjectMgr::subscribed ( DtObjectClassHandle  handle)
virtual

Returns 1 if subscribed to the class, 0 otherwise.

References DtFomClassMgr::classByHandle(), fom(), and DtObjectClassInfo::subscribed().

void DtObjectMgr::testResign ( RTI::ResignAction const &  theAction)

Called when resigning from a federation to test conditions and to delete owned objects.

References RTI::DELETE_OBJECTS, RTI::DELETE_OBJECTS_AND_RELEASE_ATTRIBUTES, RTI::NO_ACTION, numObjectsOwned(), ownedObjects(), and RTI::RELEASE_ATTRIBUTES.

Referenced by DtFederateMgr::testResign().

void DtObjectMgr::throwIfAcquisitionPending ( DtObjectClassHandle  classHand,
const DtAttributeHandleSet attrs 
)
protectedvirtual

If an acquisition request is pending for an attributes in attrs for any objects known at class classHand, throw RTI::OwnershipAcquisitionPending.

References DtRtiObject::ifAvailRequestedAttrs(), DtRtiObject::knownClassHandle(), myObjects, DtAttributeHandleSet::setIntersection(), DtAttributeHandleSet::setUnion(), DtAttributeHandleSet::size(), and DtRtiObject::uncondRequestedAttrs().

Referenced by publish(), and unpublishAttributes().

void DtObjectMgr::turnUpdatesOff ( DtRtiObject const &  object,
DtAttributeHandleSet const &  oldOnSet 
)
virtual
void DtObjectMgr::turnUpdatesOn ( DtRtiObject const &  object,
DtAttributeHandleSet const &  oldOnSet 
)
virtual
DtObjectInstanceHandle DtObjectMgr::uniqueHandle ( )
virtual

Returns an ObjectHandle that is unique across the federation.

Uniqueness isn't truly guaranteed unless you're using rtiexec mode.

References DtToWString(), findReusableHandle(), DtRIDParameters::maxObjectsPerFederate(), myFreeObjHandle, myReuseIds, nextOffsetId(), params(), and DtAssistantPopupHelper::popupAssistantMessage().

Referenced by registerObj().

void DtObjectMgr::unpublishAttributes ( DtObjectClassHandle  theClass,
DtAttributeHandleSet const &  attributeList 
)
virtual

Explicit unpublish of specified attributes.

References DtFomClassMgr::classByHandle(), and fom().

Referenced by unpublishClass().

void DtObjectMgr::unpublishAttributes ( DtObjectClassInfo classDesc,
DtAttributeHandleSet const &  attributeList,
bool  implicitlyUnpublishPrivilegeToDelete 
)
virtual
void DtObjectMgr::unpublishClass ( DtObjectClassHandle  theObject)
virtual

Unpublishes all attributes but privilege to delete is implicit.

References DtObjectClassInfo::allAttrs(), DtFomClassMgr::classByHandle(), fom(), and unpublishAttributes().

void DtObjectMgr::unsubscribeAttributes ( DtObjectClassHandle  theClass,
DtAttributeHandleSet const &  attributeList 
)
virtual
void DtObjectMgr::unsubscribeAttributes ( DtObjectClassInfo classDesc,
DtAttributeHandleSet const &  attributeList 
)
virtual
void DtObjectMgr::unsubscribeClass ( DtObjectClassHandle  theClass)
virtual
bool DtObjectMgr::useHlaNamePrefix ( )
virtual

Get switch to use HLA prefix for object names.

References DtRIDParameters::enableHlaObjectNamePrefix, and params().

Referenced by DtObjectMgr(), and registerObj().

Member Data Documentation

DtAddrMap DtObjectMgr::myAddrMap
protected

Map of routing addresses by region set handle.

Referenced by destroyObjectLists().

bool DtObjectMgr::myAttributeRelevanceSwitch
protected
bool DtObjectMgr::myAttributeScopeSwitch
protected
bool DtObjectMgr::myClassRelevanceSwitch
protected
MAKRti::DtClock DtObjectMgr::myClock
protected
std::map<DtObjectInstanceHandle, MAKRti::DtTime> DtObjectMgr::myDeletedObjects
protected

Set of objects that have been recently deleted that will not be discovered via update.

Referenced by processDelete(), processUpdate(), and purgeDeletedObjects().

DtFederateMgr* DtObjectMgr::myFederateMgr
protected

Access to the federate manager.

Referenced by DtObjectMgr(), and federateMgr().

DtHandle DtObjectMgr::myFreeObjHandle
protected

The next free object handle.

Referenced by findReusableHandle(), nextOffsetId(), restore(), save(), and uniqueHandle().

MAKRti::DtString DtObjectMgr::myHlaNamePrefix
protected

The HLA object instance name prefix.

Referenced by DtObjectMgr(), and getUniqueName().

DtObjHandleSet DtObjectMgr::myIgnoreObjects
protected

Set of object handles whose next updates should be ignored.

Referenced by ignoreNextUpdate(), and processUpdate().

bool DtObjectMgr::myIsJoined
protected

Manager has performed join processing.

Referenced by isPostJoined(), and postJoinInit().

DtRtiObjectMap DtObjectMgr::myKnownObjs
protected

List of known objects by handle.

Referenced by addKnownObj(), findReusableHandle(), knownObj(), knownObjects(), and removeKnownObj().

MAKRti::DtHashList DtObjectMgr::myKnownObjsByName
protected

List of known objects by name.

Referenced by addKnownObj(), knownObj(), and removeKnownObj().

DtObjectInstanceHandleSet DtObjectMgr::myLocalDeletedObjects
protected

Post processing lists.

Referenced by localDeleteObj(), processMultiRegister(), and processRegister().

DtRtiObjectMap DtObjectMgr::myLrcManagedObjs
protected

List of LRC owned objects by handle.

Referenced by addLrcManagedObj(), lrcManagedObj(), lrcManagedObjects(), and removeLrcManagedObj().

MAKRti::DtHashList DtObjectMgr::myLrcManagedObjsByName
protected

List of LRC owned objects by name.

Referenced by addLrcManagedObj(), lrcManagedObj(), and removeLrcManagedObj().

DtTime DtObjectMgr::myNextPendingDiscTime
protected

Next time we should send pending discovery messages.

Referenced by sendPendingDiscoveries().

DtRtiObjectMap DtObjectMgr::myObjects
protected
MAKRti::DtHashList DtObjectMgr::myObjectsByName
protected

List of all objects by name.

Referenced by addAllObj(), allObj(), and removeAllObj().

DtRtiObjectMap DtObjectMgr::myOwnedObjs
protected
MAKRti::DtHashList DtObjectMgr::myOwnedObjsByName
protected

List of owned objects by name.

Referenced by addOwnedObj(), ownedObj(), and removeOwnedObj().

DtFederateToPendingObjDiscMap DtObjectMgr::myPendingDiscoveries
protected
DtObjectClassMaskMap DtObjectMgr::myPendingDiscoveriesMaskList
protected
DtPendingRequestAttrMap DtObjectMgr::myPendingDivestNotifications
protected

Post processing lists.

Referenced by addPendingDivestNotification(), and invokePendingDivestNotification().

DtObjectInstanceHandleSet DtObjectMgr::myPendingInstRegisterList
protected

Post processing lists.

Referenced by addPendingRegisterForObject(), and sendPendingRegister().

DtFederateToPendingObjDiscMap DtObjectMgr::myPendingNonDiscoveries
protected
DtObjectClassMaskMap DtObjectMgr::myPendingNonDiscoveriesMaskList
protected
DtObjectClassHandleSet DtObjectMgr::myPendingRegisterList
protected

Post processing lists.

Referenced by addPendingRegister(), and sendPendingRegister().

DtObjectClassMaskMap DtObjectMgr::myPendingRegisterMaskList
protected
MAKRti::DtList DtObjectMgr::myPendingRemovals
protected

Post processing lists.

Referenced by addPendingRemoval(), and sendPendingRemovals().

DtPendingRequestAttrMap DtObjectMgr::myPendingRequestAttrs
protected

Post processing lists.

Referenced by addPendingRequestAttrs(), and sendPendingRequestAttributes().

DtObjectClassHandleSet DtObjectMgr::myPendingStartRegList
protected

Post processing lists.

Referenced by addPendingStartReg(), and sendPendingStartReg().

DtObjInstAttrSetPairList DtObjectMgr::myPendingStartUpdatesList
protected

Post processing lists.

Referenced by addPendingStartUpdates(), and sendPendingStartUpdates().

DtObjectClassHandleSet DtObjectMgr::myPendingStopRegList
protected

Post processing lists.

Referenced by addPendingStopReg(), and sendPendingStopReg().

DtObjClassAttrSetPairList DtObjectMgr::myPendingStopUpdatesList
protected

Post processing lists.

Referenced by addPendingStopUpdates(), and sendPendingStopUpdates().

bool DtObjectMgr::myRestoreInProgress
protected

Status of restore.

Referenced by restoreInProgress(), and setRestoreInProgress().

DtObjectClassHandleSet DtObjectMgr::myRetransmitSubClass
protected

Post processing lists.

Referenced by addPendingSubscription(), and sendPendingSubscription().

DtObjectClassMaskMap DtObjectMgr::myRetransmitSubClassMask
protected

Post processing lists.

Referenced by insertSubBitMask(), sendPendingSubscription(), and ~DtObjectMgr().

bool DtObjectMgr::myReuseIds
protected

Unique object IDs have been exhausted, attempt to reuse IDs.

Referenced by uniqueHandle().

DtObjectMgr::DtObjectMgrCreator DtObjectMgr::theCreator = 0
staticprotected

The plugin creator.

Referenced by create(), and setCreatorFunction().

DtObjectMgr::DtObjectMgrCreator DtObjectMgr::theInternalCreator = 0
staticprotected

The internal creator.

Referenced by create(), and setInternalCreatorFunction().


The documentation for this class was generated from the following files:

Document ID: Generated on Fri Mar 14 19:08:55 EDT 2014 from SVN revision 137085
Copyright © 2005-2014 VT MÄK Inc. All Rights Reserved (www.mak.com)