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

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)