VR-Exchange 2.2 API Documentation
disBroker/libDisBroker/objectTrans.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2013 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <broker/translator.h>
13 
14 #include <list>
15 #include <set>
16 #include <map>
17 
18 class DtReflectedObject;
19 class DtStateRepository;
20 class DtEntityIdentifier;
21 
22 namespace MAKVrExchange
23 {
24 
25  class DtPortalObject;
26  class DtPortalReflectedObject;
27  class DtRequestTranslationDiagnosticMessage;
28 
29  namespace DtDisBroker
30  {
31 
32  class DtDisBroker;
33  class DtBrokerObject;
34 
39  class DT_DLL_DISBROKER DtObjectTranslator : public DtTranslator
40  {
41  public:
42 
44  typedef enum
45  {
46  none = 0,
47  discover = 1,
48  update = 2,
49  remove = 3
50  } UpdateType;
51 
52  typedef void (*BrokerObjectCbPtr)
53  ( const DtBrokerObject *brokerObjectPointer,
54  void *userData);
55 
56  public:
57 
59  DtObjectTranslator( DtDisBroker* broker, const DtString& name,
60  DtPortalMessageKind kind );
61 
63  virtual ~DtObjectTranslator();
64 
67  virtual DtBrokerObject *releaseBrokerObject(
68  const DtReflectedObject* reflectedObj);
69  virtual DtBrokerObject *releaseBrokerObject(
70  const DtPortalReflectedObject* reflectedObj);
71 
75  virtual DtBrokerObject *findBrokerObject(
76  const DtReflectedObject* reflectedObj);
77  virtual DtBrokerObject *findBrokerObject(
78  const DtPortalReflectedObject* reflectedObj);
79 
82  virtual DtBrokerObject *createBrokerObject(
83  const DtReflectedObject* reflectedObj);
84  virtual DtBrokerObject *createBrokerObject(
85  const DtPortalReflectedObject* reflectedObj);
86 
90  virtual bool isDisDiscoverable( const DtReflectedObject* reflectedObj );
91 
95  virtual bool isPortalDiscoverable( const DtPortalReflectedObject* reflectedObj );
96 
98  virtual void removeDisObject( const DtReflectedObject* reflectedObj );
99 
102  virtual void tick() = 0;
103 
104  virtual void printIncomingOutgoingStateReps(
105  const DtPortalObject& incoming, const DtStateRepository& outgoing );
106 
107  virtual void printIncomingOutgoingStateReps(
108  const DtStateRepository& incoming, const DtPortalObject& outgoing );
109 
110  virtual void performPortalDebugging( const DtPortalObject& incoming,
111  const DtStateRepository& outgoing );
112 
113  virtual void performPortalDebugging( const DtStateRepository& incoming,
114  const DtPortalObject& outgoing );
115 
116  virtual void addObjectDiscoveredCallback(
117  BrokerObjectCbPtr funcPtr, void *userData);
118 
119  virtual void addObjectUpdatedCallback(
120  BrokerObjectCbPtr funcPtr, void *userData);
121 
122  virtual void addObjectRemovedCallback(
123  BrokerObjectCbPtr funcPtr, void *userData);
124 
125  // For logging
126  virtual void logObjectActionUpdate(const DtBrokerObject* go,
127  UpdateType ut);
128 
130  virtual unsigned int numObjects() const;
131 
132  protected:
133 
135  static void requestTransDiagCb( const DtRequestTranslationDiagnosticMessage& msg, void* usr );
136 
138  virtual void requestTransDiagCb( const DtRequestTranslationDiagnosticMessage& msg );
139 
141  virtual void callObjectDiscoverCallbacks( const DtBrokerObject* brokerObject );
142 
144  virtual void callObjectUpdateCallbacks( const DtBrokerObject* brokerObject );
145 
147  virtual void callObjectRemoveCallbacks( const DtBrokerObject* brokerObject );
148 
150  virtual void createPortalPublisher( DtBrokerObject* brokerObject ) = 0;
151  virtual void createDisPublisher( DtBrokerObject* brokerObject ) = 0;
152 
155  virtual void deletePortalPublisher( DtBrokerObject* brokerObject ) = 0;
156  virtual void deleteDisPublisher( DtBrokerObject* brokerObject ) = 0;
157 
161  virtual bool isPortalPublishable( const DtBrokerObject* brokerObject ) const = 0;
162 
167  virtual bool isDisPublishable( const DtBrokerObject* brokerObject ) const = 0;
168 
170  virtual void removePortalObject( const DtPortalReflectedObject* reflectedObj );
171 
173  virtual DtEntityIdentifier mapObjectId( const DtEntityIdentifier& identifier );
174 
175  private:
176 
178  DtObjectTranslator( const DtObjectTranslator& other );
179 
181  DtObjectTranslator& operator = ( const DtObjectTranslator& other );
182 
184  bool operator == ( const DtObjectTranslator& );
185 
187  bool operator != ( const DtObjectTranslator& );
188 
189  protected:
190 
191  struct CallbackPair { BrokerObjectCbPtr fcn; void *userData; };
192  typedef std::list<CallbackPair> CallbackPairList;
193 
194  typedef std::map<const DtReflectedObject*, DtBrokerObject *>
196  typedef std::map<const DtPortalReflectedObject*, DtBrokerObject *>
198 
199  typedef std::set<DtString> TransDebugObjectNamesSet;
201 
205 
208 
210 
211  };
212 
213 
214  DT_DLL_DISBROKER std::ostream& operator << (std::ostream& os, const DtObjectTranslator::UpdateType &ut);
215 
216  }
217 }

Document ID: Generated on Mon Apr 15 17:15:50 EDT 2013 from SVN revision 126154
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)