15 #include <vl/globalObjectDesignator.h>
19 #include <TENA/AMO/ImmutablePublicationStatePtr.h>
20 #include <TENA/AMO/SubscriptionInfoPtr.h>
21 #include <TENA/UniqueID/Includes.h>
22 #include <TENA/AMO/ServantPtr.h>
23 #include <TENA/AMO/ProxyPtr.h>
25 #include <vlutil/vlMachineTypes.h>
33 namespace DtTenaBroker
47 class DtAmoServantObject :
public DtTenaServantObject
51 DtAmoServantObject( TENA::AMO::ServantPtr sp):myServantPtr(sp){}
54 virtual ~DtAmoServantObject() {}
57 virtual const TENA::AMO::ServantPtr servant()
const {
return myServantPtr;}
60 virtual TENA::AMO::ServantPtr servant() {
return myServantPtr;}
63 TENA::AMO::ServantPtr myServantPtr;
69 DtAmoInterface(DtExerciseConn* exConn);
72 virtual ~DtAmoInterface();
76 virtual DtTenaServantObject* createServantObject(DtExerciseConn* exConn);
79 virtual void processServantCleanup(DtTenaServantObject* servantObject);
82 virtual void subscribe();
85 virtual bool needUpdate(
const DtStateRepository& stateRep,
86 const DtStateRepository& asSeenByRemote,
87 bool useThresholding =
true);
90 virtual void decode(
const DtTenaServantObject* servant,
91 DtStateRepository* stateRep)
const;
94 virtual void encode(DtTenaServantObject* servant,
95 const DtStateRepository* stateRep,
96 TENA::Time::Pointer timeForStamping,
97 bool forceUpdate =
false);
100 virtual DtReflectedObject *createReflectedObject()
const;
103 virtual void processAddition(TENA::AMO::ProxyPtr
const &proxy);
106 virtual void processUpdate(TENA::AMO::ProxyPtr
const &proxy);
109 virtual void processRemoval(TENA::AMO::ProxyPtr
const &proxy);
114 virtual void decode(
const TENA::AMO::ImmutablePublicationStatePtr pubStatePtr,
115 DtStateRepository* stateRep )
const;
120 DtAmoInterface(
const DtAmoInterface &other);
123 DtAmoInterface& operator=(
const DtAmoInterface &other);
128 TENA::AMO::SubscriptionInfoPtr mySubscriptionInfoPtr;
129 typedef std::map<TENA::AMO::ProxyPtr,DtReflectedObject*> ProxyToRefObjMap;
130 ProxyToRefObjMap myRefAmoMap;
131 ProxyToRefObjMap myAmoWaitList;