15 #include <vlutil/vlMachineTypes.h>
16 #include <vlutil/vlHashlist.h>
17 #include <vlutil/vlString.h>
18 #include <vlutil/vlTime.h>
19 #include <vlutil/vlList.h>
22 namespace MAKVrExchange
25 namespace DtTenaBroker
29 class DtReflectedObject;
32 typedef bool (*DtDiscoveryCondition)( DtReflectedObject* refObj,
void* usr );
35 typedef DtReflectedObject* (*DtCreateReflectedObjFn)( DtExerciseConn* );
48 DtReflectedObjectList( DtExerciseConn* exConn );
51 virtual ~DtReflectedObjectList();
54 virtual DtExerciseConn* exerciseConn()
const;
61 virtual void setTimeoutProcessing(
bool on );
64 virtual DtReflectedObject* firstObj()
const;
65 virtual DtReflectedObject* lastObj()
const;
68 virtual void setTimeoutInterval( DtTime time );
69 virtual DtTime timeoutInterval();
72 virtual int count()
const;
76 virtual void setDiscoveryCondition( DtDiscoveryCondition fn,
void* usr );
80 virtual void clearDiscoveryCondition();
83 virtual void setReflectedObjectCreationFunction(
84 DtCreateReflectedObjFn fn);
88 virtual void setUseTenaTimeForSets(
bool yesNo);
90 virtual void addObjectAdditionCallback(DtReflectedObjectCallbackFunction cb,
void* userData);
92 virtual void addObjectRemovalCallback(DtReflectedObjectCallbackFunction cb,
void* userData);
94 virtual void removeObjectAdditionCallback( DtReflectedObjectCallbackFunction cb,
void* userData);
96 virtual void removeObjectRemovalCallback( DtReflectedObjectCallbackFunction cb,
void* userData);
102 static void objectAdditionCallback(DtReflectedObject *obj,
void *userData);
106 static void objectRemovalCallback(DtReflectedObject *obj,
void *userData);
110 virtual void processObjectAddition(DtReflectedObject *);
114 virtual void processObjectRemoval(DtReflectedObject *);
116 virtual void objectAdded(DtReflectedObject*
object);
118 void init(
const std::vector<DtString>& interfaceNames);
123 DtReflectedObjectList(
const DtReflectedObjectList& orig);
126 DtReflectedObjectList& operator=(
const DtReflectedObjectList& orig);
130 std::vector<DtString> myInterfaceNames;
131 DtExerciseConn* myExConn;
132 DtTime myTimeoutInterval;
133 bool myTimeoutProcessingFlag;
134 DtIntrusiveList myObjectList;