12 #ifndef DtObjectClassInfo_H_
13 #define DtObjectClassInfo_H_
21 #include <vlutil/vlHashlist.h>
22 #include <vlutil/vlFedTarget.h>
23 #include <vlutil/vlInetAddr.h>
47 const MAKRti::DtString& semantics);
57 virtual void setFomType(MAKRti::DtFomType type);
58 virtual MAKRti::DtFomType fomType()
const;
61 virtual DtAttrInfo* addAttr(
const char* attrName,
62 MAKRti::DtTransportType transport,
63 MAKRti::DtOrderType order,
64 DtSharingType sharingType,
65 DtFomUpdateType updateType,
66 const MAKRti::DtString& updateCondition,
67 DtOwnershipType ownership,
68 const MAKRti::DtString& semantics,
72 virtual DtAttrInfo* addAttr(
const char* attrName,
73 MAKRti::DtTransportType transport,
74 MAKRti::DtOrderType order,
76 DtSharingType sharingType,
77 DtFomUpdateType updateType,
78 const MAKRti::DtString& updateCondition,
79 DtOwnershipType ownership,
80 const MAKRti::DtString& semantics,
84 virtual DtAttrInfo* mergeAttr(
const char* attrName,
85 MAKRti::DtTransportType transport,
86 MAKRti::DtOrderType order,
87 DtSharingType sharingType,
88 DtFomUpdateType updateType,
89 const MAKRti::DtString& updateCondition,
90 DtOwnershipType ownership,
91 const MAKRti::DtString& semantics);
94 virtual DtAttrInfo* mergeAttr(
const char* attrName,
95 MAKRti::DtTransportType transport,
96 MAKRti::DtOrderType order,
98 DtSharingType sharingType,
99 DtFomUpdateType updateType,
100 const MAKRti::DtString& updateCondition,
101 DtOwnershipType ownership,
102 const MAKRti::DtString& semantics);
105 virtual const char* name()
const;
108 virtual DtSharingType sharing()
const;
109 virtual void setSharing(DtSharingType share);
112 virtual const char* semantics()
const;
113 virtual void setSemantics(
const MAKRti::DtString& sem);
118 virtual bool isName(
const char* name)
const;
123 virtual bool isFullName(
const char* name)
const;
144 virtual bool isMom();
147 virtual bool isRoot();
166 virtual DtAttrInfo* attrByName(
const char* theName);
167 virtual const DtAttrInfo* attrByName(
const char* theName)
const;
172 const char* theName)
const;
175 virtual char* attrName (
179 virtual MAKRti::DtTransportType attrTransport(
183 virtual MAKRti::DtOrderType attrOrder(
197 virtual int numAttributes()
const;
206 DtObjectMgr* objMgr,
bool isReplacement,
bool isRepublish);
208 bool implicitUnpublishPrivilegeToDelete,
DtObjectMgr* objMgr);
221 virtual bool published()
const;
225 #
if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E) || defined(DtIFSPEC1516_2025)
227 bool isReplacement=
false);
229 bool isReplacement=
true);
232 virtual void unsubscribeClass();
233 virtual void unsubscribeAttributes(
237 virtual bool subscribed()
const;
240 virtual bool isPassive()
const;
244 virtual const bool isSubscribed(
246 virtual const bool isActiveSubscribed(
274 virtual void remoteSubscribe(
288 virtual void remoteUnsubscribeAttributes(
294 virtual void removeSubscriptions(
297 bool isResigning =
false);
300 virtual int numRemoteFederatesSubscribed();
303 virtual bool remoteFederateIsSubscribed(
311 virtual const MAKRti::DtHashList& subscribedFederates()
const;
316 virtual bool relevant()
const;
325 virtual const MAKRti::DtInetAddr& destinationAddress()
const;
326 virtual const MAKRti::DtInetAddr& destinationDevice()
const;
327 virtual void setDestination(MAKRti::DtInetAddr addr,
328 MAKRti::DtInetAddr devAddr,
bool inclusive, MAKRti::DtInetAddr oldAddr,
329 MAKRti::DtInetAddr oldDevAddr);
334 virtual void setForcedDestinations(
DtBitMask const& mask,
335 MAKRti::DtTime delay);
339 virtual bool getForcedDestinations(
DtBitMask &mask)
const;
342 virtual void setSubscribedRate(
float rate,
const MAKRti::DtString& name,
bool inclusive);
343 virtual float maxSubscribedRate();
344 virtual const MAKRti::DtString& maxSubscribedRateName();
357 virtual void remoteSubscribeWithRegion(
366 virtual DtHandle remoteRegionSubscription(
371 virtual void addMatchingPub(
DtHandle regSetHandle,
373 virtual void removeMatchingPub(
DtHandle regSetHandle,
378 virtual void moveToOverlapPub(
DtHandle regSetHandle,
380 virtual void moveToMatchingPub(
DtHandle regSetHandle,
384 virtual void addOverlapPub(
DtHandle regSetHandle,
389 virtual void addMatchingSub(
DtHandle regSetHandle,
391 virtual void removeMatchingSub(
DtHandle regSetHandle,
396 virtual void moveToOverlapSub(
DtHandle regSetHandle);
397 virtual void moveToMatchingSub(
DtHandle regSetHandle,
401 virtual void addOverlapSub(
DtHandle regSetHandle,
405 virtual void subscribeByRegion(DtSubRegionSet
const& subRegSet,
407 virtual void unsubscribeByRegion(
DtHandle regSetHandle,
417 virtual int subscribeOverlaps(
DtHandle regSetHandle)
const;
420 virtual int subscribedWithRegions()
const;
424 virtual void incrementUpdateTally();
426 virtual void setUpdateTally(
unsigned long value);
427 virtual unsigned long updateTally()
const;
428 virtual void incrementSentAttributesTally(MAKRti::DtTransportType transport,
429 unsigned int numberAttrs);
430 virtual void setSentAttributesTally(
unsigned long value,
431 MAKRti::DtTransportType transport);
432 virtual unsigned long sentAttributesTally(MAKRti::DtTransportType transport)
const;
434 virtual void incrementReflectTally(MAKRti::DtTransportType transport,
435 unsigned int numberAttrs);
436 virtual void setReflectTally(
unsigned long value,
437 MAKRti::DtTransportType transport);
438 virtual unsigned long reflectTally(MAKRti::DtTransportType transport)
const;
439 virtual void setReflectAttributesTally(
unsigned long value,
440 MAKRti::DtTransportType transport);
441 virtual unsigned long reflectAttributesTally(MAKRti::DtTransportType transport)
const;
449 virtual void print()
const;
457 virtual bool isScaffolding()
const;
467 virtual bool isUnknown()
const;
470 virtual void setIsUnknown(
bool unknown);
484 virtual void addInheritedAttribute(
const DtAttrInfo& attrInfo);
490 virtual void addOwnAttribute(
DtAttrInfo* attrInfo);
499 virtual void inheritMergedAttribute(
const DtAttrInfo& attribute);
511 virtual void throwIfNotDefined(
536 virtual void addSet(MAKRti::DtHashList& setList,
DtHandle regSetHandle,
538 virtual void removeSet(MAKRti::DtHashList& setList,
DtHandle regSetHandle,
540 virtual void moveSet(MAKRti::DtHashList& fromList,
541 MAKRti::DtHashList& toList,
DtHandle regSetHandle);
542 virtual void moveSet(MAKRti::DtHashList& fromList,
543 MAKRti::DtHashList& toList,
DtHandle regSetHandle,
552 virtual void emptyRegionLists();
555 virtual void emptyAttributes();
563 virtual void reIndexAttributesByName(
DtAttrInfo* attrInfo);
570 virtual void nameUpdateCheck();
576 static const char* swapRootName(
const char* name, MAKRti::DtFomType fomType, MAKRti::DtString& adjustedName);
581 static bool sameAttrs(
const std::vector<DtAttrInfo>& left,
const std::vector<DtAttrInfo>& right);
609 unsigned long myUpdateTally;
610 unsigned long myBestEffortReflectTally;
611 unsigned long myReliableReflectTally;
612 unsigned long myBestEffortSentAttributesTally;
613 unsigned long myBestEffortReflectAttributesTally;
614 unsigned long myReliableSentAttributesTally;
615 unsigned long myReliableReflectAttributesTally;
653 MAKRti::DtHashList mySubByRegion;
654 MAKRti::DtHashList myMatchingPubByRegion;
655 MAKRti::DtHashList myOverlapPubByRegion;
656 MAKRti::DtHashList myMatchingSubByRegion;
657 MAKRti::DtHashList myOverlapSubByRegion;
659 MAKRti::DtHashList myActiveSubByRegion;
DtAttributeHandleSet mySubscribedPassiveSet
Definition: objClassInfo.h:631
bool myRegsOn
Have we most recently told the federate to turn on or off registration.
Definition: objClassInfo.h:619
bool myIsMom
Definition: objClassInfo.h:591
DtAttributeHandleStdSet myUsedAttributeHandles
Definition: objClassInfo.h:625
std::map< DtObjectClassHandle, DtObjectClassInfo * > DtObjectClassByHandleMap
Definition: objClassInfo.h:39
std::vector< DtAttrInfo > DtAttrVector
Definition: fomMgr.h:40
MAKRti::DtString myName
Definition: objClassInfo.h:585
DtInteractionClassHandleStdSet myPublishedInteractions
Definition: objClassInfo.h:633
DtAttributeHandle myAvailableAttributeHandle
The available attribute handle which is the maximum of this classes own attributes or any of its subc...
Definition: objClassInfo.h:603
bool myIsRoot
Definition: objClassInfo.h:592
Definition: attrInfo.h:29
DtInteractionClassHandleStdSet mySubscribedInteractions
Definition: objClassInfo.h:634
DtSharingType mySharing
Definition: objClassInfo.h:586
DtAttributeHandleSet myAttributeHandleSet
Definition: objClassInfo.h:627
std::set< DtRegionHandle > DtRegionHandleStdSet
Definition: internalTypes.h:66
MAKRti::DtFomType myFomType
Definition: objClassInfo.h:590
DtAttributeByHandleMap myAttrsByHandle
Definition: objClassInfo.h:621
DtObjectClassHandle myDiscoveredHandle
Definition: objClassInfo.h:589
bool myExplicitPubPrivToDel
Definition: objClassInfo.h:596
DtHandle DtRegionHandle
Definition: internalTypes.h:65
DtHandle DtObjectClassHandle
Definition: internalTypes.h:48
DtObjectClassInfo * myBase
Definition: objClassInfo.h:598
DtObjectClassByNameMap mySubclassByName
Definition: objClassInfo.h:600
static const DtAttributeHandleSet theEmptySet
Definition: objClassInfo.h:669
DtHandle DtDimensionHandle
Definition: internalTypes.h:62
DtHandle DtInteractionClassHandle
Definition: internalTypes.h:52
DtInteractionClassHandleStdSet mySubscribedInteractionsUniversal
Definition: objClassInfo.h:635
bool myIsUnknown
Indicates whether this class is an unknown class, merely present to indicate that it is in other FOM ...
Definition: objClassInfo.h:665
Defines the internal representation of attribute/parameter handle sets.
Definition: attrHandSet.h:30
DtBitMask * myForceDestinationsMask
Create this bit mask to temporarily force destinations after publish.
Definition: objClassInfo.h:647
DtAttributeByNameMap myAttrsByName
Definition: objClassInfo.h:623
std::map< MAKRti::DtString, DtAttrInfo * > DtAttributeByNameMap
Definition: attrInfo.h:233
DtHandle DtFederateHandle
Definition: internalTypes.h:46
MAKRti::DtInetAddr myAddr
Definition: objClassInfo.h:643
DtAttributeByHandleMap myOwnAttrsByHandle
Definition: objClassInfo.h:622
std::set< DtDimensionHandle > DtDimensionHandleStdSet
Definition: internalTypes.h:63
MAKRti::DtTime myForceDestinationsTime
Definition: objClassInfo.h:648
DtAttributeHandleSet myRelevantSet
Attributes that could cause object discovery at a remote federate if they are published or become pub...
Definition: objClassInfo.h:641
std::map< DtAttributeHandle, DtAttrInfo * > DtAttributeByHandleMap
Definition: attrInfo.h:232
MAKRti::DtHashlist myRemoteSubscriptions
Definition: objClassInfo.h:605
long DtSpaceHandle
Definition: internalTypes.h:42
The object manager class processes the object management services.
Definition: objMgr.h:81
DtAttributeByNameMap myOwnAttrsByName
Definition: objClassInfo.h:624
static const unsigned int theMaxAttrs
Definition: objClassInfo.h:670
DtObjectClassHandle myHandle
Definition: objClassInfo.h:588
DtAttributeHandleSet mySubscribedActiveSet
Definition: objClassInfo.h:630
DtObjectClassByHandleMap mySubclassByHandle
Definition: objClassInfo.h:599
unsigned long DtHandle
The internal types.
Definition: internalTypes.h:41
DtHandle DtAttributeHandle
Definition: internalTypes.h:54
std::map< MAKRti::DtString, DtObjectClassInfo * > DtObjectClassByNameMap
Definition: objClassInfo.h:40
bool myIsPassive
Definition: objClassInfo.h:595
std::set< DtInteractionClassHandle > DtInteractionClassHandleStdSet
Definition: internalTypes.h:53
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::set< DtAttributeHandle > DtAttributeHandleStdSet
Definition: internalTypes.h:55
Definition: saveFile.h:21
MAKRti::DtInetAddr myDevAddr
Definition: objClassInfo.h:644
The declaration of internal types.
Definition: objClassInfo.h:36
bool mySubscribed
Definition: objClassInfo.h:593
bool myPublished
Definition: objClassInfo.h:594
MAKRti::DtString mySemantics
Definition: objClassInfo.h:587
Definition: objClassPacket.h:20
DtAttributeHandleSet mySubscribedSet
Definition: objClassInfo.h:629
bool myExplicitUnpubPrivToDel
Definition: objClassInfo.h:597
DtAttributeHandleSet myPublishedSet
Definition: objClassInfo.h:628
MAKRti::DtClock myClock
Definition: objClassInfo.h:649