VR-Link API Documentation for HLA 1.3
tIffInterface.h
Go to the documentation of this file.
1 //********************************************************************
4 //********************************************************************
5 //********************************************************************
7 //********************************************************************
8 
9 #ifndef tIffInterface_H_
10 #define tIffInterface_H_
11 
12 #if DtTENA
13 
14 #include "makLromMapExport.h"
15 #include <vlutil/vlMachineTypes.h>
16 #include <vl/tObjectInterface.h>
17 #include <vl/tReflIff.h>
18 #include <vl/iffSR.h>
19 #include <vlpi/entityType.h>
20 #include <vl/globalObjDes.h>
21 
23 #include <JNTC/AirTransponder/ServantPtr.h>
24 #include <JNTC/AirTransponder/ProxyPtr.h>
25 #include <JNTC/AirTransponder/ImmutablePublicationStatePtr.h>
26 #include <JNTC/AirTransponder/SubscriptionInfoPtr.h>
27 
28 #include <map>
29 #include <list>
30 
34 
36 //
43 class DT_DLL_MAKLROM DtIffInterface: public DtObjectInterface
44 {
45 protected:
48  class DtIffServantObject : public DtTenaServantObject
49  {
50  public:
52  DtIffServantObject( JNTC::AirTransponder::ServantPtr sp):myServantPtr(sp){}
53 
55  virtual ~DtIffServantObject() {}
56 
58  virtual const JNTC::AirTransponder::ServantPtr servant() const { return myServantPtr;}
59 
61  virtual JNTC::AirTransponder::ServantPtr servant() { return myServantPtr;}
62 
63  protected:
64  JNTC::AirTransponder::ServantPtr myServantPtr;
65  };
66 
67 public:
69  DtIffInterface(DtExerciseConn* exConn);
70 
72  virtual ~DtIffInterface();
73 
74 private:
76  DtIffInterface(const DtIffInterface &other);
77 
79  DtIffInterface& operator=(const DtIffInterface &other);
80 
81 public:
84  virtual DtTenaServantObject* createServantObject(DtExerciseConn* exConn);
85 
87  virtual void processServantCleanup(DtTenaServantObject* servantObject);
88 
90  virtual void subscribe();
91 
93  virtual bool needUpdate(const DtStateRepository& stateRep,
94  const DtStateRepository& asSeenByRemote,
95  bool useThresholding = true);
96 
98  virtual void decode(const DtTenaServantObject* servant,
99  DtStateRepository* stateRep)const;
100 
102  virtual void encode(DtTenaServantObject* servant,
103  const DtStateRepository* stateRep,
104  TENA::Time::Pointer timeForStamping,
105  bool forceUpdate = false);
106 
108  virtual DtReflectedObject *createReflectedObject()const;
109 
111  virtual void processAddition(JNTC::AirTransponder::ProxyPtr const &proxy);
112 
114  virtual void processUpdate(JNTC::AirTransponder::ProxyPtr const &proxy);
115 
117  virtual void processRemoval(JNTC::AirTransponder::ProxyPtr const &proxy);
118 
119 
120 protected:
122  virtual void decode(const JNTC::AirTransponder::ImmutablePublicationStatePtr pubStatePtr,
123  DtStateRepository* stateRep)const;
124 
125 protected:
126 
128  JNTC::AirTransponder::SubscriptionInfoPtr mySubscriptionInfoPtr;
129  typedef std::map<JNTC::AirTransponder::ProxyPtr, DtReflectedObject *> ProxyToRefObjMap;
130  ProxyToRefObjMap myRefIffMap;
131  ProxyToRefObjMap myIffWaitList;
132 
133 };
134 
135 
136 #endif
137 #endif
138 
139 
140 

Document ID: Generated on Wed Aug 14 15:35:11 EDT 2013 from SVN revision 130445
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)