MAK RTIspy API Documentation for HLA 1516
distributedRegion.h
Go to the documentation of this file.
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

Document ID: Generated on Thu Jun 14 14:15:04 EDT 2012 from SVN revision 116116
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)