VR-Exchange 2.1 API Documentation
disBroker/objectTrans.h
Go to the documentation of this file.
1 /*********************************************************************
2  ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
6 #ifndef objectTrans_H_
7 #define objectTrans_H_
8 
12 
13 #include "translator.h"
14 
15 #include <map>
16 #include <list>
17 
18 class DtReflectedObject;
19 class DtStateRepository;
20 
21 
22 namespace MAKVrExchange {
23 class DtPortalMessage;
24 class DtPortalReflectedObject;
25 namespace DtDisBroker {
26 
27 class DtBrokerObject;
28 
35 {
36 public:
38  typedef enum {
39  none = 0,
40  discover=1,
41  update=2,
42  remove=3}
43  UpdateType;
44 
45 
46  typedef void (*BrokerObjectCbPtr)
47  ( const DtBrokerObject *brokerObjectPointer,
48  void *userData);
49 
50 public:
51 
54 
56  virtual ~DtObjectTranslator();
57 
58 private:
59 
62 
64  DtObjectTranslator& operator=(const DtObjectTranslator& other);
65 
66 public:
67 
70  virtual DtBrokerObject *releaseBrokerObject(
71  const DtReflectedObject* reflectedObj);
72  virtual DtBrokerObject *releaseBrokerObject(
73  const DtPortalReflectedObject* reflectedObj);
74 
78  virtual DtBrokerObject *findBrokerObject(
79  const DtReflectedObject* reflectedObj);
80  virtual DtBrokerObject *findBrokerObject(
81  const DtPortalReflectedObject* reflectedObj);
82 
85  virtual DtBrokerObject *createBrokerObject(
86  const DtReflectedObject* reflectedObj);
87  virtual DtBrokerObject *createBrokerObject(
88  const DtPortalReflectedObject* reflectedObj);
89 
93  virtual bool isDisDiscoverable(const DtReflectedObject* reflectedObj);
94 
98  virtual bool isPortalDiscoverable(const DtPortalReflectedObject* reflectedObj);
99 
101  virtual void removeDisObject(const DtReflectedObject* reflectedObj);
102 
105  virtual void tick() = 0;
106 
107  virtual void printIncomingOutgoingStateReps(
108  const DtPortalMessage& incoming,
109  const DtStateRepository& outgoing,
110  const DtString& objectName);
111 
112  virtual void printIncomingOutgoingStateReps(
113  const DtStateRepository& incoming,
114  const DtPortalMessage& outgoing,
115  const DtString& objectName);
116 
118  virtual const char* virtualTranslatorName() const;
119 
120  virtual void addObjectDiscoveredCallback(
121  BrokerObjectCbPtr funcPtr, void *userData);
122 
123  virtual void addObjectUpdatedCallback(
124  BrokerObjectCbPtr funcPtr, void *userData);
125 
126  virtual void addObjectRemovedCallback(
127  BrokerObjectCbPtr funcPtr, void *userData);
128 
129 
130  // For logging
131  virtual void logObjectActionUpdate(const DtBrokerObject* go,
132  UpdateType ut);
133 
134 public:
135 
136  static const char* translatorName()
137  { return "Base Object Translator"; }
138 
139 protected:
140 
142  virtual void callObjectDiscoverCallbacks(const DtBrokerObject* brokerObject);
143 
145  virtual void callObjectUpdateCallbacks(const DtBrokerObject* brokerObject);
146 
148  virtual void callObjectRemoveCallbacks(const DtBrokerObject* brokerObject);
149 
151  virtual void createPortalPublisher(DtBrokerObject* brokerObject) = 0;
152  virtual void createDisPublisher(DtBrokerObject* brokerObject) = 0;
153 
156  virtual void deletePortalPublisher(DtBrokerObject* brokerObject) = 0;
157  virtual void deleteDisPublisher(DtBrokerObject* brokerObject) = 0;
158 
162  virtual bool isPortalPublishable(const DtBrokerObject* brokerObject) const = 0;
163 
168  virtual bool isDisPublishable(const DtBrokerObject* brokerObject) const = 0;
169 
171  virtual void removePortalObject(const DtPortalReflectedObject* reflectedObj);
172 
173 protected:
174 
175  typedef std::map<const DtReflectedObject*, DtBrokerObject *>
177  typedef std::map<const DtPortalReflectedObject*, DtBrokerObject *>
179 
180  struct CallbackPair { BrokerObjectCbPtr fcn; void *userData; };
181  typedef std::list<CallbackPair> CallbackPairList;
182 
186 
189 };
190 
191 
192 DT_DLL_DISBROKER std::ostream& operator << (std::ostream& os, const DtObjectTranslator::UpdateType &ut);
193 
194 }}
195 
196 #endif //end #ifndef objectTrans_H_

Document ID: Generated on Tue Aug 7 22:07:13 EDT 2012 from SVN revision 117874
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)