14 #include <vlutil/vlMachineTypes.h>
17 #include <vl/globalObjectDesignator.h>
18 #include <vl/aggregateStateRepository.h>
21 #include <MAK/Aggregate/ServantPtr.h>
22 #include <MAK/Aggregate/ProxyPtr.h>
23 #include <MAK/Aggregate/ImmutablePublicationStatePtr.h>
24 #include <MAK/Aggregate/SubscriptionInfoPtr.h>
25 #include <TENA/GeocentricSpatialReferenceFrame/Pointer.h>
30 namespace MAKVrExchange
33 namespace DtTenaBroker
42 class DT_DLL_MAKLROM DtAggregateInterface:
public DtObjectInterface
48 class DtAggregateServantObject :
public DtTenaServantObject
53 DtAggregateServantObject( MAK::Aggregate::ServantPtr sp):myServantPtr(sp){}
56 virtual ~DtAggregateServantObject() {}
59 virtual const MAK::Aggregate::ServantPtr servant()
const {
return myServantPtr;}
62 virtual MAK::Aggregate::ServantPtr servant() {
return myServantPtr;}
66 MAK::Aggregate::ServantPtr myServantPtr;
73 DtAggregateInterface(DtExerciseConn* exConn);
76 virtual ~DtAggregateInterface();
80 virtual DtTenaServantObject* createServantObject(DtExerciseConn* exConn);
83 virtual void processServantCleanup(DtTenaServantObject* servantObject);
86 virtual void subscribe();
89 virtual bool needUpdate(
const DtStateRepository& stateRep,
90 const DtStateRepository& asSeenByRemote,
91 bool useThresholding =
true);
94 virtual void decode(
const DtTenaServantObject* servant,
95 DtStateRepository* stateRep)
const;
98 virtual void encode(DtTenaServantObject* servant,
99 const DtStateRepository* stateRep,
100 TENA::Time::Pointer timeForStamping,
101 bool forceUpdate =
false);
104 virtual DtReflectedObject *createReflectedObject()
const;
107 virtual void processAddition(MAK::Aggregate::ProxyPtr
const &proxy);
110 virtual void processUpdate(MAK::Aggregate::ProxyPtr
const &proxy);
113 virtual void processRemoval(MAK::Aggregate::ProxyPtr
const &proxy);
118 virtual void decode(
const MAK::Aggregate::ImmutablePublicationStatePtr pubStatePtr,
119 DtStateRepository* stateRep )
const;
124 DtAggregateInterface(
const DtAggregateInterface &other);
127 DtAggregateInterface& operator=(
const DtAggregateInterface &other);
132 MAK::Aggregate::SubscriptionInfoPtr mySubscriptionInfoPtr;
133 typedef std::map<MAK::Aggregate::ProxyPtr,DtReflectedObject*> ProxyToRefObjMap;
134 ProxyToRefObjMap myRefAggregateMap;
135 ProxyToRefObjMap myAggregateWaitList;
136 TENA::GeocentricSpatialReferenceFrame::Pointer myGeocSrf;
Contains the DtTenaServantObject and DtObjectInterface class declarations.
#define DT_DLL_MAKLROM
Definition: makLromMapExport.h:26