VR-Link API Documentation for HLA Evolved
tEmitSysInterface.h
Go to the documentation of this file.
1 //********************************************************************
4 //********************************************************************
5 //********************************************************************
7 //********************************************************************
8 #ifndef tEmitSysInterface_H_
9 #define tEmitSysInterface_H_
10 
14 
15 #if DtTENA
16 
17 #include "makLromMapExport.h"
18 #include <vlutil/vlMachineTypes.h>
19 #include <vl/tObjectInterface.h>
20 #include <vl/tReflEmitrSys.h>
21 #include <vl/emitterSysSR.h>
22 #include <vlpi/entityType.h>
23 #include <vl/globalObjDes.h>
24 
25 #include <MAK/ElectromagneticEmission/ServantPtr.h>
26 #include <MAK/ElectromagneticEmission/ProxyPtr.h>
27 #include <MAK/ElectromagneticEmission/ImmutablePublicationStatePtr.h>
28 #include <MAK/ElectromagneticEmission/SubscriptionInfoPtr.h>
29 
30 #include <map>
31 #include <list>
32 
39 class DT_DLL_MAKLROM DtEmitterSystemInterface: public DtObjectInterface
40 {
41 protected:
44  class DtEmitterSystemServantObject : public DtTenaServantObject
45  {
46  public:
48  DtEmitterSystemServantObject( MAK::ElectromagneticEmission::ServantPtr sp):myServantPtr(sp){}
49 
51  virtual ~DtEmitterSystemServantObject() {}
52 
54  virtual const MAK::ElectromagneticEmission::ServantPtr servant() const { return myServantPtr;}
55 
57  virtual MAK::ElectromagneticEmission::ServantPtr servant() { return myServantPtr;}
58 
59  protected:
60  MAK::ElectromagneticEmission::ServantPtr myServantPtr;
61  };
62 
63 public:
65  DtEmitterSystemInterface(DtExerciseConn* exConn);
66 
68  virtual ~DtEmitterSystemInterface();
69 
70 private:
72  DtEmitterSystemInterface(const DtEmitterSystemInterface &other);
73 
75  DtEmitterSystemInterface& operator=(const DtEmitterSystemInterface &other);
76 
77 public:
80  virtual DtTenaServantObject* createServantObject(DtExerciseConn* exConn);
81 
83  virtual void processServantCleanup(DtTenaServantObject* servantObject);
84 
86  virtual void subscribe();
87 
89  virtual bool needUpdate(const DtStateRepository& stateRep,
90  const DtStateRepository& asSeenByRemote,
91  bool useThresholding = true);
92 
94  virtual void decode(const DtTenaServantObject* servant,
95  DtStateRepository* stateRep)const;
96 
98  virtual void encode(DtTenaServantObject* servant,
99  const DtStateRepository* stateRep,
100  TENA::Time::Pointer timeForStamping,
101  bool forceUpdate = false);
102 
104  virtual DtReflectedObject *createReflectedObject()const;
105 
107  virtual void processAddition(MAK::ElectromagneticEmission::ProxyPtr const &proxy);
108 
110  virtual void processUpdate(MAK::ElectromagneticEmission::ProxyPtr const &proxy);
111 
113  virtual void processRemoval(MAK::ElectromagneticEmission::ProxyPtr const &proxy);
114 
115 
116 protected:
118  virtual void decode(const MAK::ElectromagneticEmission::ImmutablePublicationStatePtr pubStatePtr,
119  DtStateRepository* stateRep)const;
120 
121 protected:
122 
124  MAK::ElectromagneticEmission::SubscriptionInfoPtr mySubscriptionInfoPtr;
125  typedef std::map<MAK::ElectromagneticEmission::ProxyPtr, DtReflectedObject *> ProxyToRefObjMap;
126  ProxyToRefObjMap myRefEmitSysMap;
127  ProxyToRefObjMap myEmitterSystemWaitList;
128 };
129 
130 
131 #endif
132 #endif
133 
134 
135 

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)