MAK RTIspy API Documentation for HLA 1516
 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  virtual DtFixedGridRegion* localFixedGridRegion(rti1516::RegionHandle regionHandle);
82 #elif defined(DtIFSPEC1516E)
83  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  virtual DtRegionHandle createRegion(DtDimensionHandleSet const & dimHandles);
99 #else
100  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 
114  virtual DtSpaceHandle getAttributeRoutingSpaceHandle(
115  DtAttributeHandle theHandle,
116  DtObjectClassHandle whichClass);
117 
119  virtual DtSpaceHandle getInteractionRoutingSpaceHandle(
120  DtInteractionClassHandle theHandle);
121 
122 #ifdef DtIFSPEC1516
123  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  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 
This class manages the RTI&#39;s start-up configuration using both MTL variables and functions.
Definition: RIDparams.h:87
std::set< DtDimensionHandle > DtDimensionHandleSet
Definition: internalTypes.h:42
DtHandle DtRegionHandle
Definition: internalTypes.h:44
DtHandle DtObjectClassHandle
Definition: internalTypes.h:31
DtHandle DtDimensionHandle
Definition: internalTypes.h:41
DtHandle DtInteractionClassHandle
Definition: internalTypes.h:35
std::set< DimensionHandle > DimensionHandleSet
Definition: Typedefs.h:30
Instances of DtFederateMgr process federation-level messages (such as create, destroy, join, resign, and sync points) and manages the objects responsible for handling general communication, objects, interactions, the FOM, MOM, and data distribution mmg.
Definition: fedMgr.h:84
Instances of DtConnectionMgr manage the communication objects that the RTI will use to either communi...
Definition: connectMgr.h:60
Instances of DtInteractionMgr manage the sending and receiving of interactions.
Definition: interMgr.h:45
Definition: fomMgr.h:53
long DtSpaceHandle
Definition: internalTypes.h:26
The object manager class processes the object management services.
Definition: objMgr.h:90
DtHandle DtAttributeHandle
Definition: internalTypes.h:37
DtHandle DtExtentIndex
Definition: internalTypes.h:46
#define DT_DLL_LRC
Definition: rtiMsConfig.h:126
The declaration of internal types.

Document ID: Generated on Mon Sep 7 15:40:32 EDT 2020 from SVN revision 217499
Copyright © 2005-2020 MAK Technologies Inc. All Rights Reserved (www.mak.com)