VR-Exchange 2.2 API Documentation
rprBroker/libRprBroker/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 
21 namespace MAKVrExchange
22 {
23 
24  class DtPortalObject;
25  class DtPortalReflectedObject;
26  class DtRequestTranslationDiagnosticMessage;
27 
28  namespace DtRprBroker
29  {
30 
31  class DtRprBroker;
32  class DtBrokerObject;
33 
38  class DT_DLL_RPRBROKER DtObjectTranslator : public DtTranslator
39  {
40  public:
41 
43  typedef enum
44  {
45  none = 0,
46  discover = 1,
47  update = 2,
48  remove = 3
49  } UpdateType;
50 
51  typedef void (*BrokerObjectCbPtr)
52  ( const DtBrokerObject *brokerObjectPointer,
53  void *userData);
54 
55  public:
56 
58  DtObjectTranslator( DtRprBroker* broker, const DtString& name,
59  DtPortalMessageKind kind );
60 
62  virtual ~DtObjectTranslator();
63 
66  virtual DtBrokerObject *releaseBrokerObject(
67  const DtReflectedObject* reflectedObj);
68  virtual DtBrokerObject *releaseBrokerObject(
69  const DtPortalReflectedObject* reflectedObj);
70 
74  virtual DtBrokerObject *findBrokerObject(
75  const DtReflectedObject* reflectedObj);
76  virtual DtBrokerObject *findBrokerObject(
77  const DtPortalReflectedObject* reflectedObj);
78 
81  virtual DtBrokerObject *createBrokerObject(
82  const DtReflectedObject* reflectedObj);
83  virtual DtBrokerObject *createBrokerObject(
84  const DtPortalReflectedObject* reflectedObj);
85 
89  virtual bool isHlaDiscoverable( const DtReflectedObject* reflectedObj );
90 
94  virtual bool isPortalDiscoverable( const DtPortalReflectedObject* reflectedObj );
95 
97  virtual void removeHlaObject( const DtReflectedObject* reflectedObj );
98 
101  virtual void tick() = 0;
102 
103  virtual void printIncomingOutgoingStateReps(
104  const DtPortalObject& incoming, const DtStateRepository& outgoing );
105 
106  virtual void printIncomingOutgoingStateReps(
107  const DtStateRepository& incoming, const DtPortalObject& outgoing );
108 
109  virtual void performPortalDebugging( const DtPortalObject& incoming,
110  const DtStateRepository& outgoing );
111 
112  virtual void performPortalDebugging( const DtStateRepository& incoming,
113  const DtPortalObject& outgoing );
114 
115  virtual void addObjectDiscoveredCallback(
116  BrokerObjectCbPtr funcPtr, void *userData);
117 
118  virtual void addObjectUpdatedCallback(
119  BrokerObjectCbPtr funcPtr, void *userData);
120 
121  virtual void addObjectRemovedCallback(
122  BrokerObjectCbPtr funcPtr, void *userData);
123 
125  virtual unsigned int numObjects() const;
126 
127  protected:
128 
130  static void requestTransDiagCb( const DtRequestTranslationDiagnosticMessage& msg, void* usr );
131 
133  virtual void requestTransDiagCb( const DtRequestTranslationDiagnosticMessage& msg );
134 
136  virtual void callObjectDiscoverCallbacks( const DtBrokerObject* brokerObject );
137 
139  virtual void callObjectUpdateCallbacks( const DtBrokerObject* brokerObject );
140 
142  virtual void callObjectRemoveCallbacks( const DtBrokerObject* brokerObject );
143 
145  virtual void createPortalPublisher( DtBrokerObject* brokerObject ) = 0;
146  virtual void createHlaPublisher( DtBrokerObject* brokerObject ) = 0;
147 
150  virtual void deletePortalPublisher( DtBrokerObject* brokerObject ) = 0;
151  virtual void deleteHlaPublisher( DtBrokerObject* brokerObject ) = 0;
152 
156  virtual bool isPortalPublishable( const DtBrokerObject* brokerObject ) const = 0;
157 
162  virtual bool isHlaPublishable( const DtBrokerObject* brokerObject ) const = 0;
163 
165  virtual void removePortalObject( const DtPortalReflectedObject* reflectedObj );
166 
167  private:
168 
170  DtObjectTranslator( const DtObjectTranslator& other );
171 
173  DtObjectTranslator& operator = ( const DtObjectTranslator& other );
174 
176  bool operator == ( const DtObjectTranslator& );
177 
179  bool operator != ( const DtObjectTranslator& );
180 
181  protected:
182 
183  typedef std::map<const DtReflectedObject*, DtBrokerObject *>
185  typedef std::map<const DtPortalReflectedObject*, DtBrokerObject *>
187 
188  struct CallbackPair { BrokerObjectCbPtr fcn; void *userData; };
189  typedef std::list<CallbackPair> CallbackPairList;
190 
191  typedef std::set<DtString> TransDebugObjectNamesSet;
193 
197 
200 
202 
203  };
204 
205  }
206 }

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)