![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 2001 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: ddmMgr.h,v $ $Revision: 1.32 $ $State: Exp $ 00007 *********************************************************************/ 00008 #ifndef ddmMgr_H_ 00009 #define ddmMgr_H_ 00010 #ifdef DDM 00011 00014 00015 #include "rtiMsConfig.h" 00016 #include <vlutil/vlHashlist.h> 00017 #include "fomMgr.h" 00018 #include "connectMgr.h" 00019 #include "regionList.h" 00020 #include "dimRangeBounds.h" 00021 00022 class DtRtiSaveFile; 00023 class DtRegion; 00024 class DtFederateMgr; 00025 class DtResignMsg; 00026 00034 class DT_DLL_LRC DtDataDistMgr 00035 { 00036 public: 00038 typedef DtDataDistMgr* (*DtDataDistMgrCreator)(DtFederateMgr* p); 00039 00040 protected: 00041 00043 DtDataDistMgr(DtFederateMgr* fedMgrPtr); 00044 00045 public: 00046 00048 virtual ~DtDataDistMgr(); 00049 00050 private: 00051 00053 DtDataDistMgr(DtDataDistMgr const& ); 00054 00056 DtDataDistMgr& operator= (DtDataDistMgr const& ); 00057 00058 public: 00059 00061 virtual void postJoinInit(); 00062 00064 virtual bool isPostJoined() const; 00065 00067 virtual bool active(); 00068 00070 virtual DtRegion* localRegion(DtRegionHandle regionHandle) = 0; 00071 00073 virtual bool isMemberLocalRegions(DtRegionHandle regionHandle) = 0; 00074 00076 virtual DtRegion* remoteRegion(DtRegionHandle regionHandle) = 0; 00077 00079 virtual bool isMemberRemoteRegions(DtRegionHandle regionHandle) = 0; 00080 00082 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E) 00083 virtual DtRegionHandle createRegion(DtDimensionHandleSet const & dimHandles) = 0; 00084 #else 00085 virtual DtRegion* createRegion(DtSpaceHandle spaceHandleValue, 00086 unsigned long numberOfExtents) = 0; 00087 #endif 00088 00090 virtual void deleteRegion(DtRegion *regionPtr) = 0; 00091 00093 virtual void deleteRegion(DtRegionHandle regionHandle) = 0; 00094 00096 virtual void notifyAboutRegionModification(DtRegion* theRegion) = 0; 00097 00099 virtual void notifyAboutRegionModification(DtRegionHandle regionHandle) = 0; 00100 00102 virtual DtSpaceHandle getAttributeRoutingSpaceHandle( 00103 DtAttributeHandle theHandle, 00104 DtObjectClassHandle whichClass); 00105 00107 virtual DtSpaceHandle getInteractionRoutingSpaceHandle( 00108 DtInteractionClassHandle theHandle); 00109 00110 #ifdef DtIFSPEC1516 00111 00112 virtual void setRangeBounds(DtRegionHandle regionHandle, 00113 DtExtentIndex extentIndex, DtDimensionHandle dimHandle, 00114 unsigned long lower, unsigned long upper) = 0; 00115 virtual void setRangeBounds(DtRegionHandle regionHandle, 00116 DtExtentIndex extentIndex, DtDimBounds const & dimBounds) = 0; 00117 virtual DtDimBounds getRangeBounds(DtRegionHandle regionHandle, 00118 DtExtentIndex extentIndex, DtDimensionHandle dimHandle) = 0; 00119 00122 virtual bool getDimensionHandleSet( 00123 DtRegionHandle theRegionHandle, 00124 rti1516::DimensionHandleSet& dimSet) const = 0; 00125 #elif defined(DtIFSPEC1516E) 00126 00127 virtual void setRangeBounds(DtRegionHandle regionHandle, 00128 DtExtentIndex extentIndex, DtDimensionHandle dimHandle, 00129 unsigned long lower, unsigned long upper) = 0; 00130 virtual void setRangeBounds(DtRegionHandle regionHandle, 00131 DtExtentIndex extentIndex, DtDimBounds const & dimBounds) = 0; 00132 virtual DtDimBounds getRangeBounds(DtRegionHandle regionHandle, 00133 DtExtentIndex extentIndex, DtDimensionHandle dimHandle) = 0; 00134 00137 virtual bool getDimensionHandleSet( 00138 DtRegionHandle theRegionHandle, 00139 rti1516e::DimensionHandleSet& dimSet) const = 0; 00140 #endif 00141 00143 virtual void preTick(); 00144 00146 virtual void postTick(); 00147 00149 virtual void processResign(const DtResignMsg& msg); 00150 00152 virtual bool save(DtRtiSaveFile& file); 00153 00155 virtual void prepareToRestore(); 00156 00158 virtual bool restore( DtRtiSaveFile& file ); 00159 00160 public: 00161 00167 static DtDataDistMgr* create(DtFederateMgr* fedMgrPtr); 00168 00171 static void setCreatorFunction(DtDataDistMgrCreator fn); 00172 00177 static void setInternalCreatorFunction(DtDataDistMgrCreator fn); 00178 00179 protected: 00180 00182 virtual DtFederateMgr* federateMgr(); 00183 virtual DtFederateMgr* federateMgr() const; 00184 00186 virtual DtRIDParameters* params(); 00187 virtual DtRIDParameters* params() const; 00188 00190 virtual DtFomClassMgr* fom(); 00191 virtual DtFomClassMgr* fom() const; 00192 00194 virtual DtConnectionMgr* connectMgr(); 00195 virtual DtConnectionMgr* connectMgr() const; 00196 00198 virtual DtObjectMgr* objMgr(); 00199 virtual DtObjectMgr* objMgr() const; 00200 00202 virtual DtInteractionMgr* interMgr(); 00203 virtual DtInteractionMgr* interMgr() const; 00204 00205 protected: 00206 00208 DtFederateMgr* myFederateMgr; 00209 00211 bool myIsJoined; 00212 00213 protected: 00214 00216 static DtDataDistMgrCreator theCreator; 00217 00219 static DtDataDistMgrCreator theInternalCreator; 00220 }; 00221 00222 #endif 00223 #endif 00224 00225 00226