VR-Exchange 2.6 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
tenaBroker/vlTena/reflectedObject.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 
14 #include <vlTena/dllExport.h>
15 #include <vl/globalObjectDesignator.h>
17 #include <vlutil/vlString.h>
18 #include <vlutil/vlList.h>
19 #include <vlutil/vlTime.h>
20 
21 class DtStateRepository;
22 
23 namespace MAKVrExchange
24 {
25 
26  namespace DtTenaBroker
27  {
28 
29  class DtExerciseConn;
30 
35  class DT_DLL_VLTENA DtReflectedObject : public DtListedObj
36  {
37  public:
38 
40  typedef DtStateRepository* (*DtBaseStateRepCreator)();
41 
42  public:
43 
45  DtReflectedObject(DtExerciseConn* conn,
46  DtStateRepository *stateRep);
47 
49  DtReflectedObject(DtExerciseConn* conn,
50  DtBaseStateRepCreator creator);
51 
53  virtual ~DtReflectedObject();
54 
57  virtual DtStateRepository* stateRep() const;
58 
60  virtual DtReflectedObject* nextObj() const;
61 
63  virtual DtReflectedObject* prevObj() const;
64 
67  virtual DtReflectedObject* wrapNextObj() const;
68 
71  virtual DtReflectedObject* wrapPrevObj() const;
72 
74  virtual DtStateRepository* sr() const;
75 
77  virtual const DtGlobalObjectDesignator& globalId() const = 0;
78 
81  virtual void baseAddPostUpdateCallback(
82  DtReflectedObjectCallbackFunction cb, void* userData);
83  virtual void baseRemovePostUpdateCallback(
84  DtReflectedObjectCallbackFunction cb, void* userData);
85 
87  virtual void processPostUpdateCallbacks();
88 
90  virtual void printDataToStream(std::ostream& str) const = 0;
91 
92  protected:
93 
95  DtReflectedObject(const DtReflectedObject& orig);
96 
98  DtReflectedObject& operator=(const DtReflectedObject& orig);
99 
100  protected:
101 
102  DtExerciseConn *myExConn;
103  DtIntrusiveList myStateUpdateCallbacks;
104  DtStateRepository *myStateRep;
105 
106  };
107 
108  DT_DLL_VLTENA std::ostream & operator << (std::ostream &str, const DtReflectedObject &sr);
109 
113  inline DtStateRepository* DtReflectedObject::stateRep() const
114  {
115  return myStateRep;
116  }
117 
118  inline DtStateRepository* DtReflectedObject::sr() const
119  {
120  return myStateRep;
121  }
122 
123  inline DtReflectedObject* DtReflectedObject::nextObj() const
124  {
125  return (DtReflectedObject*) DtListedObj::next();
126  }
127 
128  inline DtReflectedObject* DtReflectedObject::prevObj() const
129  {
130  return (DtReflectedObject*) DtListedObj::prev();
131  }
132 
133  inline DtReflectedObject* DtReflectedObject::wrapNextObj() const
134  {
135  return (DtReflectedObject*) DtListedObj::wrapNext();
136  }
137 
138  inline DtReflectedObject* DtReflectedObject::wrapPrevObj() const
139  {
140  return (DtReflectedObject*) DtListedObj::wrapPrev();
141  }
142 
143  }
144 }
145 
146 #endif // DtTENA

Document ID: Generated on Wed Jan 30 18:15:18 EST 2019 from SVN revision 195534
Copyright © 2005-2019 VT MÄK. All Rights Reserved (www.mak.com)