MAK RTIspy API Documentation for HLA Evolved
fixedGridDdmMgr.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2006 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: fixedGridDdmMgr.h,v $ $Revision: 1.5 $ $State: Exp $
00007 *********************************************************************/
00008 #ifndef fixedGridDdmMgr_H_
00009 #define fixedGridDdmMgr_H_
00010 #ifdef DDM
00011 
00014 
00015 #include "rtiMsConfig.h"
00016 #include "ddmMgr.h"
00017 #include "internalTypes.h"
00018 #include "fixedGrid.h"
00019 
00020 class DtRIDParameters;
00021 class DtConnectionMgr;
00022 class DtObjectMgr;
00023 class DtInteractionMgr;
00024 class DtFomClassMgr;
00025 class DtFixedGridRegion;
00026 
00031 class DT_DLL_LRC DtFixedGridDataDistMgr : public DtDataDistMgr
00032 {
00033 protected:
00034 
00036    DtFixedGridDataDistMgr(DtFederateMgr* fedMgrPtr);
00037 
00038 public:
00039 
00041    virtual ~DtFixedGridDataDistMgr();
00042 
00043 private:
00044    
00046    DtFixedGridDataDistMgr(DtFixedGridDataDistMgr const& );
00047 
00049    DtFixedGridDataDistMgr& operator= (DtFixedGridDataDistMgr const& );
00050 
00051 public:
00052 
00054    virtual void clearRegions();
00055 
00058    virtual void getOverlapAddressSet(DtFixedGridRegion const& region,
00059       DtFixedGrid::DtNetworkAddressSet& addressSet);
00060 
00062    virtual void subscribeObjectClass(DtObjectClassHandle handle, DtFixedGridRegion& region);
00063 
00065    virtual void unsubscribeObjectClass(DtObjectClassHandle handle, DtFixedGridRegion& region);
00066 
00068    virtual void subscribeInteractionClass(DtInteractionClassHandle handle, DtFixedGridRegion& region);
00069 
00071    virtual void unsubscribeInteractionClass(DtInteractionClassHandle handle, DtFixedGridRegion& region);
00072 
00074    virtual DtRegion* localRegion(DtRegionHandle regionHandle);
00075 
00077    virtual DtFixedGridRegion* localFixedGridRegion(DtRegionHandle regionHandle);
00078 
00079 #ifdef DtIFSPEC1516
00080 
00081    virtual DtFixedGridRegion* localFixedGridRegion(rti1516::RegionHandle regionHandle);
00082 #elif defined(DtIFSPEC1516E)
00083 
00084    virtual DtFixedGridRegion* localFixedGridRegion(rti1516e::RegionHandle regionHandle);
00085 #endif
00086 
00088    virtual bool isMemberLocalRegions(DtRegionHandle regionHandle);
00089 
00091    virtual DtRegion* remoteRegion(DtRegionHandle regionHandle);
00092 
00094    virtual bool isMemberRemoteRegions(DtRegionHandle regionHandle);
00095 
00096 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E)
00097 
00098    virtual DtRegionHandle createRegion(DtDimensionHandleSet const & dimHandles);
00099 #else
00100 
00101    virtual DtRegion* createRegion(DtSpaceHandle spaceHandleValue,
00102                                   unsigned long numberOfExtents);
00103 #endif
00104 
00106    virtual void deleteRegion(DtRegion *regionPtr);
00107    virtual void deleteRegion(DtRegionHandle regionHandle);
00108 
00110    virtual void notifyAboutRegionModification(DtRegion* theRegion);
00111    virtual void notifyAboutRegionModification(DtRegionHandle regionHandle);
00112 
00114    virtual DtSpaceHandle getAttributeRoutingSpaceHandle(
00115      DtAttributeHandle   theHandle,
00116      DtObjectClassHandle whichClass);
00117 
00119    virtual DtSpaceHandle getInteractionRoutingSpaceHandle(
00120       DtInteractionClassHandle   theHandle);
00121 
00122 #ifdef DtIFSPEC1516
00123 
00124    virtual void setRangeBounds(DtRegionHandle regionHandle,
00125       DtExtentIndex extentIndex, DtDimensionHandle dimHandle,
00126       unsigned long lower, unsigned long upper);
00127 
00129    virtual void setRangeBounds(DtRegionHandle regionHandle,
00130       DtExtentIndex extentIndex, DtDimBounds const & dimBounds);
00131 
00133    virtual DtDimBounds getRangeBounds(DtRegionHandle regionHandle,
00134       DtExtentIndex extentIndex, DtDimensionHandle dimHandle);
00135 
00137    virtual unsigned long maxUpperBound(DtSpaceHandle spaceHandle,
00138       DtDimensionHandle dimHandle) const;
00139 
00142    virtual bool getDimensionHandleSet(
00143       DtRegionHandle theRegionHandle,
00144       rti1516::DimensionHandleSet& dimSet) const;
00145 
00146 #elif defined(DtIFSPEC1516E)
00147 
00148    virtual void setRangeBounds(DtRegionHandle regionHandle,
00149        DtExtentIndex extentIndex, DtDimensionHandle dimHandle,
00150        unsigned long lower, unsigned long upper);
00151 
00153    virtual void setRangeBounds(DtRegionHandle regionHandle,
00154        DtExtentIndex extentIndex, DtDimBounds const & dimBounds);
00155 
00157    virtual DtDimBounds getRangeBounds(DtRegionHandle regionHandle,
00158        DtExtentIndex extentIndex, DtDimensionHandle dimHandle);
00159 
00161    virtual unsigned long maxUpperBound(DtSpaceHandle spaceHandle,
00162        DtDimensionHandle dimHandle) const;
00163 
00166    virtual bool getDimensionHandleSet(
00167        DtRegionHandle theRegionHandle,
00168        rti1516e::DimensionHandleSet& dimSet) const;
00169 
00170 #endif
00171 
00173    virtual void postTick();
00174 
00175 public:
00176 
00180    static DtDataDistMgr* create(DtFederateMgr* fedMgrPtr);
00181 
00182 protected:
00183 
00185    virtual DtRegionHandle uniqueRegionHandle();
00186 
00188    virtual void addLocalRegion(DtFixedGridRegion* region);
00189 
00191    virtual void removeLocalRegion(DtRegionHandle regionHandle);
00192 
00193 protected:
00194 
00196    typedef std::set<DtFixedGridRegion*> DtFixedGridRegionSet;
00197 
00199    typedef std::map<MAKRti::DtInetAddr, DtFixedGridRegionSet> DtFixedGridAddressRegionMap;
00200 
00202    typedef std::map<DtRegionHandle, DtFixedGridRegion*> DtRegionMap;
00203    
00204 protected:
00205 
00207    DtRegionMap myLocalRegions;
00208 
00210    DtRegionHandle myNextRegionHandle;
00211 
00214    DtFixedGrid myFixedGrid;
00215 
00217    DtFixedGridAddressRegionMap myObjectClassRegionOverlap;
00218 
00220    DtFixedGridAddressRegionMap myInteractionClassRegionOverlap;
00221 };
00222 
00223 #endif //! DDM
00224 #endif //! fixedGridDdmMgr_H_
00225 
00226 

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)