8 #ifndef tEmitSysInterface_H_
9 #define tEmitSysInterface_H_
25 #include <MAK/ElectromagneticEmission/ServantPtr.h>
26 #include <MAK/ElectromagneticEmission/ProxyPtr.h>
27 #include <MAK/ElectromagneticEmission/ImmutablePublicationStatePtr.h>
28 #include <MAK/ElectromagneticEmission/SubscriptionInfoPtr.h>
39 class DT_DLL_MAKLROM DtEmitterSystemInterface:
public DtObjectInterface
44 class DtEmitterSystemServantObject :
public DtTenaServantObject
48 DtEmitterSystemServantObject( MAK::ElectromagneticEmission::ServantPtr sp):myServantPtr(sp){}
51 virtual ~DtEmitterSystemServantObject() {}
54 virtual const MAK::ElectromagneticEmission::ServantPtr servant()
const {
return myServantPtr;}
57 virtual MAK::ElectromagneticEmission::ServantPtr servant() {
return myServantPtr;}
60 MAK::ElectromagneticEmission::ServantPtr myServantPtr;
68 virtual ~DtEmitterSystemInterface();
72 DtEmitterSystemInterface(
const DtEmitterSystemInterface &other);
75 DtEmitterSystemInterface& operator=(
const DtEmitterSystemInterface &other);
80 virtual DtTenaServantObject* createServantObject(
DtExerciseConn* exConn);
83 virtual void processServantCleanup(DtTenaServantObject* servantObject);
86 virtual void subscribe();
91 bool useThresholding =
true);
94 virtual void decode(
const DtTenaServantObject* servant,
98 virtual void encode(DtTenaServantObject* servant,
100 TENA::Time::Pointer timeForStamping,
101 bool forceUpdate =
false);
107 virtual void processAddition(MAK::ElectromagneticEmission::ProxyPtr
const &proxy);
110 virtual void processUpdate(MAK::ElectromagneticEmission::ProxyPtr
const &proxy);
113 virtual void processRemoval(MAK::ElectromagneticEmission::ProxyPtr
const &proxy);
118 virtual void decode(
const MAK::ElectromagneticEmission::ImmutablePublicationStatePtr pubStatePtr,
124 MAK::ElectromagneticEmission::SubscriptionInfoPtr mySubscriptionInfoPtr;
125 typedef std::map<MAK::ElectromagneticEmission::ProxyPtr, DtReflectedObject *> ProxyToRefObjMap;
126 ProxyToRefObjMap myRefEmitSysMap;
127 ProxyToRefObjMap myEmitterSystemWaitList;