VR-Exchange 2.4 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
reflectedObjectList.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2014 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #if DtTENA
11 
12 #pragma once
13 
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>
20 #include <vector>
21 
22 namespace MAKVrExchange
23 {
24 
25  namespace DtTenaBroker
26  {
27 
28  class DtExerciseConn;
29  class DtReflectedObject;
30 
32  typedef bool (*DtDiscoveryCondition)( DtReflectedObject* refObj, void* usr );
33 
35  typedef DtReflectedObject* (*DtCreateReflectedObjFn)( DtExerciseConn* );
36 
43  class DT_DLL_VLTENA DtReflectedObjectList
44  {
45  public:
46 
48  DtReflectedObjectList( DtExerciseConn* exConn );
49 
51  virtual ~DtReflectedObjectList();
52 
54  virtual DtExerciseConn* exerciseConn() const;
55 
57  virtual void print();
58 
61  virtual void setTimeoutProcessing( bool on );
62 
64  virtual DtReflectedObject* firstObj() const;
65  virtual DtReflectedObject* lastObj() const;
66 
68  virtual void setTimeoutInterval( DtTime time );
69  virtual DtTime timeoutInterval();
70 
72  virtual int count() const;
73 
76  virtual void setDiscoveryCondition( DtDiscoveryCondition fn, void* usr );
77 
80  virtual void clearDiscoveryCondition();
81 
83  virtual void setReflectedObjectCreationFunction(
84  DtCreateReflectedObjFn fn);
85 
88  virtual void setUseTenaTimeForSets(bool yesNo);
89 
90  virtual void addObjectAdditionCallback(DtReflectedObjectCallbackFunction cb, void* userData);
91 
92  virtual void addObjectRemovalCallback(DtReflectedObjectCallbackFunction cb, void* userData);
93 
94  virtual void removeObjectAdditionCallback( DtReflectedObjectCallbackFunction cb, void* userData);
95 
96  virtual void removeObjectRemovalCallback( DtReflectedObjectCallbackFunction cb, void* userData);
97 
98  protected:
99 
102  static void objectAdditionCallback(DtReflectedObject *obj, void *userData);
103 
106  static void objectRemovalCallback(DtReflectedObject *obj, void *userData);
107 
110  virtual void processObjectAddition(DtReflectedObject *);
111 
114  virtual void processObjectRemoval(DtReflectedObject *);
115 
116  virtual void objectAdded(DtReflectedObject* object);
117 
118  void init(const std::vector<DtString>& interfaceNames);
119 
120  private:
121 
123  DtReflectedObjectList(const DtReflectedObjectList& orig);
124 
126  DtReflectedObjectList& operator=(const DtReflectedObjectList& orig);
127 
128  protected:
129 
130  std::vector<DtString> myInterfaceNames;
131  DtExerciseConn* myExConn;
132  DtTime myTimeoutInterval;
133  bool myTimeoutProcessingFlag;
134  DtIntrusiveList myObjectList;
135 
136  };
137 
138  }
139 }
140 
141 #endif

Document ID: Generated on Thu Jul 23 10:25:22 EDT 2015 from SVN revision 155065
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)