As mentioned in Introduction to the RTIspy API, the DtRtiAmbassadorImplementor delegates to, or uses, various manager classes and other objects to perform most of the actual implementation of RTI services.
The managers are also where most of the state of the LRC resides. The managers are:
-
DtFederateManager (defined in fedMgr.h) manages most of the federation management services, like join, resign, and synchronization points, as well as tick(). It also reads the FED file (which occurs within a join call).
-
DtObjectManager (objMgr.h) manages most of the object management and ownership management services. It also handles the object-related declaration management functions, in conjunction with the DtFomClassManager. It maintains a list of DtRtiObjects (obj.h) representing all known objects in the federation. Each DtRtiObject stores all of the bookkeeping information associated with that object - known class, actual class, ownership information for each attribute instance, and so on.
-
DtInteractionManager (interMgr.h) handles the interaction-related declaration management and object management services.
-
DtTimeManager (timeMgr.h) manages time management services and synchronizes the advancement of time with the federation execution.
-
DtDataDistMgr (ddmMgr.h) manages the DDM services that directly affect regions (for example, create, delete, and notification). The object and interaction managers use specialized derived classes (which add DDM functionality) to handle the DDM services that are tied to objects and interactions (for example, register object with region and send interaction with region).
-
DtMomManager (momMgr.h) manages the RTI's MOM objects (federation and federate) and handles the MOM interactions.
-
DtConnectionMgr (connectMgr.h) manages the RTI's connections to other federates and to the LRC. In the default implementation, connections are network based, but in subclasses, other kinds of connections are possible.
-
DtFomClassManager (fomMgr.h) manages a hierarchy of class descriptors (DtObjectClassInfo, and DtInterClassInfo, defined in objClassInfo.h and intClassInfo.h respectively) mirroring the FOM's class hierarchy. (The DtFomClassManager is initialized by reading the FED file.) These objects store elements of RTI state that are associated with FOM classes, attributes and parameters, such as, information about which classes and attributes are currently published and subscribed, default transport type for each attribute, and so on. This manager also implements the name and handle mapping services of the RTI.
The DtFederateManager is instantiated by the RTI ambassador DtRtiAmbassadorImplementor. The DtFederateManager instantiates the DtConnectionMgr. The DtFederateManager and DtConnectionMgr are needed by both joined and unjoined federates. The other managers are not instantiated until the joinFederationExecution() call, since they are only used by a joined federate, and depend on FOM data, which is not available until the federate is joined. The RTI adds DDM functionality to the DtObjectManager and the DtInteractionManager by deriving new classes DtObjectDataDistMgr (objDdmMgr.h) and DtInterDataDistMgr (interDdmMgr.h). These classes are further derived for the 1.3 and 1516 specifications. When DDM services are enabled, these classes are instantiated instead of the base classes. When DDM services are disabled, the base classes are instantiated.
Pointers to all of the managers are available through DtRtiAmbassadorImplementor's accessors.
For information about the various functions that you can use to inspect or alter the portion of the LRC's state managed by each manager, please see the class definitions for the managers.
- Note
- The 1516 RTIspy APIs have the same internal components and managers as the 1.3 RTIspy API. The classes may have been modified to some degree (for example, RTI type replacement), but they essentially perform the same functions.
[<< Introduction to the RTIspy API] [Home] [Top of Page] [Initializing a Plug-in >>]