MAK RTIspy API Documentation for HLA 1516
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 <vlutil/vlUtil.h>
17 #include "requestDb.h"
18 #include <vlutil/vlHashlist.h>
19 #include <vlutil/vlFedTarget.h>
20 #include "pubRegSet.h"
21 #include "bitMask.h"
22 #include "internalTypes.h"
23 #include <deque>
24 
25 class DtObjectClassInfo;
26 class DtPubRegionSet;
27 class DtFomClassMgr;
28 class DtAhvps;
29 class DtRtiObject;
30 
31 
35 {
36  friend class DtRtiObject;
37  class tuple
38  {
39  public:
40  tuple(){}
41  tuple(unsigned int o, float r, MAKRti::DtTime t):offset(o),rate(r),timestamp(t){}
42  public:
43  unsigned int offset;
44  float rate;
45  MAKRti::DtTime timestamp;
46  };
47 
48 public:
50 
51 public:
52 
54  MAKRti::DtTransportType transport;
55 
58 
61 
63  DtPubRegionSet* regionSet;
64 
67 
70 
73 
76 
78  MAKRti::DtTime myNextReceiveTime;
79 
81  std::deque<tuple> offsets;
82 };
83 
86 {
90 };
91 
93 typedef DtRtiObject* (*DtEmptyRtiObjectCreator)();
94 
96 typedef DtRtiObject* (*DtRegisteredRtiObjectCreator)(DtObjectInstanceHandle id,
97  const char* objName,
98  DtObjectClassInfo* actualClass,
99  DtUpdateType updateType);
100 
102 typedef DtRtiObject* (*DtDiscoveredRtiObjectCreator)(DtObjectInstanceHandle id,
103  const char* objName,
104  DtObjectClassInfo* actualClass,
105  DtObjectClassInfo* discoveredClass,
106  DtUpdateType updateType);
107 
108 
109 
115 {
116 protected:
120  DtRtiObject();
121 
125  const char* name,
126  DtObjectClassInfo* classDesc,
128 
131  const char* objName,
132  DtObjectClassInfo* actualClass,
133  DtObjectClassInfo* discoveredClass,
135 
136 public:
138  virtual ~DtRtiObject();
139 
142  static DtRtiObject* createEmptyObject();
143 
145  static DtRtiObject* createRegisteredObject(DtObjectInstanceHandle id,
146  const char* name,
147  DtObjectClassInfo* classDesc,
149 
151  static DtRtiObject* createDiscoveredObject(DtObjectInstanceHandle id,
152  const char* name,
153  DtObjectClassInfo* classDesc,
154  DtObjectClassInfo* discoveredClass,
156 
158  static void setEmptyCreatorFunction(DtEmptyRtiObjectCreator fn);
159 
161  static void setRegisteredCreatorFunction(DtRegisteredRtiObjectCreator fn);
162 
164  static void setDiscoveredCreatorFunction(DtDiscoveredRtiObjectCreator fn);
165 
166 
169  DtRtiObject(const DtRtiObject& orig);
170 
173  const DtRtiObject& operator=(const DtRtiObject& orig);
174 
176  void initUpdateRates(const MAKRti::DtUpdateRateSetT rates);
177 
179 
180  virtual void setObjHandle(DtObjectInstanceHandle handle);
181  virtual DtObjectInstanceHandle objHandle() const;
182  virtual DtObjectInstanceHandle id() const;
184 
186  virtual const char* objName() const;
187  virtual void setObjName(const char* name);
188 
190  virtual DtObjectClassHandle actualClassHandle() const;
191 
194  virtual DtObjectClassHandle knownClassHandle() const;
195 
197  virtual void setKnownClass(DtObjectClassInfo* classInfo);
198 
200  virtual DtObjectClassInfo* knownClass();
201 
203  virtual DtObjectClassInfo* actualClass();
204 
206  virtual int owned(DtAttributeHandle handle) const;
207 
210  virtual bool ownPriviledgeToDelete();
211 
213  virtual DtFederateHandle ownerHandle() const;
214  virtual void setOwnerHandle(DtFederateHandle handle);
215 
218  virtual void setIsKnown(bool isKnownValue);
219  virtual bool isKnown() const;
220 
222  DtUpdateType updateType() const;
223 
227  virtual void setDiscoveredClass(DtFederateHandle remoteFedHandle,
228  DtObjectClassInfo const& classInfo);
229 
233  virtual void removeDiscoveredClass(DtFederateHandle remoteFedHandle);
234 
236  virtual DtObjectClassHandle discoveredClass(
237  DtFederateHandle remoteFedHandle);
238 
240  virtual bool isDiscovered(DtFederateHandle remoteFedHandle);
241 
243  virtual bool hasBeenUpdated() const;
244 
246  virtual void markAsUpdated();
247 
249  virtual bool hasBeenReflected() const;
250 
252  virtual void markAsReflected();
253 
255  virtual int rtiOwned(DtAttributeHandle handle) const;
256 
258  virtual int lrcManaged(DtAttributeHandle handle) const;
259 
261  virtual void takeFromLrc(const DtAttributeHandleSet& set);
262 
264  virtual void giveToLrc(const DtAttributeHandleSet& set);
265 
267  virtual void divestToLrc(const DtAttributeHandleSet& set);
268 
270  virtual void giveToRti(const DtAttributeHandleSet& set);
271 
274  virtual void lrcUnmanage(const DtAttributeHandleSet& set);
275 
277 
278 
279  virtual void addRequest(const DtAttributeHandleSet& requestSet,
280  bool ifAvail);
281  virtual void removeRequest(const DtAttributeHandleSet& set);
283 
285 
286  virtual void addDivesting(const DtAttributeHandleSet& divestSet);
287  virtual void removeDivesting(const DtAttributeHandleSet& set);
289 
295  virtual void addRemoteRequest(
296  const DtAttributeHandleSet& requestSet,
297  DtFederateHandle fed);
298 
300 
301 
302  virtual void addPendingConfirm(const DtAttributeHandleSet& attrs,
303  DtFederateHandle fed);
304  virtual void removePendingConfirm(const DtAttributeHandleSet& requestSet,
305  DtFederateHandle fed);
306  virtual void removePendingConfirm(const DtAttributeHandleSet& set);
308 
309 
311  virtual void cancelDivest(const DtAttributeHandleSet& set);
312 
314  virtual void cancelRemoteRequest(
315  const DtAttributeHandleSet& requestSet,
316  DtFederateHandle fed );
317 
319  virtual void cancelAllRemoteRequests( const DtAttributeHandleSet& requestSet );
320 
322  virtual void removeCanceledRequests(DtAttributeHandleSet const& requestSet);
323 
325  virtual DtAttributeHandleSet canceledRequestSet() const;
326 
329  virtual bool isRequestCanceled(DtAttributeHandle hand);
330 
332  virtual int requestCount() const;
333 
335  virtual DtAttributeHandleSet const& requestedAttributes() const;
336 
338  virtual int confirmCount() const;
339 
341  virtual DtAttributeHandleSet const& pendingConfirmAttributes() const;
342 
345  virtual DtFederateHandle pendingRemoteRequest(
346  DtAttributeHandle hand);
347 
350  virtual DtFederateHandle pendingConfirm(DtAttributeHandle hand) const;
351 
359  virtual DtFederateHandle releaseRequested(
360  const DtAttributeHandleSet& inSet,
361  DtAttributeHandleSet* releasedSet,
362  bool keepForConfirm);
363 
370  virtual DtFederateHandle releaseConfirm(
371  const DtAttributeHandleSet& inSet,
372  DtAttributeHandleSet* releasedSet);
373 
375  virtual DtAttributeHandleSet requestedByFed(DtFederateHandle fed,
376  bool includePendingConfirm=false);
377 
379  virtual DtAttributeHandleSet pendingConfirmByFed( DtFederateHandle fed ) const;
380 
382  virtual DtFederateHandle unavailablePendingRequests( DtAttributeHandleSet* invalidatedSet );
383 
384 
386 
387 
388  virtual bool pendingUncondRequest(DtAttributeHandle hand);
389  virtual bool pendingRequestIfAvail(DtAttributeHandle hand);
391 
393  virtual void releaseAttrs(const DtAttributeHandleSet& releaseSet);
394 
396  virtual void takeAttrs(const DtAttributeHandleSet& takeSet);
397 
399  virtual bool okToReceive(DtHandle attrHandle, float tolerance);
400 
402  virtual unsigned int computeAttrOffset(DtHandle attrHandle);
403 
406  virtual const DtAttributeHandleSet& filterOwned(
407  const DtAttributeHandleSet& inSet) const;
408 
411  virtual int expectedCount(
412  const DtAhvps& inSet,
413  DtHandle regSetHandle) const;
414 
417  virtual void selectExpected(
418  DtAhvps& outSet,
419  const DtAhvps& inSet,
420  DtHandle regSetHandle) const;
421 
424  virtual void removeUnexpected(
425  DtAhvps& attrSet,
426  DtHandle regSetHandle) const;
427 
430  virtual int isOfActualClass(DtAttributeHandle handle) const;
431 
434  virtual int isOfKnownClass(DtAttributeHandle handle) const;
435 
437  virtual int expecting(DtAttributeHandle handle,
438  DtHandle regSetHandle) const;
439 
441  virtual const DtAttributeHandleSet& lrcManagedAttrs();
442 
444  virtual const DtAttributeHandleSet& ownedAttrs();
445 
447  virtual const DtAttributeHandleSet& rtiOwnedAttrs();
448 
450  virtual const DtAttributeHandleSet& divestingAttrs();
451 
453  virtual const DtAttributeHandleSet& divestedAttrs();
454 
456  virtual const DtAttributeHandleSet& uncondRequestedAttrs();
457 
459  virtual const DtAttributeHandleSet& ifAvailRequestedAttrs();
460 
462  virtual int inScope(DtAttributeHandle handle) const;
463 
465  virtual const DtAttributeHandleSet& inScopeAttrs();
466 
468  virtual bool inScope() const;
469 
471  virtual void addToScope(DtAttributeHandle handle);
472 
474  virtual void addToScope(const DtAttributeHandleSet& attrs);
475 
477  virtual void removeFromScope(DtAttributeHandle handle);
478 
480  virtual void removeFromScope(const DtAttributeHandleSet& attrs);
481 
483 
484  virtual void remoteSubscribe(DtFederateHandle fedHandle,
485  const DtAttributeHandleSet& attrs);
486  virtual void remoteSubscribe(DtFederateHandle fedHandle,
487  DtAttributeHandle attributeHandle);
489 
491 
492  virtual void remotePassiveSubscribe(DtFederateHandle fedHandle,
493  DtAttributeHandle attrHandle);
494  virtual void remotePassiveSubscribe(DtFederateHandle fedHandle,
495  const DtAttributeHandleSet& attrs);
497 
499 
500  virtual void remoteUnsubscribe(DtFederateHandle fedHandle,
501  DtAttributeHandle attrHandle);
502  virtual void remoteUnsubscribe(DtFederateHandle fedHandle,
503  const DtAttributeHandleSet& attrs);
504  virtual void remoteUnsubscribe(DtFederateHandle fedHandle);
506 
508  virtual void acquireRemoteSubscriptions(const DtAttributeHandleSet& attrs,
509  DtFomClassMgr* fom);
510 
511 #ifdef DDM
512 
514 
515  virtual void remoteSubscribeRegion( DtFederateHandle fedHandle,
516  DtHandle regionSetHandle,
517  DtAttributeHandle handle );
518  virtual void remoteSubscribeRegion( DtFederateHandle fedHandle,
519  DtHandle regionSetHandle,
520  const DtAttributeHandleSet& attrs );
522 
524 
525  virtual void remoteUnsubscribeRegion( DtFederateHandle fedHandle,
526  DtHandle regionSetHandle,
527  DtAttributeHandle attrHandle );
528  virtual void remoteUnsubscribeRegion( DtFederateHandle fedHandle,
529  DtHandle regionSetHandle,
530  const DtAttributeHandleSet& attrs );
531  virtual void remoteUnsubscribeRegion( DtFederateHandle fedHandle,
532  DtHandle regionSetHandle);
534 
535 #endif
536 
538 
539  virtual DtBitMask getDestinations() const;
540  virtual DtBitMask getDestinations( const DtAttributeHandleSet& attrs ) const;
541  virtual DtBitMask getDestinations( const DtAhvps& attrs ) const;
543 
546  virtual void getBaseClassDestinations(DtBitMask & dest, const DtAhvps& attrs, DtObjectClassInfo * baseClass ) const;
547 
549  virtual void overrideDestinations(DtBitMask const& mask);
550 
552  virtual void setAllDestinations();
553 
555  virtual void divestRemoteSubscriptions(const DtAttributeHandleSet& attrs);
556 
558  virtual bool isUpdateOn(DtAttributeHandle handle) const;
559 
561  virtual DtAttributeHandleSet updateOnAttrs() const;
562 
564  virtual DtAttributeHandleSet updateOffAttrs() const;
565 
567  virtual bool isUpdateOn() const;
568 
570 
571  virtual void turnUpdateOn(DtAttributeHandle handle);
572  virtual void turnUpdateOn(const DtAttributeHandleSet& attrs);
574 
576 
577  virtual void turnUpdateOff(DtAttributeHandle handle);
578  virtual void turnUpdateOff(const DtAttributeHandleSet& attrs);
580 
582  virtual MAKRti::DtTransportType attrTransport(
583  DtAttributeHandle theHandle);
584 
586  virtual MAKRti::DtOrderType attrOrder(
587  DtAttributeHandle theHandle);
588 
590  virtual void setAttrTransport(
591  DtAttributeHandle theHandle, MAKRti::DtTransportType transport);
592 
594  virtual void setAttrOrder(
595  DtAttributeHandle theHandle, MAKRti::DtOrderType order);
596 
598 #ifdef DDM
599 
600  virtual void setRegionSet(DtAttributeHandle attrHandle,
601  DtPubRegionSet* regionSet);
602  virtual DtPubRegionSet* regionSet(DtAttributeHandle attrHandle);
603 #endif
604  virtual DtHandle regionSetHandle(DtAttributeHandle attrHandle);
606 
609  virtual bool attrHasDimensions(DtAttributeHandle attrHandle) const;
610 
612 
613  virtual unsigned int encodedLength() const;
614  virtual void encode(const char *buff);
616 
619  virtual bool decode(const char *buff, DtFomClassMgr* fom);
620 
622  void setTimeToUseDestinations(MAKRti::DtTime timeVal);
623 
625  MAKRti::DtTime timeToUseDestinations() const;
626 
627 #ifdef DtIFSPEC1516E
628 
629  double getUpdateRate( DtAttributeHandle attrHandle ) const;
630 #endif
631 
632 public:
633 
636  static void setUseDiscoveredClass(bool yesNo);
637 
638 protected:
639 
641  inline DtRtiObject* self() const;
642 
644  virtual void addRemoteSubscribe(DtFederateHandle fedHandle,
645  DtAttributeHandle attrHandle);
646 
648  virtual void removeRemoteSubscribe(DtFederateHandle fedHandle,
649  DtAttributeHandle attrHandle);
650 
651 protected:
652 
655 
658 
661 
663  char* myObjName;
664 
667 
670 
672  bool myIsKnown;
673 
676 
679 
682 
685 
688 
691 
695 
698 
703 
707 
710 
713 
716 
719 
722 
725  MAKRti::DtHashlist myDiscoveredClass;
726 
729 
732 
734  unsigned myNumAttrs;
735 
739  MAKRti::DtTime myTimeToUseDestinations;
740 
741 protected:
744 
751 };
752 
753 #endif

Document ID: Generated on Fri Mar 14 19:08:55 EDT 2014 from SVN revision 137085
Copyright © 2005-2014 VT MÄK Inc. All Rights Reserved (www.mak.com)