MAK RTIspy API Documentation for HLA 1.3
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 
545  virtual void overrideDestinations(DtBitMask const& mask);
546 
548  virtual void setAllDestinations();
549 
551  virtual void divestRemoteSubscriptions(const DtAttributeHandleSet& attrs);
552 
554  virtual bool isUpdateOn(DtAttributeHandle handle) const;
555 
557  virtual DtAttributeHandleSet updateOnAttrs() const;
558 
560  virtual DtAttributeHandleSet updateOffAttrs() const;
561 
563  virtual bool isUpdateOn() const;
564 
566 
567  virtual void turnUpdateOn(DtAttributeHandle handle);
568  virtual void turnUpdateOn(const DtAttributeHandleSet& attrs);
570 
572 
573  virtual void turnUpdateOff(DtAttributeHandle handle);
574  virtual void turnUpdateOff(const DtAttributeHandleSet& attrs);
576 
578  virtual MAKRti::DtTransportType attrTransport(
579  DtAttributeHandle theHandle);
580 
582  virtual MAKRti::DtOrderType attrOrder(
583  DtAttributeHandle theHandle);
584 
586  virtual void setAttrTransport(
587  DtAttributeHandle theHandle, MAKRti::DtTransportType transport);
588 
590  virtual void setAttrOrder(
591  DtAttributeHandle theHandle, MAKRti::DtOrderType order);
592 
594 #ifdef DDM
595 
596  virtual void setRegionSet(DtAttributeHandle attrHandle,
597  DtPubRegionSet* regionSet);
598  virtual DtPubRegionSet* regionSet(DtAttributeHandle attrHandle);
599 #endif
600  virtual DtHandle regionSetHandle(DtAttributeHandle attrHandle);
602 
605  virtual bool attrHasDimensions(DtAttributeHandle attrHandle) const;
606 
608 
609  virtual unsigned int encodedLength() const;
610  virtual void encode(const char *buff);
612 
615  virtual bool decode(const char *buff, DtFomClassMgr* fom);
616 
618  void setTimeToUseDestinations(MAKRti::DtTime timeVal);
619 
621  MAKRti::DtTime timeToUseDestinations() const;
622 
623 #ifdef DtIFSPEC1516E
624 
625  double getUpdateRate( DtAttributeHandle attrHandle ) const;
626 #endif
627 
628 public:
629 
632  static void setUseDiscoveredClass(bool yesNo);
633 
634 protected:
635 
637  inline DtRtiObject* self() const;
638 
640  virtual void addRemoteSubscribe(DtFederateHandle fedHandle,
641  DtAttributeHandle attrHandle);
642 
644  virtual void removeRemoteSubscribe(DtFederateHandle fedHandle,
645  DtAttributeHandle attrHandle);
646 
647 protected:
648 
651 
654 
657 
659  char* myObjName;
660 
663 
666 
668  bool myIsKnown;
669 
672 
675 
678 
681 
684 
687 
691 
694 
699 
703 
706 
709 
712 
715 
718 
721  MAKRti::DtHashlist myDiscoveredClass;
722 
725 
728 
730  unsigned myNumAttrs;
731 
735  MAKRti::DtTime myTimeToUseDestinations;
736 
737 protected:
740 
747 };
748 
749 #endif

Document ID: Generated on Tue May 7 16:26:47 EDT 2013 from SVN revision 126903
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)