VR-Exchange 2.2 API Documentation
tenaBroker.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 #ifdef _WIN32
13 // The TENA Middleware requires an expanded FD_SETSIZE; let ACE #define it
14 // before <WinSock2.h> is #included as a side effect of one of the MFC headers
15 #include <ACE/config.h>
16 #endif
17 
18 #include "throttle.h"
19 #include "globalIdMapper.h"
20 #include "translatorFactory.h"
21 
22 #include <portal/pControlMessage.h>
23 
24 #include <broker/vrlBroker.h>
25 
26 #include <vl/exerciseConn.h>
27 
28 #include <vlutil/vlStringUtil.h>
29 #include <vlutil/vlString.h>
30 #include <vlutil/vlTime.h>
31 
32 #include <list>
33 #include <map>
34 
35 class DtExerciseConn;
36 
37 namespace MAKVrExchange
38 {
39 
40  class DtPortalReflectedObject;
41 
42  namespace DtTenaBroker
43  {
44 
45  class DtBrokerObject;
46  class DtEntityIdMapper;
47  class DtObjectTranslator;
48  class DtGenericUserInterface;
49  class DtTenaBrokerInitializer;
50  class DtInteractionTranslator;
51 
58  class DT_DLL_TENABROKER DtTenaBroker : public DtVrlBroker
59  {
60  public:
61 
63  static DtTenaBroker* create( DtTenaBrokerInitializer* init );
64 
66  virtual ~DtTenaBroker();
67 
68  virtual void initializeUi(DtGenericUserInterface *ui);
69 
70  protected:
71 
74  DtTenaBroker();
75 
76  virtual void initialize( DtTenaBrokerInitializer* init );
77 
79  virtual void logBrokerSettings( DtBrokerInitializer* init );
80 
81  private:
82 
84  DtTenaBroker( const DtTenaBroker& other );
85 
87  DtTenaBroker& operator = ( const DtTenaBroker& other );
88 
89  public:
90 
95  virtual void loadTranslators();
96 
98  virtual DtObjectTranslator* getObjectTranslator(const DtString& name);
99 
101  virtual DtInteractionTranslator* getInteractionTranslator(const DtString& name);
102 
115  virtual bool loadObjectTranslator(const DtString& translatorName);
116 
129  // disabled set but it couldn't be loaded.
130  virtual bool loadInteractionTranslator(const DtString& translatorName);
131 
134  virtual void loadKnownObjectTranslators( DtStringSet* failedTranslators );
135 
138  virtual void loadKnownInteractionTranslators( DtStringSet* failedTranslators );
139 
141  virtual DtTenaBrokerInitializer* tenaInitializer();
142 
144  virtual bool fillOutgoingIds() const;
145 
147  virtual bool usePersistentIds() const;
148 
150  virtual bool forceUpdateFlag() const;
151 
153  virtual bool guiseIsEntityType() const;
154 
157  virtual bool useTenaObjectIdForMarkingText() const;
158 
162  virtual bool useMarkingTextForTenaObjectId() const;
163 
166  virtual bool generateFirePduForIndirectFire() const;
167 
175  virtual bool dumpGuiToText() const;
176 
184  virtual bool debugGlobalIdMapping() const;
185 
186  virtual DtGlobalIdMapper* globalIdMapper();
187 
188  virtual DtEntityIdMapper* entityIdMapper();
189 
190  virtual DtThrottle* throttle();
191 
195  virtual void tick();
196 
203  virtual DtTime simTime() const;
204 
207  virtual void launchGui();
208 
212  virtual void launchInfoGui();
213 
216  virtual void reloadBrokerSettings();
217 
219  virtual DtInteractionTranslatorFactory* interactionTranslatorFactory();
220 
222  virtual DtObjectTranslatorFactory* objectTranslatorFactory();
223 
227  virtual DtString portalNameFind(const DtString& name);
228 
229  protected:
230 
232  virtual void processEvents();
233 
235  void initTenaConnection(const DtTenaBrokerInitializer &init);
236 
238  void initializeTenaBroker();
239 
241  void shutdownBroker( );
242 
244  virtual void addTranslator(DtInteractionTranslator *intTrans, bool enabled);
245 
247  virtual void addTranslator(DtObjectTranslator *objTrans, bool enabled);
248 
256  void reportLoadTranslatorFailures( const DtStringSet& failedTranslators ) const;
257 
259  virtual void shutdownTranslators();
260 
262  virtual void objectDiscovered(const DtBrokerObject* brokerObject);
263 
265  virtual void objectUpdated(const DtBrokerObject* brokerObject);
266 
268  virtual void objectRemoved(const DtBrokerObject* brokerObject);
269 
271  virtual void initPortalNameMapper( const DtFilename& mapFile);
272 
273  protected:
274 
275  static void objectDiscoveredCallback(const DtBrokerObject* brokerObject, void *usr);
276  static void objectUpdatedCallback(const DtBrokerObject* brokerObject, void *usr);
277  static void objectRemovedCallback(const DtBrokerObject* brokerObject, void *usr);
278 
279  protected:
280 
281  typedef std::map<const DtString, DtInteractionTranslator*> NamedInteractionTranslatorMap;
282  typedef std::map<const DtString, DtObjectTranslator*> NamedObjectTranslatorMap;
283 
287 
289 
295  std::map<DtString,DtString> myPortalNameMapper;
296 
297  };
298 
300  {
301  return &myGlobalIdMapper;
302  }
303 
305  {
306  return myEntityIdMapper;
307  }
308 
310  {
311  return &myThrottle;
312  }
313 
314  }
315 }

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)