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();
364 virtual void remoteSubscribeWithRegion(
373 virtual DtHandle remoteRegionSubscription(
378 virtual void addMatchingPub(
DtHandle regSetHandle,
380 virtual void removeMatchingPub(
DtHandle regSetHandle,
385 virtual void moveToOverlapPub(
DtHandle regSetHandle,
387 virtual void moveToMatchingPub(
DtHandle regSetHandle,
391 virtual void addOverlapPub(
DtHandle regSetHandle,
396 virtual void addMatchingSub(
DtHandle regSetHandle,
398 virtual void removeMatchingSub(
DtHandle regSetHandle,
403 virtual void moveToOverlapSub(
DtHandle regSetHandle);
404 virtual void moveToMatchingSub(
DtHandle regSetHandle,
408 virtual void addOverlapSub(
DtHandle regSetHandle,
412 virtual void subscribeByRegion(DtSubRegionSet
const& subRegSet,
414 virtual void unsubscribeByRegion(
DtHandle regSetHandle,
424 virtual int subscribeOverlaps(
DtHandle regSetHandle)
const;
427 virtual int subscribedWithRegions()
const;
431 virtual void incrementUpdateTally();
433 virtual void setUpdateTally(
unsigned long value);
434 virtual unsigned long updateTally()
const;
435 virtual void incrementSentAttributesTally(MAKRti::DtTransportType transport,
436 unsigned int numberAttrs);
437 virtual void setSentAttributesTally(
unsigned long value,
438 MAKRti::DtTransportType transport);
439 virtual unsigned long sentAttributesTally(MAKRti::DtTransportType transport)
const;
441 virtual void incrementReflectTally(MAKRti::DtTransportType transport,
442 unsigned int numberAttrs);
443 virtual void setReflectTally(
unsigned long value,
444 MAKRti::DtTransportType transport);
445 virtual unsigned long reflectTally(MAKRti::DtTransportType transport)
const;
446 virtual void setReflectAttributesTally(
unsigned long value,
447 MAKRti::DtTransportType transport);
448 virtual unsigned long reflectAttributesTally(MAKRti::DtTransportType transport)
const;
456 virtual void print()
const;
464 virtual bool isScaffolding()
const;
474 virtual bool isUnknown()
const;
477 virtual void setIsUnknown(
bool unknown);
491 virtual void addInheritedAttribute(
const DtAttrInfo& attrInfo);
497 virtual void addOwnAttribute(
DtAttrInfo* attrInfo);
507 virtual void inheritMergedAttribute(
const DtAttrInfo& attribute);
519 virtual void throwIfNotDefined(
544 virtual void addSet(MAKRti::DtHashList& setList,
DtHandle regSetHandle,
546 virtual void removeSet(MAKRti::DtHashList& setList,
DtHandle regSetHandle,
548 virtual void moveSet(MAKRti::DtHashList& fromList,
549 MAKRti::DtHashList& toList,
DtHandle regSetHandle);
550 virtual void moveSet(MAKRti::DtHashList& fromList,
551 MAKRti::DtHashList& toList,
DtHandle regSetHandle,
560 virtual void emptyRegionLists();
563 virtual void emptyAttributes();
571 virtual void reIndexAttributesByName(
DtAttrInfo* attrInfo);
578 virtual void nameUpdateCheck();
584 static const char* swapRootName(
const char* name, MAKRti::DtFomType fomType, MAKRti::DtString& adjustedName);
589 static bool sameAttrs(
const std::vector<DtAttrInfo>& left,
const std::vector<DtAttrInfo>& right);
617 unsigned long myUpdateTally;
618 unsigned long myBestEffortReflectTally;
619 unsigned long myReliableReflectTally;
620 unsigned long myBestEffortSentAttributesTally;
621 unsigned long myBestEffortReflectAttributesTally;
622 unsigned long myReliableSentAttributesTally;
623 unsigned long myReliableReflectAttributesTally;
663 MAKRti::DtHashList mySubByRegion;
664 MAKRti::DtHashList myMatchingPubByRegion;
665 MAKRti::DtHashList myOverlapPubByRegion;
666 MAKRti::DtHashList myMatchingSubByRegion;
667 MAKRti::DtHashList myOverlapSubByRegion;
669 MAKRti::DtHashList myActiveSubByRegion;
DtAttributeHandleSet mySubscribedPassiveSet
Definition: objClassInfo.h:639
bool myRegsOn
Have we most recently told the federate to turn on or off registration.
Definition: objClassInfo.h:627
bool myIsMom
Definition: objClassInfo.h:599
DtAttributeHandleStdSet myUsedAttributeHandles
Definition: objClassInfo.h:633
std::map< DtObjectClassHandle, DtObjectClassInfo * > DtObjectClassByHandleMap
Definition: objClassInfo.h:39
std::vector< DtAttrInfo > DtAttrVector
Definition: fomMgr.h:40
MAKRti::DtString myName
Definition: objClassInfo.h:593
DtInteractionClassHandleStdSet myPublishedInteractions
Definition: objClassInfo.h:641
DtAttributeHandle myAvailableAttributeHandle
The available attribute handle which is the maximum of this classes own attributes or any of its subc...
Definition: objClassInfo.h:611
bool myIsRoot
Definition: objClassInfo.h:600
Definition: attrInfo.h:29
DtInteractionClassHandleStdSet mySubscribedInteractions
Definition: objClassInfo.h:642
DtSharingType mySharing
Definition: objClassInfo.h:594
DtAttributeHandleSet myAttributeHandleSet
Definition: objClassInfo.h:635
std::set< DtRegionHandle > DtRegionHandleStdSet
Definition: internalTypes.h:66
MAKRti::DtFomType myFomType
Definition: objClassInfo.h:598
DtAttributeByHandleMap myAttrsByHandle
Definition: objClassInfo.h:629
DtObjectClassHandle myDiscoveredHandle
Definition: objClassInfo.h:597
bool myExplicitPubPrivToDel
Definition: objClassInfo.h:604
DtHandle DtRegionHandle
Definition: internalTypes.h:65
DtHandle DtObjectClassHandle
Definition: internalTypes.h:48
DtObjectClassInfo * myBase
Definition: objClassInfo.h:606
DtObjectClassByNameMap mySubclassByName
Definition: objClassInfo.h:608
static const DtAttributeHandleSet theEmptySet
Definition: objClassInfo.h:679
DtHandle DtDimensionHandle
Definition: internalTypes.h:62
DtHandle DtInteractionClassHandle
Definition: internalTypes.h:52
DtInteractionClassHandleStdSet mySubscribedInteractionsUniversal
Definition: objClassInfo.h:643
bool myIsUnknown
Indicates whether this class is an unknown class, merely present to indicate that it is in other FOM ...
Definition: objClassInfo.h:675
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:655
DtAttributeByNameMap myAttrsByName
Definition: objClassInfo.h:631
std::map< MAKRti::DtString, DtAttrInfo * > DtAttributeByNameMap
Definition: attrInfo.h:233
DtHandle DtFederateHandle
Definition: internalTypes.h:46
MAKRti::DtInetAddr myAddr
Definition: objClassInfo.h:651
DtAttributeByHandleMap myOwnAttrsByHandle
Definition: objClassInfo.h:630
std::set< DtDimensionHandle > DtDimensionHandleStdSet
Definition: internalTypes.h:63
MAKRti::DtTime myForceDestinationsTime
Definition: objClassInfo.h:656
DtAttributeHandleSet myRelevantSet
Attributes that could cause object discovery at a remote federate if they are published or become pub...
Definition: objClassInfo.h:649
std::map< DtAttributeHandle, DtAttrInfo * > DtAttributeByHandleMap
Definition: attrInfo.h:232
MAKRti::DtHashlist myRemoteSubscriptions
Definition: objClassInfo.h:613
long DtSpaceHandle
Definition: internalTypes.h:42
The object manager class processes the object management services.
Definition: objMgr.h:81
DtAttributeByNameMap myOwnAttrsByName
Definition: objClassInfo.h:632
static const unsigned int theMaxAttrs
Definition: objClassInfo.h:680
DtObjectClassHandle myHandle
Definition: objClassInfo.h:596
DtAttributeHandleSet mySubscribedActiveSet
Definition: objClassInfo.h:638
DtObjectClassByHandleMap mySubclassByHandle
Definition: objClassInfo.h:607
unsigned long DtHandle
The internal types.
Definition: internalTypes.h:41
DtHandle DtAttributeHandle
Definition: internalTypes.h:54
DtInteractionClassHandleStdSet myDirectedInteractions
Definition: objClassInfo.h:659
std::map< MAKRti::DtString, DtObjectClassInfo * > DtObjectClassByNameMap
Definition: objClassInfo.h:40
bool myIsPassive
Definition: objClassInfo.h:603
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:652
The declaration of internal types.
Definition: objClassInfo.h:36
bool mySubscribed
Definition: objClassInfo.h:601
bool myPublished
Definition: objClassInfo.h:602
MAKRti::DtString mySemantics
Definition: objClassInfo.h:595
Definition: objClassPacket.h:20
DtAttributeHandleSet mySubscribedSet
Definition: objClassInfo.h:637
bool myExplicitUnpubPrivToDel
Definition: objClassInfo.h:605
DtAttributeHandleSet myPublishedSet
Definition: objClassInfo.h:636
MAKRti::DtClock myClock
Definition: objClassInfo.h:657