MAK RTIspy API Documentation for HLA Evolved
intClassInfo.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1998 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: intClassInfo.h,v $ $Revision: 1.54 $ $State: Exp $
7 *********************************************************************/
8 
11 
12 #ifndef DtInteractionClassInfo_H_
13 #define DtInteractionClassInfo_H_
14 
15 #include <vlutil/vlFedTarget.h>
16 #include <vlutil/vlList.h>
17 #include <vlutil/vlHashlist.h>
18 #include <vlutil/vlInetAddr.h>
19 #include "rtiMsConfig.h"
20 #include "internalTypes.h"
21 #include "bitMask.h"
22 #include "paramInfo.h"
23 #include "fedTargetHelper.h"
24 
25 class DtRtiSaveFile;
26 class DtParamInfo;
27 class DtInteractionMgr;
28 class DtInteractionRegionSet;
30 
31 
33 {
37 };
38 
39 typedef std::vector<DtParamInfo> DtParamVector;
40 
42 {
43 public:
44 
46  DtInteractionClassInfo(const char* name, DtInteractionClassInfo* base,
48  MAKRti::DtString semantics, MAKRti::DtTransportType transport,
49  MAKRti::DtOrderType order );
50 
53 
55  DtInteractionClassInfo& operator=
56  (const DtInteractionClassInfo& orig);
57 
59  virtual ~DtInteractionClassInfo();
60 
61  virtual void setFomType(MAKRti::DtFomType type);
62  virtual MAKRti::DtFomType fomType() const;
63 
65  virtual void addParam(const char* paramName, const char* semantics,
66  bool addSorted);
67 
69  virtual void addSubclass(DtInteractionClassInfo* sub);
70 
72  virtual DtDimensionHandleSet const & dimensions() const;
73  virtual void setDimensions(DtDimensionHandleSet const & dimList);
74 
76  virtual void addDimension(DtDimensionHandle dimHandle);
77  virtual void removeDimension(DtDimensionHandle dimHandle);
78 
80  virtual const char* name() const;
81 
85  virtual bool isName(const char* name);
87  virtual bool isFullName(const char* name);
88 
90  virtual DtParameterHandle paramHandle(const char* theName);
91 
93  virtual char* paramName(DtParameterHandle theHandle);
94 
96  virtual DtInteractionClassHandle handle() const;
97  virtual void setHandle(DtInteractionClassHandle handleValue);
98 
101  virtual DtInteractionClassHandle discoveredHandle() const;
102  virtual void setDiscoveredHandle(DtInteractionClassHandle handleValue);
103 
105  virtual DtInteractionClassInfo* baseClass() const;
106 
108  virtual void setBaseClass(DtInteractionClassInfo* base);
109 
111  virtual MAKRti::DtList* subclasses();
112 
114  virtual int isOfClass(DtInteractionClassHandle handle) const;
115 
117  virtual void publish(DtInteractionMgr* interMgr);
118  virtual void unpublish();
119 
121  virtual int published() const;
122 
124  virtual void subscribe(bool active);
125  virtual void unsubscribe();
126 
128  virtual int subscribed() const;
129 
132  virtual void remoteSubscribe(
133  DtFederateHandle fedHandle, DtInteractionMgr* interMgr);
134 
137  virtual void remotePassiveSubscribe(
138  DtFederateHandle fedHandle, DtInteractionMgr* interMgr);
139 
142  virtual void remoteUnsubscribe(
143  DtFederateHandle fedHandle, DtInteractionMgr* interMgr,
144  bool forSmartForwarding);
145 
147  virtual bool remoteFederateIsSubscribed(
148  DtFederateHandle fedHandle) const;
149 
151  virtual int numRemoteFederatesSubscribed() const;
152 
154  virtual const MAKRti::DtList& subscribedFederates() const;
155 
157  virtual bool relevant() const;
158 
160  virtual DtParamInfo* paramByName(const char* theName);
161  virtual DtParamInfo* paramByHandle(const DtParameterHandle theHandle);
162 
164  virtual MAKRti::DtTransportType transport() const;
165  virtual void setTransport(MAKRti::DtTransportType theTransport);
166 
167  DtSharingType sharing() const;
168  void setSharing(const DtSharingType sharing );
169 
170  const char* semantics() const;
171  void setSemantics(const MAKRti::DtString& semantics);
172 
174  virtual MAKRti::DtOrderType order() const;
175  virtual void setOrder(MAKRti::DtOrderType theOrder);
176 
178  virtual void setSpaceHandle(DtSpaceHandle spaceHandleValue);
179  virtual DtSpaceHandle spaceHandle() const;
180 
182  virtual MAKRti::DtInetAddr destinationAddress() const;
183  virtual MAKRti::DtInetAddr destinationDevice() const;
184  virtual void setDestination(MAKRti::DtInetAddr addr, MAKRti::DtInetAddr devAddr,
185  bool inclusive, MAKRti::DtInetAddr oldAddr, MAKRti::DtInetAddr oldDevAddr);
186 
188  virtual int subscribedWithRegion() const;
189 
191  virtual int numParameters() const;
192 
194  virtual DtParamVector const& params() const;
195 
198  virtual DtBitMask getDestinations(bool includeBaseClass=true) const;
199 
202  virtual void forceDestinations(DtBitMask const& mask, MAKRti::DtTime delay);
203 
205  virtual void overrideDestinations(DtBitMask const& mask);
206 
208  virtual void clearDestinationOverride();
209 
210 #ifdef DDM
211 
212  virtual int numRemoteFederatesSubscribedWithRegion() const;
213 
217  virtual void remoteSubscribe(
218  DtFederateHandle fedHandle,
219  DtHandle regionSetHandle,
220  DtInteractionMgr* interMgr);
221 
224  virtual bool remoteFederateIsSubscribedWithRegion(
225  DtFederateHandle fedHandle) const;
226  virtual bool remoteFederateIsSubscribedWithRegion(
227  DtFederateHandle fedHandle, DtHandle regionSetHandle) const;
228 
231  virtual void remoteUnsubscribeRegion(DtFederateHandle fedHandle,
232  DtHandle regionSetHandle, DtInteractionMgr* interMgr);
233 
235  virtual DtInteractionRegionSet* subRegionSet();
236  virtual void setSubRegionSet(DtInteractionRegionSet* regSet);
237 
239  virtual DtInteractionRegionSet* pasRegionSet();
240  virtual void setPasRegionSet(DtInteractionRegionSet* regSet);
241 #endif
242 
243 #ifdef DtMOM
244 
245  virtual unsigned long sentTally(MAKRti::DtTransportType transport);
246  virtual void incrementSentTally(MAKRti::DtTransportType transport);
247  virtual void setSentTally(unsigned long value, MAKRti::DtTransportType transport);
248  virtual unsigned long receiveTally(MAKRti::DtTransportType transport);
249  virtual void incrementReceiveTally(MAKRti::DtTransportType transport);
250  virtual void setReceiveTally(unsigned long value, MAKRti::DtTransportType transport);
251 
254  virtual void overrideRelevance();
255 #endif
256 
258  virtual bool save( DtRtiSaveFile& file );
259  virtual bool restore( DtInteractionClassPacket* packet );
260 
262  virtual void print() const;
263 
265  virtual bool sameAncestry(const DtInteractionClassInfo*) const;
266  bool operator==( const DtInteractionClassInfo& other ) const;
267  bool operator!=( const DtInteractionClassInfo& other ) const;
268 
270  bool isScaffolding() const;
271 
274  bool isUnknown() const;
275 
276  void setIsUnknown(bool unknown);
277 
278 
279 protected:
280 
281 
282  static bool sameInteractionClass( const DtInteractionClassInfo&,
283  const DtInteractionClassInfo& );
284  static bool sameParamsUnsorted( const std::vector<DtParamInfo>&,
285  const std::vector<DtParamInfo>& );
286  static bool sameParamsSorted( const std::vector<DtParamInfo>&,
287  const std::vector<DtParamInfo>& );
289  virtual void addRemoteSubscription(DtFederateHandle fedHandle);
290  virtual void addRemotePassiveSubscription(DtFederateHandle fedHandle);
291  virtual void deleteRemoteSubscription(DtFederateHandle fedHandle,
292  bool isForSmartForwarding=false);
293 
294 #ifdef DDM
295 
296 
297  virtual void addRemoteSubscription(DtFederateHandle fedHandle,
298  DtHandle regionSetHandle);
299  virtual void deleteRemoteSubscription(DtFederateHandle fedHandle,
300  DtHandle regionSetHandle);
301 #endif
302 
306  virtual void updateRelevance(DtInteractionMgr* interMgr);
307 
309  void addParamSorted( const char* paramName, MAKRti::DtString semantics);
310  void addParamUnsorted( const char* paramName, MAKRti::DtString semantics);
311 protected:
312 
313  MAKRti::DtString myName;
318  MAKRti::DtFomType myFomType;
322  MAKRti::DtList mySubclasses;
323  MAKRti::DtTransportType myTransport;
324  MAKRti::DtString mySemantics;
326 
327 #ifdef DtMOM
328  bool myRelevantOverride;
329  unsigned long myBestEffortSentTally;
330  unsigned long myBestEffortReceiveTally;
331  unsigned long myReliableSentTally;
332  unsigned long myReliableReceiveTally;
333 #endif
334 
336 
339 
340  MAKRti::DtHashlist myRemoteSubscriptions;
341  MAKRti::DtHashlist myRemotePassiveSubscriptions;
347  MAKRti::DtTime myForceDestinationsTime;
349  MAKRti::DtInetAddr myAddr;
350  MAKRti::DtInetAddr myDevAddr;
351  MAKRti::DtClock myClock;
352 
353 #ifdef DDM
354  MAKRti::DtHashlist myRemoteRegionSubscriptions;
355  DtBitMask myRemoteRegionSubscriberMask;
356  DtBitMask myCombinedSubscriptionMask;
357  DtInteractionRegionSet* mySubRegSet;
358  DtInteractionRegionSet* myPasRegSet;
359 #endif
360 
364 
365 private:
366  static const unsigned int theMaxParams;
367 
368 };
369 
370 #endif

Document ID: Generated on Fri Mar 14 19:08:55 EDT 2014 from SVN revision 137085
Copyright © 2005-2014 VT MÄK Inc. All Rights Reserved (www.mak.com)