49 RTI::ObjectClassHandle handle,
56 virtual void addAttr(
const char*
attrName,
bool withSpace =
false);
59 virtual RTI::ObjectClassHandle handle()
const;
62 virtual RTI::AttributeHandle attributeHandleByName(
const char *
attrName)
const;
65 virtual DtString attributeNameByHandle(
const RTI::AttributeHandle& hand)
const;
68 virtual const char* name()
const;
81 virtual int isOfClass(RTI::ObjectClassHandle hand)
const;
85 virtual int numAttributes()
const;
88 virtual bool hasAttribute(
const char*
attrName)
const;
92 virtual const RTI::AttributeHandleSet& attrHandleSet()
const;
95 virtual const RTI::AttributeHandleSet& ownAttrHandles()
const;
103 virtual bool classNeededByFederation();
109 virtual void publish();
110 virtual void publish(
const RTI::AttributeHandleSet& hSet);
113 virtual void unpublish();
121 virtual void subscribe(std::wstring
const& updateRateDesignator = L
"",
bool active =
true );
123 std::wstring
const& updateRateDesignator = L
"",
bool active =
true );
124 virtual void subscribe(
const RTI::AttributeHandleSet& hSet,
125 std::wstring
const& updateRateDesignator = L
"",
126 bool active =
true );
128 virtual void subscribe(
const RTI::AttributeHandleSet& hSet,
DtDDMRegionSP region,
129 std::wstring
const& updateRateDesignator = L
"",
bool active =
true);
132 virtual void passiveSubscribe();
135 virtual void unsubscribe();
140 virtual void requestUpdates();
142 virtual void requestUpdates(
const RTI::AttributeHandleSet& hSet);
143 virtual void requestUpdates(
const RTI::AttributeHandleSet& hSet,
149 virtual const RTI::AttributeHandleSet& publishedAttrs()
const;
153 virtual bool everPublished()
const;
158 virtual const RTI::AttributeHandleSet& subscribedAttrs()
const;
160 virtual const RTI::AttributeHandleSet& attributesWithSpace()
const;
161 virtual const RTI::AttributeHandleSet& attributesWithoutSpace()
const;
163 virtual const RTI::AttributeHandleSet& subscribedAttrsWithSpace()
const;
164 virtual const RTI::AttributeHandleSet& subscribedAttrsWithoutSpace()
const;
172 virtual bool everSubscribed()
const;
181 virtual RTI::AttributeHandle privilegeHandle()
const;
193 virtual void setSubscribeToUnspecifiedAttributesFlag(
bool subscribe);
194 virtual bool subscribeToUnspecifiedAttributesFlag();
203 virtual void enableUnknownAttributes();
210 virtual void setUnknownAttributeEncoder(
215 virtual void setUnknownAttributeChecker(
220 virtual void setUnknownAttributeDecoder(
239 static void setSubscriptionTimeDelay(
double delay);
244 static void startRegCb(RTI::ObjectClassHandle h,
248 static void stopRegCb(RTI::ObjectClassHandle h,
251 static void ddmDisabled();
256 virtual void processStartReg(RTI::ObjectClassHandle h);
259 virtual void processStopReg(RTI::ObjectClassHandle h);
266 virtual void synchSubscribedAttributes();
270 virtual void fillInAttributeHandleSetRegionHandleSetPairVector(
272 RTI::AttributeHandleSetRegionHandleSetPairVector& pairVector);
275 virtual void addAttr(
const char*
attrName, RTI::AttributeHandle attrHandle,
276 RTI::DimensionHandleSet& dimSet,
bool isPrivilegeToDelete,
bool withSpace =
false);
281 RTI::ObjectClassHandle myHandle;
282 RTI::AttributeHandleSet* myAttrs;
283 RTI::AttributeHandleSet* myOwnAttrs;
284 RTI::AttributeHandleSet* mySubAttrs;
285 RTI::AttributeHandleSet* myPubAttrs;
288 RTI::AttributeHandleSet* myAttrsWithSpace;
291 RTI::AttributeHandleSet* myAttrsWithoutSpace;
293 RTI::AttributeHandleSet* mySubAttrsWithSpace;
294 RTI::AttributeHandleSet* mySubAttrsWithoutSpace;
298 std::list<DtObjClassDesc*> myChildren;
301 bool myEverPublished;
302 bool myEverSubscribed;
303 int myNumSubscribeRequests;
304 bool mySubscribeToUnspecifiedAttributesFlag;
307 RTI::AttributeHandle myPrivHandle;
308 RTI::AttributeHandle myMinAttrHand;
309 RTI::AttributeHandle myMaxAttrHand;
311 typedef std::map<RTI::AttributeHandle, DtString> StringToAttributeHandleMap;
312 StringToAttributeHandleMap myStringToHandleMap;
316 typedef std::vector<RTI::AttributeHandleSetRegionHandleSetPair>
318 RegionHandleVector mySubscribedRegions;
326 static bool theDdmEnabled;
327 static double theSubscriptionTimeDelay;