VR-Link API Documentation for DIS
tRefObjList.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
6 
7 #ifndef tRefObjList_H_
8 #define tRefObjList_H_
9 
10 #if DtTENA
11 
12 
13 #include <vlutil/vlMachineTypes.h>
14 #include <vlutil/vlTime.h>
15 #include <vlutil/vlString.h>
16 #include <vlutil/vlList.h>
17 #include "refObjCbInfo.h"
18 #include <vlutil/vlHashlist.h>
19 
20 #include <vector>
21 
25 
27 class DT_DLL_VL DtHlaObject;
28 class DT_DLL_VL DtStateMsg;
31 
33 typedef bool (*DtDiscoveryCondition)(DtReflectedObject* refObj, void* usr);
34 
36 typedef DtReflectedObject* (*DtCreateReflectedObjFn)(DtExerciseConn*);
37 
45 {
46 
47 public:
48 
51 
53  virtual ~DtReflectedObjectList();
54 
55 private:
56 
59 
61  DtReflectedObjectList& operator=(const DtReflectedObjectList& orig);
62 
63 public:
64 
66  virtual DtExerciseConn* exerciseConn() const;
67 
69  virtual void print();
70 
73  virtual void setTimeoutProcessing(bool on);
74 
76  virtual DtReflectedObject* firstObj() const;
77  virtual DtReflectedObject* lastObj() const;
78 
80  virtual void setTimeoutInterval(DtTime time);
81  virtual DtTime timeoutInterval();
82 
84  virtual int count() const;
85 
88  virtual void setDiscoveryCondition(DtDiscoveryCondition fn, void* usr);
89 
92  virtual void clearDiscoveryCondition();
93 
95  virtual void setReflectedObjectCreationFunction(
96  DtCreateReflectedObjFn fn);
97 
100  virtual void setUseTenaTimeForSets(bool yesNo);
101 
102  virtual void addObjectAdditionCallback(DtReflectedObjectCallbackFunction cb, void* userData);
103 
104  virtual void addObjectRemovalCallback(DtReflectedObjectCallbackFunction cb, void* userData);
105 
106  virtual void removeObjectAdditionCallback( DtReflectedObjectCallbackFunction cb, void* userData);
107 
108  virtual void removeObjectRemovalCallback( DtReflectedObjectCallbackFunction cb, void* userData);
109 
110 protected:
111 
114  virtual void processObjectAddition(DtReflectedObject *);
115 
118  virtual void processObjectRemoval(DtReflectedObject *);
119 
120  virtual void objectAdded(DtReflectedObject* object);
121 
122  void init(const std::vector<DtString>& interfaceNames);
123 
124 protected:
125 
128  static void objectAdditionCallback(DtReflectedObject *obj, void *userData);
129 
132  static void objectRemovalCallback(DtReflectedObject *obj, void *userData);
133 
134 protected:
135 
136  std::vector<DtString> myInterfaceNames;
137  DtExerciseConn* myExConn;
138  DtTime myTimeoutInterval;
139  bool myTimeoutProcessingFlag;
140  DtIntrusiveList myObjectList;
141 };
142 
143 #endif
144 #endif
145 

Document ID: Generated on Wed Aug 14 15:35:11 EDT 2013 from SVN revision 130445
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)