15 #include <vl/globalObjectDesignator.h>
17 #include <vlutil/vlString.h>
18 #include <vlutil/vlList.h>
19 #include <vlutil/vlTime.h>
21 class DtStateRepository;
23 namespace MAKVrExchange
26 namespace DtTenaBroker
40 typedef DtStateRepository* (*DtBaseStateRepCreator)();
45 DtReflectedObject(DtExerciseConn* conn,
46 DtStateRepository *stateRep);
49 DtReflectedObject(DtExerciseConn* conn,
50 DtBaseStateRepCreator creator);
53 virtual ~DtReflectedObject();
57 virtual DtStateRepository* stateRep()
const;
60 virtual DtReflectedObject* nextObj()
const;
63 virtual DtReflectedObject* prevObj()
const;
67 virtual DtReflectedObject* wrapNextObj()
const;
71 virtual DtReflectedObject* wrapPrevObj()
const;
74 virtual DtStateRepository* sr()
const;
77 virtual const DtGlobalObjectDesignator& globalId()
const = 0;
81 virtual void baseAddPostUpdateCallback(
82 DtReflectedObjectCallbackFunction cb,
void* userData);
83 virtual void baseRemovePostUpdateCallback(
84 DtReflectedObjectCallbackFunction cb,
void* userData);
87 virtual void processPostUpdateCallbacks();
90 virtual void printDataToStream(std::ostream& str)
const = 0;
95 DtReflectedObject(
const DtReflectedObject& orig);
98 DtReflectedObject& operator=(
const DtReflectedObject& orig);
102 DtExerciseConn *myExConn;
103 DtIntrusiveList myStateUpdateCallbacks;
104 DtStateRepository *myStateRep;
113 inline DtStateRepository* DtReflectedObject::stateRep()
const
118 inline DtStateRepository* DtReflectedObject::sr()
const
123 inline DtReflectedObject* DtReflectedObject::nextObj()
const
125 return (DtReflectedObject*) DtListedObj::next();
128 inline DtReflectedObject* DtReflectedObject::prevObj()
const
130 return (DtReflectedObject*) DtListedObj::prev();
133 inline DtReflectedObject* DtReflectedObject::wrapNextObj()
const
135 return (DtReflectedObject*) DtListedObj::wrapNext();
138 inline DtReflectedObject* DtReflectedObject::wrapPrevObj()
const
140 return (DtReflectedObject*) DtListedObj::wrapPrev();