![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 2001 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: distributedRegion.h,v $ $Revision: 1.6 $ $State: Exp $ 00007 *********************************************************************/ 00008 #ifndef distributedRegion_H_ 00009 #define distributedRegion_H_ 00010 #ifdef DDM 00011 00014 00015 #include "rtiMsConfig.h" 00016 #include "region.h" 00017 #include <vlutil/vlMachineTypes.h> 00018 #include "internalTypes.h" 00019 #include "regionSetList.h" 00020 #include "dimRangeBounds.h" 00021 00022 class DtRtiSaveFile; 00023 class DtSpaceInfo; 00024 class DtRegionRealization; 00025 class DtObjectRegionSet; 00026 class DtInteractionRegionSet; 00027 class DtFomClassMgr; 00028 00034 class DT_DLL_LRC DtDistributedRegion : public DtRegion 00035 { 00036 public: 00037 00039 DtDistributedRegion(); 00040 00042 DtDistributedRegion(DtRegionHandle handleValue, const DtSpaceInfo* space, 00043 DtDimensionHandleSet const & dimHandles, unsigned long numberExtents=1); 00044 00046 DtDistributedRegion(DtRegionHandle regionHandle, const DtSpaceInfo* space, 00047 unsigned long numberExtents); 00048 00050 DtDistributedRegion(DtRegionHandle regionHandle, const DtSpaceInfo* space, 00051 const DtRegionExtent* extentList, unsigned long numberExtents); 00052 00054 virtual ~DtDistributedRegion(); 00055 00056 private: 00057 00059 DtDistributedRegion(DtDistributedRegion const& ); 00060 00062 DtDistributedRegion& operator= (DtDistributedRegion const& ); 00063 00064 public: 00065 00067 virtual unsigned long getRangeLowerBound( 00068 DtExtentIndex extentIndex, 00069 DtDimensionHandle dimensionHandle) const; 00070 virtual void setRangeLowerBound( 00071 DtExtentIndex extentIndex, 00072 DtDimensionHandle dimensionHandle, 00073 unsigned long lowerBound); 00074 00076 virtual unsigned long getRangeUpperBound( 00077 DtExtentIndex extentIndex, 00078 DtDimensionHandle dimensionHandle) const; 00079 virtual void setRangeUpperBound( 00080 DtExtentIndex extentIndex, 00081 DtDimensionHandle dimensionHandle, 00082 unsigned long upperBound); 00083 00085 virtual DtRegionHandle handle() const; 00086 virtual void setHandle(DtRegionHandle handleValue); 00087 00089 virtual const DtSpaceInfo* space() const; 00090 virtual void setSpace(const DtSpaceInfo* space); 00091 00093 virtual DtSpaceHandle getSpaceHandle() const; 00094 00096 virtual DtDimensionHandleSet const & dimensionHandles() const; 00097 00099 virtual bool hasDimension(DtDimensionHandle dimHandle) const; 00100 00102 virtual unsigned long getNumberOfExtents() const; 00103 00105 virtual void commitModifications(); 00106 00108 virtual bool inUse() const; 00109 00111 virtual void addRealization(DtRegionRealization* realization); 00112 virtual void removeRealization(DtRegionHandle handleValue); 00113 00115 virtual bool validForService() const; 00116 00118 virtual bool wasCommited() const; 00119 00121 virtual bool validExtents() const; 00122 00124 virtual unsigned long addExtent(); 00125 00127 virtual void setExtents(const DtRegionExtent* extentList, 00128 unsigned long numberExtents); 00129 virtual void setExtents(std::vector<const DtRegionExtent*> extentList); 00130 virtual const DtRegionExtent* getExtents() const; 00131 00133 virtual void addExtents(const DtRegionExtent* extentList, 00134 unsigned long numberExtents); 00135 00137 virtual void setDimensionExtent(DtExtentIndex extentIndex, 00138 DtDimensionHandle dim, unsigned long lower, unsigned long upper); 00139 00141 virtual void setDimensionExtent(DtExtentIndex extentIndex, 00142 DtDimBounds const & dimBounds); 00143 00145 virtual DtDimBounds getDimensionExtent(DtExtentIndex extentIndex, 00146 DtDimensionHandle dim) const; 00147 00149 virtual bool intersect(const DtDistributedRegion& region) const; 00150 00152 virtual bool intersect(const DtRegionExtent& extent) const; 00153 00155 virtual bool save( DtRtiSaveFile& file, DtFederateHandle handle = 0); 00156 00158 virtual bool restore( DtRtiSaveFile& file, DtFederateHandle& fedHandle, 00159 DtFomClassMgr* fom); 00160 00161 protected: 00162 00164 virtual void createWorkingExtents(); 00165 00167 virtual const DtRegionExtent& extent(DtExtentIndex extentIndex) const; 00168 00169 protected: 00170 00172 DtRegionHandle myHandle; 00173 00175 const DtSpaceInfo* mySpace; 00176 00178 DtDimensionHandleSet myDimensions; 00179 00181 unsigned long myNumberExtents; 00182 00184 DtRegionExtent* myExtents; 00185 00187 DtRegionExtent* myWorkingExtents; 00188 00190 bool myCommited; 00191 00193 bool myValidForService; 00194 00196 MAKRti::DtHashlist myRealizations; 00197 }; 00198 00199 #endif //! DDM 00200 #endif //! distributedRegion