MAK RTIspy API Documentation for HLA 1516
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 <rtiMsConfig.h>
16 #include "paramInfo.h"
17 #include "attrHandSet.h"
18 
19 #include <internalTypes.h>
20 #include <bitMask.h>
21 
22 #include <vlutil/vlFedTarget.h>
23 #include <vlutil/vlHashlist.h>
24 #include <vlutil/vlInetAddr.h>
25 
26 class DtRtiSaveFile;
27 class DtParamInfo;
28 class DtInteractionMgr;
29 class DtInteractionRegionSet;
31 
32 
34 {
38 };
39 
41 {
42 public:
43  typedef std::map<DtInteractionClassHandle, DtInteractionClassInfo*> DtInteractionClassByHandleMap;
44  typedef std::map<MAKRti::DtString, DtInteractionClassInfo*> DtInteractionClassByNameMap;
45 
46 public:
47 
49  DtInteractionClassInfo(const char* name, DtInteractionClassInfo* base,
50  DtInteractionClassHandle handle, DtSharingType sharing,
51  MAKRti::DtString semantics, MAKRti::DtTransportType transport,
52  MAKRti::DtOrderType order );
53 
56 
58  DtInteractionClassInfo& operator=(const DtInteractionClassInfo& orig);
59 
61  virtual ~DtInteractionClassInfo();
62 
64 
65  virtual void setFomType(MAKRti::DtFomType type);
66  virtual MAKRti::DtFomType fomType() const;
68 
70  virtual DtParamInfo* addParam(const char* paramName, const char* semantics, bool addSorted);
71 
73  virtual DtParamInfo* mergeParam(const char* paramName, const char* semantics);
74 
76  virtual void addSubclass(DtInteractionClassInfo* sub);
77 
79 
80  virtual DtDimensionHandleStdSet const & dimensions() const;
81  virtual void setDimensions(DtDimensionHandleStdSet const & dimList);
83 
85 
86  virtual void addDimension(DtDimensionHandle dimHandle);
87  virtual void removeDimension(DtDimensionHandle dimHandle);
89 
91  virtual const char* name() const;
92 
95 
96  virtual bool isName(const char* name) const;
99  virtual bool isFullName(const char* name) const;
101 
103 
104  virtual DtInteractionClassHandle handle() const;
105  virtual void setHandle(DtInteractionClassHandle handleValue);
107 
110 
111  virtual DtInteractionClassHandle discoveredHandle() const;
112  virtual void setDiscoveredHandle(DtInteractionClassHandle handleValue);
114 
116  virtual DtInteractionClassInfo* baseClass() const;
117 
119  virtual void setBaseClass(DtInteractionClassInfo* base);
120 
122 
123  virtual const DtInteractionClassByHandleMap& subclasses() const;
124  virtual DtInteractionClassByHandleMap& subclasses();
126 
128  virtual int isOfClass(DtInteractionClassHandle handle) const;
129 
131  virtual bool isMom();
132 
134  virtual bool isRoot();
135 
137  virtual int numParameters() const;
138 
140  virtual DtParameterByHandleMap const& params() const;
141 
143  virtual DtParameterByHandleMap const& ownParams() const;
144 
146  virtual DtParameterHandleSet const& parameterHandles() const;
147 
149 
150  virtual DtParamInfo* paramByHandle(const DtParameterHandle theHandle);
151  virtual const DtParamInfo* paramByHandle(const DtParameterHandle theHandle) const;
153 
155 
156  virtual DtParamInfo* paramByName(const char* theName);
157  virtual const DtParamInfo* paramByName(const char* theName) const;
159 
161  virtual DtParameterHandle paramHandle(const char* theName);
162 
164  virtual char* paramName(DtParameterHandle theHandle);
165 
167  virtual void publish(DtInteractionMgr* interMgr);
168 
170  virtual void unpublish();
171 
173  virtual int published() const;
174 
176  virtual void subscribe(bool active);
177 
179  virtual void unsubscribe();
180 
182  virtual int subscribed() const;
183 
186  virtual void remoteSubscribe(DtFederateHandle fedHandle, DtInteractionMgr* interMgr);
187 
190  virtual void remotePassiveSubscribe(
191  DtFederateHandle fedHandle, DtInteractionMgr* interMgr);
192 
195  virtual void remoteUnsubscribe(
196  DtFederateHandle fedHandle, DtInteractionMgr* interMgr, bool forSmartForwarding);
197 
199  virtual bool remoteFederateIsSubscribed(DtFederateHandle fedHandle) const;
200 
202  virtual int numRemoteFederatesSubscribed() const;
203 
205  virtual const MAKRti::DtList& subscribedFederates() const;
206 
208  virtual bool relevant() const;
209 
211 
212  virtual MAKRti::DtTransportType transport() const;
213  virtual void setTransport(MAKRti::DtTransportType theTransport);
215 
217 
218  DtSharingType sharing() const;
219  void setSharing(const DtSharingType sharing );
221 
223 
224  const char* semantics() const;
225  void setSemantics(const MAKRti::DtString& semantics);
227 
229 
230  virtual MAKRti::DtOrderType order() const;
231  virtual void setOrder(MAKRti::DtOrderType theOrder);
233 
235 
236  virtual void setSpaceHandle(DtSpaceHandle spaceHandleValue);
237  virtual DtSpaceHandle spaceHandle() const;
238  //2}
239 
241  virtual MAKRti::DtInetAddr destinationAddress() const;
242 
244  virtual MAKRti::DtInetAddr destinationDevice() const;
245 
247  virtual void setDestination(MAKRti::DtInetAddr addr, MAKRti::DtInetAddr devAddr,
248  bool inclusive, MAKRti::DtInetAddr oldAddr, MAKRti::DtInetAddr oldDevAddr);
249 
251  virtual int subscribedWithRegion() const;
252 
255  virtual DtBitMask getDestinations(bool includeBaseClass=true) const;
256 
259  virtual void forceDestinations(DtBitMask const& mask, MAKRti::DtTime delay);
260 
262  virtual void overrideDestinations(DtBitMask const& mask);
263 
265  virtual void clearDestinationOverride();
266 
267 #ifdef DDM
268  virtual int numRemoteFederatesSubscribedWithRegion() const;
270 
273  virtual void remoteSubscribe(DtFederateHandle fedHandle, DtHandle regionSetHandle, DtInteractionMgr* interMgr);
274 
276 
277  virtual bool remoteFederateIsSubscribedWithRegion(DtFederateHandle fedHandle) const;
278  virtual bool remoteFederateIsSubscribedWithRegion(DtFederateHandle fedHandle, DtHandle regionSetHandle) const;
280 
283  virtual void remoteUnsubscribeRegion(DtFederateHandle fedHandle, DtHandle regionSetHandle, DtInteractionMgr* interMgr);
284 
286 
287  virtual DtInteractionRegionSet* subRegionSet();
288  virtual const DtInteractionRegionSet* subRegionSet() const;
290 
292  virtual void setSubRegionSet(DtInteractionRegionSet* regSet);
293 
295 
296  virtual DtInteractionRegionSet* pasRegionSet();
297  virtual const DtInteractionRegionSet* pasRegionSet() const;
299 
301  virtual void setPasRegionSet(DtInteractionRegionSet* regSet);
302 #endif
303 
304 #ifdef DtMOM
305 
307 
308  virtual unsigned long sentTally(MAKRti::DtTransportType transport) const;
309  virtual void incrementSentTally(MAKRti::DtTransportType transport);
310  virtual void setSentTally(unsigned long value, MAKRti::DtTransportType transport);
311  virtual unsigned long receiveTally(MAKRti::DtTransportType transport) const;
312  virtual void incrementReceiveTally(MAKRti::DtTransportType transport);
313  virtual void setReceiveTally(unsigned long value, MAKRti::DtTransportType transport);
315 
318  virtual void overrideRelevance();
319 #endif
320 
322  virtual bool save( DtRtiSaveFile& file );
323 
325  virtual bool restore(DtInteractionClassPacket* packet);
326 
328  virtual void print() const;
329 
331 
332  virtual bool sameAncestry(const DtInteractionClassInfo*) const;
333  bool operator==( const DtInteractionClassInfo& other ) const;
334  bool operator!=( const DtInteractionClassInfo& other ) const;
336 
338  virtual bool isScaffolding() const;
339 
344  virtual bool diffClass(const DtInteractionClassInfo& classInfo, DtParameterByHandleMap& diff) const;
345 
346 
349  virtual bool isUnknown() const;
350 
352  virtual void setIsUnknown(bool unknown);
353 
356  virtual bool sameInteractionClass(const DtInteractionClassInfo& interInfo, DtParameterByHandleMap* collectParametersToMerge) const;
357 
360  virtual bool sameParameters(const DtParameterByHandleMap& paramHandles, DtParameterByHandleMap* collectParametersToMerge) const;
361 
365  virtual bool diffParameters(const DtInteractionClassInfo& classInfo, DtParameterByHandleMap& diff) const;
366 
367 public:
368 
371  static const char* swapRootName(const char* name, MAKRti::DtFomType fomType, MAKRti::DtString& adjustedName);
372 
373 protected:
374 
376 
377  virtual void addRemoteSubscription(DtFederateHandle fedHandle);
378  virtual void addRemotePassiveSubscription(DtFederateHandle fedHandle);
379  virtual void deleteRemoteSubscription(DtFederateHandle fedHandle, bool isForSmartForwarding=false);
381 
382 #ifdef DDM
383 
385  virtual void addRemoteSubscription(DtFederateHandle fedHandle, DtHandle regionSetHandle);
386  virtual void deleteRemoteSubscription(DtFederateHandle fedHandle, DtHandle regionSetHandle);
388 #endif
389 
391  virtual void inheritMergedParameter(const DtParamInfo& param);
392 
396  virtual void updateRelevance(DtInteractionMgr* interMgr);
397 
400  virtual void reIndexParametersByName(DtParamInfo* paramInfo);
401 
403  virtual void nameUpdateCheck();
404 
406  virtual void emptyParameters();
407 
409 
410  void updateAvailableParameterHandle(DtParameterHandle paramHandle);
411  void updateAvailableParameterHandles(const DtParameterHandleStdSet& handles);
413 
415  void addInheritedParameters(const DtInteractionClassInfo& baseClass);
416 
418  void addInheritedParameter(const DtParamInfo& paramInfo);
419 
421  void addOwnParameter(DtParamInfo* paramInfo);
422 
424 
425  void addUsedSubClassParameter(DtParameterHandle handle);
426  void addUsedSubClassParameters(const DtParameterHandleStdSet& handles);
428 
429 protected:
430 
431  MAKRti::DtString myName;
436  MAKRti::DtFomType myFomType;
437  bool myIsMom;
438  bool myIsRoot;
444  MAKRti::DtTransportType myTransport;
445  MAKRti::DtString mySemantics;
446  DtSharingType mySharing;
447 
450 
451 #ifdef DtMOM
452  bool myRelevantOverride;
453  unsigned long myBestEffortSentTally;
454  unsigned long myBestEffortReceiveTally;
455  unsigned long myReliableSentTally;
456  unsigned long myReliableReceiveTally;
457 #endif
458 
459  MAKRti::DtOrderType myOrder;
460 
466 
468 
470 
471  MAKRti::DtHashlist myRemoteSubscriptions;
472  MAKRti::DtHashlist myRemotePassiveSubscriptions;
478  MAKRti::DtTime myForceDestinationsTime;
480  MAKRti::DtInetAddr myAddr;
481  MAKRti::DtInetAddr myDevAddr;
482  MAKRti::DtClock myClock;
483 
484 #ifdef DDM
485  MAKRti::DtHashlist myRemoteRegionSubscriptions;
486  DtBitMask myRemoteRegionSubscriberMask;
487  DtBitMask myCombinedSubscriptionMask;
488  DtInteractionRegionSet* mySubRegSet;
489  DtInteractionRegionSet* myPasRegSet;
490 #endif
491 
495 
496 private:
497  static const unsigned int theMaxParams;
498 
499 };
500 
501 #endif
Definition: paramInfo.h:24
bool myIsRoot
Definition: intClassInfo.h:438
DtInteractionClassByNameMap mySubclassesByName
Definition: intClassInfo.h:443
DtDimensionHandleStdSet myDimensions
Definition: intClassInfo.h:435
MAKRti::DtTime myForceDestinationsTime
Definition: intClassInfo.h:478
DtParameterByNameMap myParamsByName
Definition: intClassInfo.h:463
std::map< MAKRti::DtString, DtParamInfo * > DtParameterByNameMap
Definition: paramInfo.h:95
MAKRti::DtTransportType myTransport
Definition: intClassInfo.h:444
std::map< MAKRti::DtString, DtInteractionClassInfo * > DtInteractionClassByNameMap
Definition: intClassInfo.h:44
DtBitMask * myOverrideDestinationsMask
Create this bit mask to permanently override destinations.
Definition: intClassInfo.h:477
DtParameterHandleSet myParameterHandleSet
Definition: intClassInfo.h:467
DtInteractionClassInfo * myBase
Definition: intClassInfo.h:441
bool myRelevant
Definition: intClassInfo.h:479
Definition: intClassInfo.h:37
MAKRti::DtFomType myFomType
Definition: intClassInfo.h:436
DtHandle DtDimensionHandle
Definition: internalTypes.h:62
DtBitMask * myForceDestinationsMask
Create this bit mask to temporarily force destinations after publish.
Definition: intClassInfo.h:475
DtHandle DtInteractionClassHandle
Definition: internalTypes.h:52
Definition: intClassInfo.h:35
DtSubcribeInteractionType
Definition: intClassInfo.h:33
MAKRti::DtClock myClock
Definition: intClassInfo.h:482
MAKRti::DtInetAddr myAddr
Definition: intClassInfo.h:480
MAKRti::DtInetAddr myDevAddr
Definition: intClassInfo.h:481
Defines the internal representation of attribute/parameter handle sets.
Definition: attrHandSet.h:30
bool myIsUnknown
Indicates whether this class is an unknown class, merely present to indicate that it is in other FOM ...
Definition: intClassInfo.h:494
MAKRti::DtHashlist myRemotePassiveSubscriptions
Definition: intClassInfo.h:472
Instances of DtInteractionMgr manage the sending and receiving of interactions.
Definition: interMgr.h:46
DtHandle DtFederateHandle
Definition: internalTypes.h:46
MAKRti::DtString myName
Definition: intClassInfo.h:431
DtSpaceHandle mySpaceHandle
Definition: intClassInfo.h:434
std::set< DtDimensionHandle > DtDimensionHandleStdSet
Definition: internalTypes.h:63
bool myIsMom
Definition: intClassInfo.h:437
MAKRti::DtHashlist myRemoteSubscriptions
Definition: intClassInfo.h:471
int myFirstParam
Definition: intClassInfo.h:469
long DtSpaceHandle
Definition: internalTypes.h:42
DtParameterHandleStdSet myUsedParameterHandles
Definition: intClassInfo.h:465
int myPublished
Definition: intClassInfo.h:440
MAKRti::DtString mySemantics
Definition: intClassInfo.h:445
DtParameterByHandleMap myParamsByHandle
Definition: intClassInfo.h:461
DtParameterByHandleMap myOwnParamsByHandle
Definition: intClassInfo.h:462
DtSubcribeInteractionType mySubscribed
Definition: intClassInfo.h:439
Definition: intClassInfo.h:40
unsigned long DtHandle
The internal types.
Definition: internalTypes.h:41
DtSharingType mySharing
Definition: intClassInfo.h:446
DtInteractionClassHandle myHandle
Definition: intClassInfo.h:432
DtBitMask represents a variable length bit-field which may be used to represent an array of boolean d...
Definition: bitMask.h:24
#define DT_DLL_LRC
Definition: rtiMsConfig.h:155
std::map< DtInteractionClassHandle, DtInteractionClassInfo * > DtInteractionClassByHandleMap
Definition: intClassInfo.h:43
Definition: saveFile.h:21
DtInteractionClassHandle myDiscoveredHandle
Definition: intClassInfo.h:433
The declaration of internal types.
DtHandle DtParameterHandle
Definition: internalTypes.h:56
std::map< DtParameterHandle, DtParamInfo * > DtParameterByHandleMap
Definition: paramInfo.h:94
MAKRti::DtOrderType myOrder
Definition: intClassInfo.h:459
Definition: intClassPacket.h:20
DtParameterHandle myAvailableParameterHandle
The available parameter handle which is the maximum of this classes own parameters or any of its subc...
Definition: intClassInfo.h:449
DtParameterByNameMap myOwnParamsByName
Definition: intClassInfo.h:464
DtInteractionClassByHandleMap mySubclassByHandle
Definition: intClassInfo.h:442
DtBitMask myRemoteSubscriberMask
Definition: intClassInfo.h:473
std::set< DtParameterHandle > DtParameterHandleStdSet
Definition: internalTypes.h:57
static const unsigned int theMaxParams
Definition: intClassInfo.h:497
Definition: intClassInfo.h:36

Document ID: Generated on Sun Jul 20 16:15:30 EDT 2025 from SVN revision 277985
Copyright © 2005-2025 MAK Technologies Inc. All Rights Reserved (www.mak.com)