MAK RTIspy API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
fixedGridDdmMgr.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2006 MAK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: fixedGridDdmMgr.h,v $ $Revision: 1.5 $ $State: Exp $
7 *********************************************************************/
8 #ifndef fixedGridDdmMgr_H_
9 #define fixedGridDdmMgr_H_
10 #ifdef DDM
11 
14 
15 #include "rtiMsConfig.h"
16 #include "ddmMgr.h"
17 #include "internalTypes.h"
18 #include "fixedGrid.h"
19 
20 class DtRIDParameters;
21 class DtConnectionMgr;
22 class DtObjectMgr;
23 class DtInteractionMgr;
24 class DtFomClassMgr;
25 class DtFixedGridRegion;
26 
31 class DT_DLL_LRC DtFixedGridDataDistMgr : public DtDataDistMgr
32 {
33 protected:
34 
36  DtFixedGridDataDistMgr(DtFederateMgr* fedMgrPtr);
37 
38 public:
39 
41  virtual ~DtFixedGridDataDistMgr();
42 
43 private:
44 
46  DtFixedGridDataDistMgr(DtFixedGridDataDistMgr const& );
47 
49  DtFixedGridDataDistMgr& operator= (DtFixedGridDataDistMgr const& );
50 
51 public:
52 
54  virtual void clearRegions();
55 
58  virtual void getOverlapAddressSet(DtFixedGridRegion const& region,
59  DtFixedGrid::DtNetworkAddressSet& addressSet);
60 
62  virtual void subscribeObjectClass(DtObjectClassHandle handle, DtFixedGridRegion& region);
63 
65  virtual void unsubscribeObjectClass(DtObjectClassHandle handle, DtFixedGridRegion& region);
66 
68  virtual void subscribeInteractionClass(DtInteractionClassHandle handle, DtFixedGridRegion& region);
69 
71  virtual void unsubscribeInteractionClass(DtInteractionClassHandle handle, DtFixedGridRegion& region);
72 
74  virtual DtRegion* localRegion(DtRegionHandle regionHandle);
75 
77  virtual DtFixedGridRegion* localFixedGridRegion(DtRegionHandle regionHandle);
78 
79 #ifdef DtIFSPEC1516
80 
81  virtual DtFixedGridRegion* localFixedGridRegion(rti1516::RegionHandle regionHandle);
82 #elif defined(DtIFSPEC1516E)
83 
84  virtual DtFixedGridRegion* localFixedGridRegion(rti1516e::RegionHandle regionHandle);
85 #endif
86 
88  virtual bool isMemberLocalRegions(DtRegionHandle regionHandle);
89 
91  virtual DtRegion* remoteRegion(DtRegionHandle regionHandle);
92 
94  virtual bool isMemberRemoteRegions(DtRegionHandle regionHandle);
95 
96 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E)
97 
98  virtual DtRegionHandle createRegion(DtDimensionHandleSet const & dimHandles);
99 #else
100 
101  virtual DtRegion* createRegion(DtSpaceHandle spaceHandleValue,
102  unsigned long numberOfExtents);
103 #endif
104 
106  virtual void deleteRegion(DtRegion *regionPtr);
107  virtual void deleteRegion(DtRegionHandle regionHandle);
108 
110  virtual void notifyAboutRegionModification(DtRegion* theRegion);
111  virtual void notifyAboutRegionModification(DtRegionHandle regionHandle);
112 
115  DtAttributeHandle theHandle,
116  DtObjectClassHandle whichClass);
117 
120  DtInteractionClassHandle theHandle);
121 
122 #ifdef DtIFSPEC1516
123 
124  virtual void setRangeBounds(DtRegionHandle regionHandle,
125  DtExtentIndex extentIndex, DtDimensionHandle dimHandle,
126  unsigned long lower, unsigned long upper);
127 
129  virtual void setRangeBounds(DtRegionHandle regionHandle,
130  DtExtentIndex extentIndex, DtDimBounds const & dimBounds);
131 
133  virtual DtDimBounds getRangeBounds(DtRegionHandle regionHandle,
134  DtExtentIndex extentIndex, DtDimensionHandle dimHandle);
135 
137  virtual unsigned long maxUpperBound(DtSpaceHandle spaceHandle,
138  DtDimensionHandle dimHandle) const;
139 
142  virtual bool getDimensionHandleSet(
143  DtRegionHandle theRegionHandle,
144  rti1516::DimensionHandleSet& dimSet) const;
145 
146 #elif defined(DtIFSPEC1516E)
147 
148  virtual void setRangeBounds(DtRegionHandle regionHandle,
149  DtExtentIndex extentIndex, DtDimensionHandle dimHandle,
150  unsigned long lower, unsigned long upper);
151 
153  virtual void setRangeBounds(DtRegionHandle regionHandle,
154  DtExtentIndex extentIndex, DtDimBounds const & dimBounds);
155 
157  virtual DtDimBounds getRangeBounds(DtRegionHandle regionHandle,
158  DtExtentIndex extentIndex, DtDimensionHandle dimHandle);
159 
161  virtual unsigned long maxUpperBound(DtSpaceHandle spaceHandle,
162  DtDimensionHandle dimHandle) const;
163 
166  virtual bool getDimensionHandleSet(
167  DtRegionHandle theRegionHandle,
168  rti1516e::DimensionHandleSet& dimSet) const;
169 
170 #endif
171 
173  virtual void postTick();
174 
175 public:
176 
180  static DtDataDistMgr* create(DtFederateMgr* fedMgrPtr);
181 
182 protected:
183 
185  virtual DtRegionHandle uniqueRegionHandle();
186 
188  virtual void addLocalRegion(DtFixedGridRegion* region);
189 
191  virtual void removeLocalRegion(DtRegionHandle regionHandle);
192 
193 protected:
194 
196  typedef std::set<DtFixedGridRegion*> DtFixedGridRegionSet;
197 
199  typedef std::map<MAKRti::DtInetAddr, DtFixedGridRegionSet> DtFixedGridAddressRegionMap;
200 
202  typedef std::map<DtRegionHandle, DtFixedGridRegion*> DtRegionMap;
203 
204 protected:
205 
207  DtRegionMap myLocalRegions;
208 
210  DtRegionHandle myNextRegionHandle;
211 
214  DtFixedGrid myFixedGrid;
215 
217  DtFixedGridAddressRegionMap myObjectClassRegionOverlap;
218 
220  DtFixedGridAddressRegionMap myInteractionClassRegionOverlap;
221 };
222 
223 #endif
224 #endif
225 
226 

Document ID: Generated on Wed Mar 11 20:26:49 EDT 2015 from SVN revision 150939
Copyright © 2005-2015 VT MÄK Inc. All Rights Reserved (www.mak.com)