VR-Link API Documentation for DIS
tRadXmitInterface.h
Go to the documentation of this file.
1 //********************************************************************
4 //********************************************************************
5 //********************************************************************
7 //********************************************************************
8 
9 #ifndef tRadXmitInterface_H_
10 #define tRadXmitInterface_H_
11 
12 #if DtTENA
13 
14 #include "makLromMapExport.h"
15 #include <vlutil/vlMachineTypes.h>
16 #include <vl/tObjectInterface.h>
17 #include <vl/tReflRadXmitr.h>
18 #include <vl/radioXmitSR.h>
19 #include <vlpi/entityType.h>
20 #include <vl/globalObjDes.h>
21 
22 #include <MAK/RadioTransmitter/ServantPtr.h>
23 #include <MAK/RadioTransmitter/ProxyPtr.h>
24 #include <MAK/RadioTransmitter/ImmutablePublicationStatePtr.h>
25 #include <MAK/RadioTransmitter/SubscriptionInfoPtr.h>
26 
27 #include <map>
28 #include <list>
29 
33 
35 //
42 class DT_DLL_MAKLROM DtRadioTransmitterInterface: public DtObjectInterface
43 {
44 protected:
47  class DtRadioTransmitterServantObject : public DtTenaServantObject
48  {
49  public:
51  DtRadioTransmitterServantObject( MAK::RadioTransmitter::ServantPtr sp):myServantPtr(sp){}
52 
54  virtual ~DtRadioTransmitterServantObject() {}
55 
57  virtual const MAK::RadioTransmitter::ServantPtr servant() const { return myServantPtr;}
58 
60  virtual MAK::RadioTransmitter::ServantPtr servant() { return myServantPtr;}
61 
62  protected:
63  MAK::RadioTransmitter::ServantPtr myServantPtr;
64  };
65 
66 public:
68  DtRadioTransmitterInterface(DtExerciseConn* exConn);
69 
71  virtual ~DtRadioTransmitterInterface();
72 
73 private:
75  DtRadioTransmitterInterface(const DtRadioTransmitterInterface &other);
76 
78  DtRadioTransmitterInterface& operator=(const DtRadioTransmitterInterface &other);
79 
80 public:
83  virtual DtTenaServantObject* createServantObject(DtExerciseConn* exConn);
84 
86  virtual void processServantCleanup(DtTenaServantObject* servantObject);
87 
89  virtual void subscribe();
90 
92  virtual bool needUpdate(const DtStateRepository& stateRep,
93  const DtStateRepository& asSeenByRemote,
94  bool useThresholding = true);
95 
97  virtual void decode(const DtTenaServantObject* servant,
98  DtStateRepository* stateRep)const;
99 
101  virtual void encode(DtTenaServantObject* servant,
102  const DtStateRepository* stateRep,
103  TENA::Time::Pointer timeForStamping,
104  bool forceUpdate = false);
105 
107  virtual DtReflectedObject *createReflectedObject()const;
108 
110  virtual void processAddition(MAK::RadioTransmitter::ProxyPtr const &proxy);
111 
113  virtual void processUpdate(MAK::RadioTransmitter::ProxyPtr const &proxy);
114 
116  virtual void processRemoval(MAK::RadioTransmitter::ProxyPtr const &proxy);
117 
118 
119 protected:
121  virtual void decode(const MAK::RadioTransmitter::ImmutablePublicationStatePtr pubStatePtr,
122  DtStateRepository* stateRep)const;
123 
124 protected:
125 
127  MAK::RadioTransmitter::SubscriptionInfoPtr mySubscriptionInfoPtr;
128  typedef std::map<MAK::RadioTransmitter::ProxyPtr, DtReflectedObject *> ProxyToRefObjMap;
129  ProxyToRefObjMap myRefRadXmitMap;
130  ProxyToRefObjMap myTransmitterWaitList;
131 };
132 
133 
134 #endif
135 #endif
136 
137 
138 

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)