9 #ifndef tAggInterface_H_
10 #define tAggInterface_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>
42 class DT_DLL_MAKLROM DtAggregateInterface:
public DtObjectInterface
48 class DtAggregateServantObject :
public DtTenaServantObject
52 DtAggregateServantObject( MAK::Aggregate::ServantPtr sp):myServantPtr(sp){}
55 virtual ~DtAggregateServantObject() {}
58 virtual const MAK::Aggregate::ServantPtr servant()
const {
return myServantPtr;}
61 virtual MAK::Aggregate::ServantPtr servant() {
return myServantPtr;}
64 MAK::Aggregate::ServantPtr myServantPtr;
73 virtual ~DtAggregateInterface();
78 DtAggregateInterface(
const DtAggregateInterface &other);
81 DtAggregateInterface& operator=(
const DtAggregateInterface &other);
86 virtual DtTenaServantObject* createServantObject(
DtExerciseConn* exConn);
89 virtual void processServantCleanup(DtTenaServantObject* servantObject);
92 virtual void subscribe();
97 bool useThresholding =
true);
100 virtual void decode(
const DtTenaServantObject* servant,
104 virtual void encode(DtTenaServantObject* servant,
106 TENA::Time::Pointer timeForStamping,
107 bool forceUpdate =
false);
113 virtual void processAddition(MAK::Aggregate::ProxyPtr
const &proxy);
116 virtual void processUpdate(MAK::Aggregate::ProxyPtr
const &proxy);
119 virtual void processRemoval(MAK::Aggregate::ProxyPtr
const &proxy);
125 virtual void decode(
const MAK::Aggregate::ImmutablePublicationStatePtr pubStatePtr,
130 MAK::Aggregate::SubscriptionInfoPtr mySubscriptionInfoPtr;
131 typedef std::map<MAK::Aggregate::ProxyPtr, DtReflectedObject *> ProxyToRefObjMap;
132 ProxyToRefObjMap myRefAggregateMap;
133 ProxyToRefObjMap myAggregateWaitList;
134 TENA::GeocentricSpatialReferenceFrame::Pointer myGeocSrf;