13 #include <vl/emitterSystemRepository.h>
14 #include <vl/globalObjectDesignator.h>
17 #include <vlutil/vlMachineTypes.h>
18 #include <vlpi/entityType.h>
20 #include <MAK/ElectromagneticEmission/ImmutablePublicationStatePtr.h>
21 #include <MAK/ElectromagneticEmission/SubscriptionInfoPtr.h>
22 #include <MAK/ElectromagneticEmission/ServantPtr.h>
23 #include <MAK/ElectromagneticEmission/ProxyPtr.h>
28 namespace MAKVrExchange
31 namespace DtTenaBroker
40 class DT_DLL_MAKLROM DtEmitterSystemInterface:
public DtObjectInterface
46 class DtEmitterSystemServantObject :
public DtTenaServantObject
51 DtEmitterSystemServantObject( MAK::ElectromagneticEmission::ServantPtr sp):myServantPtr(sp){}
54 virtual ~DtEmitterSystemServantObject() {}
57 virtual const MAK::ElectromagneticEmission::ServantPtr servant()
const {
return myServantPtr;}
60 virtual MAK::ElectromagneticEmission::ServantPtr servant() {
return myServantPtr;}
64 MAK::ElectromagneticEmission::ServantPtr myServantPtr;
71 DtEmitterSystemInterface(DtExerciseConn* exConn);
74 virtual ~DtEmitterSystemInterface();
78 virtual DtTenaServantObject* createServantObject(DtExerciseConn* exConn);
81 virtual void processServantCleanup(DtTenaServantObject* servantObject);
84 virtual void subscribe();
87 virtual bool needUpdate(
const DtStateRepository& stateRep,
88 const DtStateRepository& asSeenByRemote,
89 bool useThresholding =
true);
92 virtual void decode(
const DtTenaServantObject* servant,
93 DtStateRepository* stateRep)
const;
96 virtual void encode(DtTenaServantObject* servant,
97 const DtStateRepository* stateRep,
98 TENA::Time::Pointer timeForStamping,
99 bool forceUpdate =
false);
102 virtual DtReflectedObject *createReflectedObject()
const;
105 virtual void processAddition(MAK::ElectromagneticEmission::ProxyPtr
const &proxy);
108 virtual void processUpdate(MAK::ElectromagneticEmission::ProxyPtr
const &proxy);
111 virtual void processRemoval(MAK::ElectromagneticEmission::ProxyPtr
const &proxy);
116 virtual void decode(
const MAK::ElectromagneticEmission::ImmutablePublicationStatePtr pubStatePtr,
117 DtStateRepository* stateRep)
const;
122 DtEmitterSystemInterface(
const DtEmitterSystemInterface &other);
125 DtEmitterSystemInterface& operator=(
const DtEmitterSystemInterface &other);
130 MAK::ElectromagneticEmission::SubscriptionInfoPtr mySubscriptionInfoPtr;
131 typedef std::map<MAK::ElectromagneticEmission::ProxyPtr, DtReflectedObject *> ProxyToRefObjMap;
132 ProxyToRefObjMap myRefEmitSysMap;
133 ProxyToRefObjMap myEmitterSystemWaitList;