VR-Exchange 2.1 API Documentation
tenaBroker/objectTrans.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2003 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: objectTrans.h,v $ $Revision: 1.10 $ $State: Exp $
7 *********************************************************************/
8 #ifndef objectTrans_H_
9 #define objectTrans_H_
10 
14 
15 #include "translator.h"
16 
17 #include <map>
18 #include <list>
19 
20 class DtReflectedObject;
21 class DtStateRepository;
22 class DtString;
23 
24 namespace MAKVrExchange {
25 class DtPortalMessage;
26 class DtPortalReflectedObject;
27 }
28 
29 namespace MAKVrExchange
30 {
31  namespace DtTenaBroker
32  {
33 
34  class DtBrokerObject;
35 
39  {
40  public:
42  typedef enum {
43  none = 0,
46  remove}
47  UpdateType;
48 
49  typedef void (*BrokerObjectCbPtr)
50  ( const DtBrokerObject *brokerObjectPointer,
51  void *userData);
52 
53  public:
54 
57 
59  virtual ~DtObjectTranslator();
60 
61  private:
62 
65 
67  DtObjectTranslator& operator=(const DtObjectTranslator& other);
68 
69  public:
70 
73  virtual DtBrokerObject *releaseBrokerObject(
74  const DtReflectedObject* reflectedObj);
75  virtual DtBrokerObject *releaseBrokerObject(
76  const DtPortalReflectedObject* reflectedObj);
77 
81  virtual DtBrokerObject *findBrokerObject(
82  const DtReflectedObject* reflectedObj);
83  virtual DtBrokerObject *findBrokerObject(
84  const DtPortalReflectedObject* reflectedObj);
85 
88  virtual DtBrokerObject *createBrokerObject(
89  const DtReflectedObject* reflectedObj);
90  virtual DtBrokerObject *createBrokerObject(
91  const DtPortalReflectedObject* reflectedObj);
92 
96  virtual bool isTenaDiscoverable(const DtReflectedObject* reflectedObj);
97 
101  virtual bool isPortalDiscoverable(const DtPortalReflectedObject* reflectedObj);
102 
104  virtual void removeTenaObject(const DtReflectedObject* reflectedObj);
105 
108  virtual void tick() = 0;
109 
110  virtual void printIncomingOutgoingStateReps(
111  const DtPortalMessage& incoming, const DtStateRepository& outgoing,
112  const DtString& objectName);
113 
114  virtual void printIncomingOutgoingStateReps(
115  const DtStateRepository& incoming, const DtPortalMessage& outgoing,
116  const DtString& objectName);
117 
118  virtual bool printDumpGuiToText( const UpdateType action,
119  const DtBrokerObject& brokerObject ) const;
120 
122  virtual const char* virtualTranslatorName() const;
123 
124  virtual void addObjectDiscoveredCallback(
125  BrokerObjectCbPtr funcPtr, void *userData);
126 
127  virtual void addObjectUpdatedCallback(
128  BrokerObjectCbPtr funcPtr, void *userData);
129 
130  virtual void addObjectRemovedCallback(
131  BrokerObjectCbPtr funcPtr, void *userData);
132 
133 
134  public:
135 
136  static const char* translatorName()
137  { return "Base Object Translator"; }
138 
139  protected:
140 
142  DtTenaBroker* broker() const { return myBroker; }
143 
145  virtual void callObjectDiscoverCallbacks(const DtBrokerObject* brokerObject);
146 
148  virtual void callObjectUpdateCallbacks(const DtBrokerObject* brokerObject);
149 
151  virtual void callObjectRemoveCallbacks(const DtBrokerObject* brokerObject);
152 
154  virtual void createPortalPublisher(DtBrokerObject* brokerObject) = 0;
155  virtual void createTenaPublisher(DtBrokerObject* brokerObject) = 0;
156 
159  virtual void deletePortalPublisher(DtBrokerObject* brokerObject) = 0;
160  virtual void deleteTenaPublisher(DtBrokerObject* brokerObject) = 0;
161 
165  virtual bool isPortalPublishable(const DtBrokerObject* brokerObject) const = 0;
166 
171  virtual bool isTenaPublishable(const DtBrokerObject* brokerObject) const = 0;
172 
174  virtual void removePortalObject(const DtPortalReflectedObject* reflectedObj);
175 
176  protected:
177 
178  typedef std::map<const DtReflectedObject*, DtBrokerObject *>
180  typedef std::map<const DtPortalReflectedObject*, DtBrokerObject *>
182 
183  struct CallbackPair { BrokerObjectCbPtr fcn; void *userData; };
184  typedef std::list<CallbackPair> CallbackPairList;
185 
189 
192  };
193  }
194 }
195 
196 #endif

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)