12 #ifndef DtObjectClassInfo_H_
13 #define DtObjectClassInfo_H_
15 #include <vlutil/vlList.h>
16 #include <vlutil/vlHashlist.h>
17 #include <vlutil/vlFedTarget.h>
18 #include <vlutil/vlInetAddr.h>
44 const MAKRti::DtString& semantics);
54 virtual void setFomType(MAKRti::DtFomType type);
55 virtual MAKRti::DtFomType fomType()
const;
58 virtual DtAttrInfo* addAttr(
const char* attrName,
59 MAKRti::DtTransportType transport,
63 const MAKRti::DtString& updateCondition,
65 const MAKRti::DtString& semantics,
69 virtual DtAttrInfo* addAttr(
const char* attrName,
70 MAKRti::DtTransportType transport,
75 const MAKRti::DtString& updateCondition,
77 const MAKRti::DtString& semantics,
81 virtual const char* name()
const;
88 virtual const char* semantics()
const;
89 virtual void setSemantics(
const MAKRti::DtString& sem);
94 virtual bool isName(
const char* name);
96 virtual bool isFullName(
const char* name);
117 virtual MAKRti::DtList* subclasses();
123 virtual DtAttrInfo* attrByName(
const char* theName);
127 virtual const DtAttrInfo* attrByName(
const char* theName)
const;
133 const char* theName)
const;
136 virtual char* attrName (
140 virtual MAKRti::DtTransportType attrTransport(
155 virtual int numAttributes()
const;
164 DtObjectMgr* objMgr,
bool isReplacement,
bool isRepublish);
166 bool implicitUnpublishPrivilegeToDelete,
DtObjectMgr* objMgr);
169 virtual bool published()
const;
174 #
if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E)
176 bool isReplacement=
false);
179 bool isReplacement=
true);
181 virtual void unsubscribeClass();
182 virtual void unsubscribeAttributes(
186 virtual bool subscribed()
const;
189 virtual bool isPassive()
const;
193 virtual const bool isSubscribed(
220 virtual void remoteSubscribe(
234 virtual void remoteUnsubscribeAttributes(
240 virtual void removeSubscriptions(
245 virtual int numRemoteFederatesSubscribed();
248 virtual bool remoteFederateIsSubscribed(
256 virtual const MAKRti::DtHashList& subscribedFederates()
const;
261 virtual bool relevant()
const;
270 virtual const MAKRti::DtInetAddr& destinationAddress()
const;
271 virtual const MAKRti::DtInetAddr& destinationDevice()
const;
272 virtual void setDestination(MAKRti::DtInetAddr addr,
273 MAKRti::DtInetAddr devAddr,
bool inclusive, MAKRti::DtInetAddr oldAddr,
274 MAKRti::DtInetAddr oldDevAddr);
279 virtual void setForcedDestinations(
DtBitMask const& mask,
280 MAKRti::DtTime delay);
284 virtual bool getForcedDestinations(
DtBitMask &mask)
const;
287 virtual void setSubscribedRate(
float rate,
const MAKRti::DtString& name,
bool inclusive);
288 virtual float maxSubscribedRate();
289 virtual const MAKRti::DtString& maxSubscribedRateName();
294 virtual void remoteSubscribeWithRegion(
303 virtual DtHandle remoteRegionSubscription(
308 virtual void addMatchingPub(
DtHandle regSetHandle,
310 virtual void removeMatchingPub(
DtHandle regSetHandle,
315 virtual void moveToOverlapPub(
DtHandle regSetHandle,
317 virtual void moveToMatchingPub(
DtHandle regSetHandle,
321 virtual void addOverlapPub(
DtHandle regSetHandle,
326 virtual void addMatchingSub(
DtHandle regSetHandle,
328 virtual void removeMatchingSub(
DtHandle regSetHandle,
333 virtual void moveToOverlapSub(
DtHandle regSetHandle);
334 virtual void moveToMatchingSub(
DtHandle regSetHandle,
338 virtual void addOverlapSub(
DtHandle regSetHandle,
342 virtual void subscribeByRegion(DtSubRegionSet
const& subRegSet,
344 virtual void unsubscribeByRegion(
DtHandle regSetHandle,
354 virtual int subscribeOverlaps(
DtHandle regSetHandle)
const;
357 virtual int subscribedWithRegions()
const;
362 virtual void incrementUpdateTally();
363 virtual void setUpdateTally(
unsigned long value);
364 virtual unsigned long updateTally();
365 virtual void incrementSentAttributesTally(MAKRti::DtTransportType transport,
366 unsigned int numberAttrs);
367 virtual void setSentAttributesTally(
unsigned long value,
368 MAKRti::DtTransportType transport);
369 virtual unsigned long sentAttributesTally(MAKRti::DtTransportType transport);
371 virtual void incrementReflectTally(MAKRti::DtTransportType transport,
372 unsigned int numberAttrs);
373 virtual void setReflectTally(
unsigned long value,
374 MAKRti::DtTransportType transport);
375 virtual unsigned long reflectTally(MAKRti::DtTransportType transport);
376 virtual void setReflectAttributesTally(
unsigned long value,
377 MAKRti::DtTransportType transport);
378 virtual unsigned long reflectAttributesTally(MAKRti::DtTransportType transport);
386 virtual void print()
const;
394 bool isScaffolding()
const;
398 bool isUnknown()
const;
400 void setIsUnknown(
bool unknown);
408 static bool sameAttrs(
const std::vector<DtAttrInfo>&,
const std::vector<DtAttrInfo>& );
412 virtual void throwIfNotDefined(
436 virtual void addSet(MAKRti::DtHashList& setList,
DtHandle regSetHandle,
438 virtual void removeSet(MAKRti::DtHashList& setList,
DtHandle regSetHandle,
440 virtual void moveSet(MAKRti::DtHashList& fromList,
441 MAKRti::DtHashList& toList,
DtHandle regSetHandle);
442 virtual void moveSet(MAKRti::DtHashList& fromList,
443 MAKRti::DtHashList& toList,
DtHandle regSetHandle,
452 void emptyRegionLists();
459 virtual DtAttrInfo* addAttrSorted(
const char* attrName,
463 const MAKRti::DtString& updateCondition,
465 const MAKRti::DtString& semantics );
466 virtual DtAttrInfo* addAttrUnsorted(
const char* attrName,
470 const MAKRti::DtString& updateCondition,
472 const MAKRti::DtString& semantics );
475 virtual DtAttrInfo* addAttrUnsorted(
const char* attrName,
479 const MAKRti::DtString& updateCondition,
481 const MAKRti::DtString& semantics );
482 virtual DtAttrInfo* addAttrSorted(
const char* attrName,
486 const MAKRti::DtString& updateCondition,
488 const MAKRti::DtString& semantics );
511 unsigned long myUpdateTally;
512 unsigned long myBestEffortReflectTally;
513 unsigned long myReliableReflectTally;
514 unsigned long myBestEffortSentAttributesTally;
515 unsigned long myBestEffortReflectAttributesTally;
516 unsigned long myReliableSentAttributesTally;
517 unsigned long myReliableReflectAttributesTally;
548 MAKRti::DtHashList mySubByRegion;
549 MAKRti::DtHashList myMatchingPubByRegion;
550 MAKRti::DtHashList myOverlapPubByRegion;
551 MAKRti::DtHashList myMatchingSubByRegion;
552 MAKRti::DtHashList myOverlapSubByRegion;
583 bool regionSetHasDimensionsValue) :