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;
31 
32 typedef std::map<DtFederateHandle, DtObjectClassHandle> DtObjectClassHandleByFederateHandleMap;
33 
37 {
38  friend class DtRtiObject;
39  class tuple
40  {
41  public:
42  tuple(){}
43  tuple(unsigned int o, float r, MAKRti::DtTime t):offset(o),rate(r),timestamp(t){}
44  public:
45  unsigned int offset;
46  float rate;
47  MAKRti::DtTime timestamp;
48  };
49 
50 public:
52 
53 public:
54 
56  MAKRti::DtTransportType transport;
57 
59  MAKRti::DtOrderType order;
60 
63 
65  DtPubRegionSet* regionSet;
66 
69 
72 
75 
78 
80  MAKRti::DtTime myNextReceiveTime;
81 
83  std::deque<tuple> offsets;
84 };
85 
88 {
92 };
93 
95 typedef DtRtiObject* (*DtEmptyRtiObjectCreator)();
96 
98 typedef DtRtiObject* (*DtRegisteredRtiObjectCreator)(DtObjectInstanceHandle id,
99  const char* objName,
100  DtObjectClassInfo* actualClass,
101  DtUpdateType updateType);
102 
104 typedef DtRtiObject* (*DtDiscoveredRtiObjectCreator)(DtObjectInstanceHandle id,
105  const char* objName,
106  DtObjectClassInfo* actualClass,
107  DtObjectClassInfo* discoveredClass,
108  DtUpdateType updateType);
109 
110 
111 
117 {
118 protected:
122  DtRtiObject();
123 
127  const char* name,
128  DtObjectClassInfo* classDesc,
130 
133  const char* objName,
134  DtObjectClassInfo* actualClass,
135  DtObjectClassInfo* discoveredClass,
137 
138 public:
140  virtual ~DtRtiObject();
141 
144  static DtRtiObject* createEmptyObject();
145 
147  static DtRtiObject* createRegisteredObject(DtObjectInstanceHandle id,
148  const char* name,
149  DtObjectClassInfo* classDesc,
151 
153  static DtRtiObject* createDiscoveredObject(DtObjectInstanceHandle id,
154  const char* name,
155  DtObjectClassInfo* classDesc,
156  DtObjectClassInfo* discoveredClass,
158 
160  static void setEmptyCreatorFunction(DtEmptyRtiObjectCreator fn);
161 
163  static void setRegisteredCreatorFunction(DtRegisteredRtiObjectCreator fn);
164 
166  static void setDiscoveredCreatorFunction(DtDiscoveredRtiObjectCreator fn);
167 
168 
171  DtRtiObject(const DtRtiObject& orig);
172 
175  const DtRtiObject& operator=(const DtRtiObject& orig);
176 
178  void initUpdateRates(const MAKRti::DtUpdateRateSetT rates);
179 
181 
182  virtual void setObjHandle(DtObjectInstanceHandle handle);
183  virtual DtObjectInstanceHandle objHandle() const;
184  virtual DtObjectInstanceHandle id() const;
186 
188  virtual const char* objName() const;
189  virtual void setObjName(const char* name);
190 
192  virtual DtObjectClassHandle actualClassHandle() const;
193 
196  virtual DtObjectClassHandle knownClassHandle() const;
197 
199  virtual void setKnownClass(DtObjectClassInfo* classInfo);
200 
202  virtual DtObjectClassInfo* knownClass();
203 
205  virtual DtObjectClassInfo* actualClass();
206 
208  virtual int owned(DtAttributeHandle handle) const;
209 
212  virtual bool ownPriviledgeToDelete();
213 
215  virtual DtFederateHandle ownerHandle() const;
216  virtual void setOwnerHandle(DtFederateHandle handle);
217 
220  virtual void setIsKnown(bool isKnownValue);
221  virtual bool isKnown() const;
222 
224  DtUpdateType updateType() const;
225 
229  virtual void setDiscoveredClass(DtFederateHandle remoteFedHandle,
230  DtObjectClassInfo const& classInfo);
231 
235  virtual void removeDiscoveredClass(DtFederateHandle remoteFedHandle);
236 
238  virtual DtObjectClassHandle discoveredClass(
239  DtFederateHandle remoteFedHandle);
240 
242  virtual bool isDiscovered(DtFederateHandle remoteFedHandle);
243 
245  virtual bool hasBeenUpdated() const;
246 
248  virtual void markAsUpdated();
249 
251  virtual bool hasBeenReflected() const;
252 
254  virtual void markAsReflected();
255 
257  virtual int rtiOwned(DtAttributeHandle handle) const;
258 
260  virtual int lrcManaged(DtAttributeHandle handle) const;
261 
263  virtual void takeFromLrc(const DtAttributeHandleSet& set);
264 
266  virtual void giveToLrc(const DtAttributeHandleSet& set);
267 
269  virtual void divestToLrc(const DtAttributeHandleSet& set);
270 
272  virtual void giveToRti(const DtAttributeHandleSet& set);
273 
276  virtual void lrcUnmanage(const DtAttributeHandleSet& set);
277 
279 
280 
281  virtual void addRequest(const DtAttributeHandleSet& requestSet,
282  bool ifAvail);
283  virtual void removeRequest(const DtAttributeHandleSet& set);
285 
287 
288  virtual void addDivesting(const DtAttributeHandleSet& divestSet);
289  virtual void removeDivesting(const DtAttributeHandleSet& set);
291 
297  virtual void addRemoteRequest(
298  const DtAttributeHandleSet& requestSet,
299  DtFederateHandle fed);
300 
304  virtual void removeRemoteRequest(
305  const DtAttributeHandleSet& requestSet,
306  DtFederateHandle fed);
307 
309 
310 
311  virtual void addPendingConfirm(const DtAttributeHandleSet& attrs,
312  DtFederateHandle fed);
313  virtual void removePendingConfirm(const DtAttributeHandleSet& requestSet,
314  DtFederateHandle fed);
315  virtual void removePendingConfirm(const DtAttributeHandleSet& set);
317 
318 
319  virtual void addSkipPendingConfirm( const DtAttributeHandleSet& requestSet, DtFederateHandle fed);
320  virtual void removeSkipPendingConfirm( const DtAttributeHandleSet& requestSet, DtFederateHandle fed);
321  virtual DtFederateHandle pendingSkipConfirm( DtAttributeHandle hand) const;
322  virtual DtAttributeHandleSet const& pendingSkipConfirmAttributes() const;
323  virtual DtAttributeHandleSet pendingSkipConfirmByFed( DtFederateHandle fed) const;
324  virtual void removePendingSkipConfirm(const DtAttributeHandleSet& set);
325 
326 
327 
328 
330  virtual void cancelDivest(const DtAttributeHandleSet& set);
331 
333  virtual void cancelRemoteRequest(
334  const DtAttributeHandleSet& requestSet,
335  DtFederateHandle fed );
336 
338  virtual void cancelAllRemoteRequests( const DtAttributeHandleSet& requestSet );
339 
341  virtual void removeCanceledRequests(DtAttributeHandleSet const& requestSet);
342 
344  virtual DtAttributeHandleSet canceledRequestSet() const;
345 
348  virtual bool isRequestCanceled(DtAttributeHandle hand);
349 
351  virtual int requestCount() const;
352 
354  virtual DtAttributeHandleSet const& requestedAttributes() const;
355 
357  virtual int confirmCount() const;
358 
360  virtual DtAttributeHandleSet const& pendingConfirmAttributes() const;
361 
364  virtual DtFederateHandle pendingRemoteRequest(
365  DtAttributeHandle hand);
366 
369  virtual DtFederateHandle pendingConfirm(DtAttributeHandle hand) const;
370 
378  virtual DtFederateHandle releaseRequested(
379  const DtAttributeHandleSet& inSet,
380  DtAttributeHandleSet* releasedSet,
381  bool keepForConfirm);
382 
389  virtual DtFederateHandle releaseConfirm(
390  const DtAttributeHandleSet& inSet,
391  DtAttributeHandleSet* releasedSet);
392 
394  virtual DtAttributeHandleSet requestedByFed(DtFederateHandle fed,
395  bool includePendingConfirm=false);
396 
398  virtual DtAttributeHandleSet pendingConfirmByFed( DtFederateHandle fed ) const;
399 
401  virtual DtFederateHandle unavailablePendingRequests( DtAttributeHandleSet* invalidatedSet );
402 
403 
405 
406 
407  virtual bool pendingUncondRequest(DtAttributeHandle hand);
408  virtual bool pendingRequestIfAvail(DtAttributeHandle hand);
410 
412  virtual void releaseAttrs(const DtAttributeHandleSet& releaseSet);
413 
415  virtual void takeAttrs(const DtAttributeHandleSet& takeSet);
416 
418  virtual bool okToReceive(DtHandle attrHandle, float tolerance);
419 
421  virtual unsigned int computeAttrOffset(DtHandle attrHandle);
422 
425  virtual const DtAttributeHandleSet& filterOwned(
426  const DtAttributeHandleSet& inSet) const;
427 
430  virtual int expectedCount(
431  const DtAhvps& inSet,
432  DtHandle regSetHandle) const;
433 
436  virtual void selectExpected(
437  DtAhvps& outSet,
438  const DtAhvps& inSet,
439  DtHandle regSetHandle) const;
440 
443  virtual void removeUnexpected(
444  DtAhvps& attrSet,
445  DtHandle regSetHandle) const;
446 
449  virtual int isOfActualClass(DtAttributeHandle handle) const;
450 
453  virtual int isOfKnownClass(DtAttributeHandle handle) const;
454 
456  virtual int expecting(DtAttributeHandle handle,
457  DtHandle regSetHandle) const;
458 
460  virtual const DtAttributeHandleSet& lrcManagedAttrs();
461 
463  virtual const DtAttributeHandleSet& ownedAttrs();
464 
466  virtual const DtAttributeHandleSet& rtiOwnedAttrs();
467 
469  virtual const DtAttributeHandleSet& divestingAttrs();
470 
472  virtual const DtAttributeHandleSet& divestedAttrs();
473 
475  virtual const DtAttributeHandleSet& uncondRequestedAttrs();
476 
478  virtual const DtAttributeHandleSet& ifAvailRequestedAttrs();
479 
481  virtual int inScope(DtAttributeHandle handle) const;
482 
484  virtual const DtAttributeHandleSet& inScopeAttrs();
485 
487  virtual bool inScope() const;
488 
490  virtual void addToScope(DtAttributeHandle handle);
491 
493  virtual void addToScope(const DtAttributeHandleSet& attrs);
494 
496  virtual void removeFromScope(DtAttributeHandle handle);
497 
499  virtual void removeFromScope(const DtAttributeHandleSet& attrs);
500 
502 
503  virtual void remoteSubscribe(DtFederateHandle fedHandle,
504  const DtAttributeHandleSet& attrs);
505  virtual void remoteSubscribe(DtFederateHandle fedHandle,
506  DtAttributeHandle attributeHandle);
508 
510 
511  virtual void remotePassiveSubscribe(DtFederateHandle fedHandle,
512  DtAttributeHandle attrHandle);
513  virtual void remotePassiveSubscribe(DtFederateHandle fedHandle,
514  const DtAttributeHandleSet& attrs);
516 
518 
519  virtual void remoteUnsubscribe(DtFederateHandle fedHandle,
520  DtAttributeHandle attrHandle);
521  virtual void remoteUnsubscribe(DtFederateHandle fedHandle,
522  const DtAttributeHandleSet& attrs);
523  virtual void remoteUnsubscribe(DtFederateHandle fedHandle);
525 
527  virtual void acquireRemoteSubscriptions(const DtAttributeHandleSet& attrs,
528  DtFomClassMgr* fom);
529 
530 #ifdef DDM
531 
533 
534  virtual void remoteSubscribeRegion( DtFederateHandle fedHandle,
535  DtHandle regionSetHandle,
536  DtAttributeHandle handle );
537  virtual void remoteSubscribeRegion( DtFederateHandle fedHandle,
538  DtHandle regionSetHandle,
539  const DtAttributeHandleSet& attrs );
541 
543 
544  virtual void remoteUnsubscribeRegion( DtFederateHandle fedHandle,
545  DtHandle regionSetHandle,
546  DtAttributeHandle attrHandle );
547  virtual void remoteUnsubscribeRegion( DtFederateHandle fedHandle,
548  DtHandle regionSetHandle,
549  const DtAttributeHandleSet& attrs );
550  virtual void remoteUnsubscribeRegion( DtFederateHandle fedHandle,
551  DtHandle regionSetHandle);
553 
554 #endif
555 
557 
558  virtual DtBitMask getDestinations() const;
559  virtual DtBitMask getDestinations( const DtAttributeHandleSet& attrs ) const;
560  virtual DtBitMask getDestinations( const DtAhvpBase& attrs ) const;
562 
565  virtual void getBaseClassDestinations(DtBitMask & dest, const DtAhvpBase& attrs, DtObjectClassInfo * baseClass ) const;
566 
568  virtual void overrideDestinations(DtBitMask const& mask);
569 
571  virtual void setAllDestinations();
572 
574  virtual void divestRemoteSubscriptions(const DtAttributeHandleSet& attrs);
575 
577  virtual bool isUpdateOn(DtAttributeHandle handle) const;
578 
580  virtual DtAttributeHandleSet updateOnAttrs() const;
581 
583  virtual DtAttributeHandleSet updateOffAttrs() const;
584 
586  virtual bool isUpdateOn() const;
587 
589 
590  virtual void turnUpdateOn(DtAttributeHandle handle);
591  virtual void turnUpdateOn(const DtAttributeHandleSet& attrs);
593 
595 
596  virtual void turnUpdateOff(DtAttributeHandle handle);
597  virtual void turnUpdateOff(const DtAttributeHandleSet& attrs);
599 
601  virtual MAKRti::DtTransportType attrTransport(
602  DtAttributeHandle theHandle);
603 
605  virtual MAKRti::DtOrderType attrOrder(
606  DtAttributeHandle theHandle);
607 
609  virtual void setAttrTransport(
610  DtAttributeHandle theHandle, MAKRti::DtTransportType transport);
611 
613  virtual void setAttrOrder(
614  DtAttributeHandle theHandle, MAKRti::DtOrderType order);
615 
617 #ifdef DDM
618 
619  virtual void setRegionSet(DtAttributeHandle attrHandle,
620  DtPubRegionSet* regionSet);
621  virtual DtPubRegionSet* regionSet(DtAttributeHandle attrHandle);
622 #endif
623  virtual DtHandle regionSetHandle(DtAttributeHandle attrHandle);
625 
628  virtual bool attrHasDimensions(DtAttributeHandle attrHandle) const;
629 
631 
632  virtual unsigned int encodedLength() const;
633  virtual void encode(const char *buff);
635 
638  virtual bool decode(const char *buff, DtFomClassMgr* fom);
639 
641  void setTimeToUseDestinations(MAKRti::DtTime timeVal);
642 
644  MAKRti::DtTime timeToUseDestinations() const;
645 
647  void addAttributeOwner(DtFederateHandle fedHandle, const DtAttributeHandleSet& attrs);
648 
649 #ifdef DtIFSPEC1516E
650 
651  double getUpdateRate( DtAttributeHandle attrHandle ) const;
652 #endif
653 
654 public:
655 
658  static void setUseDiscoveredClass(bool yesNo);
659 
661  virtual DtBitMask * getAttributeOwnerDestinationMask(DtBitMask * bitMask = NULL) const;
662 
663 protected:
664 
666  inline DtRtiObject* self() const;
667 
669  virtual void addRemoteSubscribe(DtFederateHandle fedHandle,
670  DtAttributeHandle attrHandle);
671 
673  virtual void removeRemoteSubscribe(DtFederateHandle fedHandle,
674  DtAttributeHandle attrHandle);
675 
676 protected:
677 
680 
683 
686 
688  char* myObjName;
689 
692 
695 
697  bool myIsKnown;
698 
701 
704 
707 
710 
713 
716 
720 
723 
728 
732 
735 
738 
741 
744 
747 
750  std::map<DtFederateHandle, DtObjectClassHandle> myDiscoveredClass;
751 
754 
757 
759  unsigned myNumAttrs;
760 
764  MAKRti::DtTime myTimeToUseDestinations;
765 
769 
770 protected:
773 
780 
782  std::map<float,DtObjectAttrInfo::tuple> myUpdateRateHold;
783 };
784 
785 #endif

Document ID: Generated on Mon Mar 21 09:41:37 EDT 2016 from SVN revision 163228
Copyright © 2005-2015 VT MÄK Inc. All Rights Reserved (www.mak.com)