MAK RTIspy API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
rtiObject.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1998 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: rtiObject.h,v $ $Revision: 1.9 $ $State: Exp $
7 *********************************************************************/
8 
9 #ifndef rtiObject_H_
10 #define rtiObject_H_
11 
14 
15 #include "attrHandSet.h"
16 #include "aHandValBase.h"
17 #include <vlutil/vlUtil.h>
18 #include "requestDb.h"
19 #include <vlutil/vlHashlist.h>
20 #include <vlutil/vlFedTarget.h>
21 #include "pubRegSet.h"
22 #include "bitMask.h"
23 #include "internalTypes.h"
24 #include <deque>
25 
26 class DtObjectClassInfo;
27 class DtPubRegionSet;
28 class DtFomClassMgr;
29 class DtAhvps;
30 class DtRtiObject;
31 
32 
36 {
37  friend class DtRtiObject;
38  class tuple
39  {
40  public:
41  tuple(){}
42  tuple(unsigned int o, float r, MAKRti::DtTime t):offset(o),rate(r),timestamp(t){}
43  public:
44  unsigned int offset;
45  float rate;
46  MAKRti::DtTime timestamp;
47  };
48 
49 public:
51 
52 public:
53 
55  MAKRti::DtTransportType transport;
56 
59 
62 
64  DtPubRegionSet* regionSet;
65 
68 
71 
74 
77 
79  MAKRti::DtTime myNextReceiveTime;
80 
82  std::deque<tuple> offsets;
83 };
84 
87 {
91 };
92 
94 typedef DtRtiObject* (*DtEmptyRtiObjectCreator)();
95 
97 typedef DtRtiObject* (*DtRegisteredRtiObjectCreator)(DtObjectInstanceHandle id,
98  const char* objName,
99  DtObjectClassInfo* actualClass,
100  DtUpdateType updateType);
101 
103 typedef DtRtiObject* (*DtDiscoveredRtiObjectCreator)(DtObjectInstanceHandle id,
104  const char* objName,
105  DtObjectClassInfo* actualClass,
106  DtObjectClassInfo* discoveredClass,
107  DtUpdateType updateType);
108 
109 
110 
116 {
117 protected:
121  DtRtiObject();
122 
126  const char* name,
127  DtObjectClassInfo* classDesc,
129 
132  const char* objName,
133  DtObjectClassInfo* actualClass,
134  DtObjectClassInfo* discoveredClass,
136 
137 public:
139  virtual ~DtRtiObject();
140 
143  static DtRtiObject* createEmptyObject();
144 
146  static DtRtiObject* createRegisteredObject(DtObjectInstanceHandle id,
147  const char* name,
148  DtObjectClassInfo* classDesc,
150 
152  static DtRtiObject* createDiscoveredObject(DtObjectInstanceHandle id,
153  const char* name,
154  DtObjectClassInfo* classDesc,
155  DtObjectClassInfo* discoveredClass,
157 
159  static void setEmptyCreatorFunction(DtEmptyRtiObjectCreator fn);
160 
162  static void setRegisteredCreatorFunction(DtRegisteredRtiObjectCreator fn);
163 
165  static void setDiscoveredCreatorFunction(DtDiscoveredRtiObjectCreator fn);
166 
167 
170  DtRtiObject(const DtRtiObject& orig);
171 
174  const DtRtiObject& operator=(const DtRtiObject& orig);
175 
177  void initUpdateRates(const MAKRti::DtUpdateRateSetT rates);
178 
180 
181  virtual void setObjHandle(DtObjectInstanceHandle handle);
182  virtual DtObjectInstanceHandle objHandle() const;
183  virtual DtObjectInstanceHandle id() const;
185 
187  virtual const char* objName() const;
188  virtual void setObjName(const char* name);
189 
191  virtual DtObjectClassHandle actualClassHandle() const;
192 
195  virtual DtObjectClassHandle knownClassHandle() const;
196 
198  virtual void setKnownClass(DtObjectClassInfo* classInfo);
199 
201  virtual DtObjectClassInfo* knownClass();
202 
204  virtual DtObjectClassInfo* actualClass();
205 
207  virtual int owned(DtAttributeHandle handle) const;
208 
211  virtual bool ownPriviledgeToDelete();
212 
214  virtual DtFederateHandle ownerHandle() const;
215  virtual void setOwnerHandle(DtFederateHandle handle);
216 
219  virtual void setIsKnown(bool isKnownValue);
220  virtual bool isKnown() const;
221 
223  DtUpdateType updateType() const;
224 
228  virtual void setDiscoveredClass(DtFederateHandle remoteFedHandle,
229  DtObjectClassInfo const& classInfo);
230 
234  virtual void removeDiscoveredClass(DtFederateHandle remoteFedHandle);
235 
237  virtual DtObjectClassHandle discoveredClass(
238  DtFederateHandle remoteFedHandle);
239 
241  virtual bool isDiscovered(DtFederateHandle remoteFedHandle);
242 
244  virtual bool hasBeenUpdated() const;
245 
247  virtual void markAsUpdated();
248 
250  virtual bool hasBeenReflected() const;
251 
253  virtual void markAsReflected();
254 
256  virtual int rtiOwned(DtAttributeHandle handle) const;
257 
259  virtual int lrcManaged(DtAttributeHandle handle) const;
260 
262  virtual void takeFromLrc(const DtAttributeHandleSet& set);
263 
265  virtual void giveToLrc(const DtAttributeHandleSet& set);
266 
268  virtual void divestToLrc(const DtAttributeHandleSet& set);
269 
271  virtual void giveToRti(const DtAttributeHandleSet& set);
272 
275  virtual void lrcUnmanage(const DtAttributeHandleSet& set);
276 
278 
279 
280  virtual void addRequest(const DtAttributeHandleSet& requestSet,
281  bool ifAvail);
282  virtual void removeRequest(const DtAttributeHandleSet& set);
284 
286 
287  virtual void addDivesting(const DtAttributeHandleSet& divestSet);
288  virtual void removeDivesting(const DtAttributeHandleSet& set);
290 
296  virtual void addRemoteRequest(
297  const DtAttributeHandleSet& requestSet,
298  DtFederateHandle fed);
299 
303  virtual void removeRemoteRequest(
304  const DtAttributeHandleSet& requestSet,
305  DtFederateHandle fed);
306 
308 
309 
310  virtual void addPendingConfirm(const DtAttributeHandleSet& attrs,
311  DtFederateHandle fed);
312  virtual void removePendingConfirm(const DtAttributeHandleSet& requestSet,
313  DtFederateHandle fed);
314  virtual void removePendingConfirm(const DtAttributeHandleSet& set);
316 
317 
318  virtual void addSkipPendingConfirm( const DtAttributeHandleSet& requestSet, DtFederateHandle fed);
319  virtual void removeSkipPendingConfirm( const DtAttributeHandleSet& requestSet, DtFederateHandle fed);
320  virtual DtFederateHandle pendingSkipConfirm( DtAttributeHandle hand) const;
321  virtual DtAttributeHandleSet const& pendingSkipConfirmAttributes() const;
322  virtual DtAttributeHandleSet pendingSkipConfirmByFed( DtFederateHandle fed) const;
323  virtual void removePendingSkipConfirm(const DtAttributeHandleSet& set);
324 
325 
326 
327 
329  virtual void cancelDivest(const DtAttributeHandleSet& set);
330 
332  virtual void cancelRemoteRequest(
333  const DtAttributeHandleSet& requestSet,
334  DtFederateHandle fed );
335 
337  virtual void cancelAllRemoteRequests( const DtAttributeHandleSet& requestSet );
338 
340  virtual void removeCanceledRequests(DtAttributeHandleSet const& requestSet);
341 
343  virtual DtAttributeHandleSet canceledRequestSet() const;
344 
347  virtual bool isRequestCanceled(DtAttributeHandle hand);
348 
350  virtual int requestCount() const;
351 
353  virtual DtAttributeHandleSet const& requestedAttributes() const;
354 
356  virtual int confirmCount() const;
357 
359  virtual DtAttributeHandleSet const& pendingConfirmAttributes() const;
360 
363  virtual DtFederateHandle pendingRemoteRequest(
364  DtAttributeHandle hand);
365 
368  virtual DtFederateHandle pendingConfirm(DtAttributeHandle hand) const;
369 
377  virtual DtFederateHandle releaseRequested(
378  const DtAttributeHandleSet& inSet,
379  DtAttributeHandleSet* releasedSet,
380  bool keepForConfirm);
381 
388  virtual DtFederateHandle releaseConfirm(
389  const DtAttributeHandleSet& inSet,
390  DtAttributeHandleSet* releasedSet);
391 
393  virtual DtAttributeHandleSet requestedByFed(DtFederateHandle fed,
394  bool includePendingConfirm=false);
395 
397  virtual DtAttributeHandleSet pendingConfirmByFed( DtFederateHandle fed ) const;
398 
400  virtual DtFederateHandle unavailablePendingRequests( DtAttributeHandleSet* invalidatedSet );
401 
402 
404 
405 
406  virtual bool pendingUncondRequest(DtAttributeHandle hand);
407  virtual bool pendingRequestIfAvail(DtAttributeHandle hand);
409 
411  virtual void releaseAttrs(const DtAttributeHandleSet& releaseSet);
412 
414  virtual void takeAttrs(const DtAttributeHandleSet& takeSet);
415 
417  virtual bool okToReceive(DtHandle attrHandle, float tolerance);
418 
420  virtual unsigned int computeAttrOffset(DtHandle attrHandle);
421 
424  virtual const DtAttributeHandleSet& filterOwned(
425  const DtAttributeHandleSet& inSet) const;
426 
429  virtual int expectedCount(
430  const DtAhvps& inSet,
431  DtHandle regSetHandle) const;
432 
435  virtual void selectExpected(
436  DtAhvps& outSet,
437  const DtAhvps& inSet,
438  DtHandle regSetHandle) const;
439 
442  virtual void removeUnexpected(
443  DtAhvps& attrSet,
444  DtHandle regSetHandle) const;
445 
448  virtual int isOfActualClass(DtAttributeHandle handle) const;
449 
452  virtual int isOfKnownClass(DtAttributeHandle handle) const;
453 
455  virtual int expecting(DtAttributeHandle handle,
456  DtHandle regSetHandle) const;
457 
459  virtual const DtAttributeHandleSet& lrcManagedAttrs();
460 
462  virtual const DtAttributeHandleSet& ownedAttrs();
463 
465  virtual const DtAttributeHandleSet& rtiOwnedAttrs();
466 
468  virtual const DtAttributeHandleSet& divestingAttrs();
469 
471  virtual const DtAttributeHandleSet& divestedAttrs();
472 
474  virtual const DtAttributeHandleSet& uncondRequestedAttrs();
475 
477  virtual const DtAttributeHandleSet& ifAvailRequestedAttrs();
478 
480  virtual int inScope(DtAttributeHandle handle) const;
481 
483  virtual const DtAttributeHandleSet& inScopeAttrs();
484 
486  virtual bool inScope() const;
487 
489  virtual void addToScope(DtAttributeHandle handle);
490 
492  virtual void addToScope(const DtAttributeHandleSet& attrs);
493 
495  virtual void removeFromScope(DtAttributeHandle handle);
496 
498  virtual void removeFromScope(const DtAttributeHandleSet& attrs);
499 
501 
502  virtual void remoteSubscribe(DtFederateHandle fedHandle,
503  const DtAttributeHandleSet& attrs);
504  virtual void remoteSubscribe(DtFederateHandle fedHandle,
505  DtAttributeHandle attributeHandle);
507 
509 
510  virtual void remotePassiveSubscribe(DtFederateHandle fedHandle,
511  DtAttributeHandle attrHandle);
512  virtual void remotePassiveSubscribe(DtFederateHandle fedHandle,
513  const DtAttributeHandleSet& attrs);
515 
517 
518  virtual void remoteUnsubscribe(DtFederateHandle fedHandle,
519  DtAttributeHandle attrHandle);
520  virtual void remoteUnsubscribe(DtFederateHandle fedHandle,
521  const DtAttributeHandleSet& attrs);
522  virtual void remoteUnsubscribe(DtFederateHandle fedHandle);
524 
526  virtual void acquireRemoteSubscriptions(const DtAttributeHandleSet& attrs,
527  DtFomClassMgr* fom);
528 
529 #ifdef DDM
530 
532 
533  virtual void remoteSubscribeRegion( DtFederateHandle fedHandle,
534  DtHandle regionSetHandle,
535  DtAttributeHandle handle );
536  virtual void remoteSubscribeRegion( DtFederateHandle fedHandle,
537  DtHandle regionSetHandle,
538  const DtAttributeHandleSet& attrs );
540 
542 
543  virtual void remoteUnsubscribeRegion( DtFederateHandle fedHandle,
544  DtHandle regionSetHandle,
545  DtAttributeHandle attrHandle );
546  virtual void remoteUnsubscribeRegion( DtFederateHandle fedHandle,
547  DtHandle regionSetHandle,
548  const DtAttributeHandleSet& attrs );
549  virtual void remoteUnsubscribeRegion( DtFederateHandle fedHandle,
550  DtHandle regionSetHandle);
552 
553 #endif
554 
556 
557  virtual DtBitMask getDestinations() const;
558  virtual DtBitMask getDestinations( const DtAttributeHandleSet& attrs ) const;
559  virtual DtBitMask getDestinations( const DtAhvpBase& attrs ) const;
561 
564  virtual void getBaseClassDestinations(DtBitMask & dest, const DtAhvpBase& attrs, DtObjectClassInfo * baseClass ) const;
565 
567  virtual void overrideDestinations(DtBitMask const& mask);
568 
570  virtual void setAllDestinations();
571 
573  virtual void divestRemoteSubscriptions(const DtAttributeHandleSet& attrs);
574 
576  virtual bool isUpdateOn(DtAttributeHandle handle) const;
577 
579  virtual DtAttributeHandleSet updateOnAttrs() const;
580 
582  virtual DtAttributeHandleSet updateOffAttrs() const;
583 
585  virtual bool isUpdateOn() const;
586 
588 
589  virtual void turnUpdateOn(DtAttributeHandle handle);
590  virtual void turnUpdateOn(const DtAttributeHandleSet& attrs);
592 
594 
595  virtual void turnUpdateOff(DtAttributeHandle handle);
596  virtual void turnUpdateOff(const DtAttributeHandleSet& attrs);
598 
600  virtual MAKRti::DtTransportType attrTransport(
601  DtAttributeHandle theHandle);
602 
604  virtual MAKRti::DtOrderType attrOrder(
605  DtAttributeHandle theHandle);
606 
608  virtual void setAttrTransport(
609  DtAttributeHandle theHandle, MAKRti::DtTransportType transport);
610 
612  virtual void setAttrOrder(
613  DtAttributeHandle theHandle, MAKRti::DtOrderType order);
614 
616 #ifdef DDM
617 
618  virtual void setRegionSet(DtAttributeHandle attrHandle,
619  DtPubRegionSet* regionSet);
620  virtual DtPubRegionSet* regionSet(DtAttributeHandle attrHandle);
621 #endif
622  virtual DtHandle regionSetHandle(DtAttributeHandle attrHandle);
624 
627  virtual bool attrHasDimensions(DtAttributeHandle attrHandle) const;
628 
630 
631  virtual unsigned int encodedLength() const;
632  virtual void encode(const char *buff);
634 
637  virtual bool decode(const char *buff, DtFomClassMgr* fom);
638 
640  void setTimeToUseDestinations(MAKRti::DtTime timeVal);
641 
643  MAKRti::DtTime timeToUseDestinations() const;
644 
646  void addAttributeOwner(DtFederateHandle fedHandle, const DtAttributeHandleSet& attrs);
647 
648 #ifdef DtIFSPEC1516E
649 
650  double getUpdateRate( DtAttributeHandle attrHandle ) const;
651 #endif
652 
653 public:
654 
657  static void setUseDiscoveredClass(bool yesNo);
658 
660  virtual DtBitMask * getAttributeOwnerDestinationMask(DtBitMask * bitMask = NULL) const;
661 
662 protected:
663 
665  inline DtRtiObject* self() const;
666 
668  virtual void addRemoteSubscribe(DtFederateHandle fedHandle,
669  DtAttributeHandle attrHandle);
670 
672  virtual void removeRemoteSubscribe(DtFederateHandle fedHandle,
673  DtAttributeHandle attrHandle);
674 
675 protected:
676 
679 
682 
685 
687  char* myObjName;
688 
691 
694 
696  bool myIsKnown;
697 
700 
703 
706 
709 
712 
715 
719 
722 
727 
731 
734 
737 
740 
743 
746 
749  MAKRti::DtHashlist myDiscoveredClass;
750 
753 
756 
758  unsigned myNumAttrs;
759 
763  MAKRti::DtTime myTimeToUseDestinations;
764 
767  std::map<DtAttributeHandle, DtFederateHandle> myKnownAttributeOwnersMap;
768 
769 protected:
772 
779 
781  std::map<float,DtObjectAttrInfo::tuple> myUpdateRateHold;
782 };
783 
784 #endif

Document ID: Generated on Wed Mar 11 20:26:49 EDT 2015 from SVN revision 150939
Copyright © 2005-2015 VT MÄK Inc. All Rights Reserved (www.mak.com)