VR-Exchange 2.1 API Documentation
tenaBroker.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2005 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: tenaBroker.h,v $ $Revision: 1.40 $ $State: Exp $
7 *********************************************************************/
8 #ifndef tenaBroker_H_
9 #define tenaBroker_H_
10 
14 
15 
16 #ifdef _WIN32
17 // The TENA Middleware requires an expanded FD_SETSIZE; let ACE #define it
18 // before <WinSock2.h> is #included as a side effect of one of the MFC headers
19 #include <ACE/config.h>
20 #endif
21 
22 #include <vl/exerciseConn.h> //DtExerciseConn - protocol independent
23 
24 #include "throttle.h" //DtThrottle
25 #include <broker/broker.h>
26 #include <tenaBroker/globalIdMapper.h> //DtGlobalIdMapper
27 #include <vlutil/vlString.h>
28 #include <vlutil/vlStringUtil.h>
29 #include <vlutil/vlTime.h>
30 #include <portal/pControlMessage.h>
32 #include <list>
33 #include <map>
34 
35 class DtExerciseConn;
36 
37 
38 namespace MAKVrExchange
39 {
40  class DtPortalReflectedObject;
41  namespace DtTenaBroker
42  {
43 
45  class DtObjectTranslator;
46  class DtBrokerObject;
47  class DtTenaBrokerInitializer;
48  class DtGenericUserInterface;
49  class DtEntityIdMapper;
50 
58  {
59 
60  public:
61 
65 
67  virtual ~DtTenaBroker();
68 
69  virtual void initializeUi(DtGenericUserInterface *ui);
70 
71  private:
72 
74  DtTenaBroker(const DtTenaBroker& other);
75 
77  DtTenaBroker& operator=(const DtTenaBroker& other);
78 
79  public:
80 
85  virtual void loadTranslators();
86 
88  virtual DtObjectTranslator* getObjectTranslator(const DtString& name);
89 
91  virtual DtInteractionTranslator* getInteractionTranslator(const DtString& name);
92 
105  virtual bool loadObjectTranslator(const DtString& translatorName);
106 
119  // disabled set but it couldn't be loaded.
120  virtual bool loadInteractionTranslator(const DtString& translatorName);
121 
124  virtual void loadKnownObjectTranslators( DtStringSet* failedTranslators );
125 
128  virtual void loadKnownInteractionTranslators( DtStringSet* failedTranslators );
129 
132  virtual DtExerciseConn *tenaConnection() const;
133 
135  virtual DtTenaBrokerInitializer* tenaInitializer();
136 
138  virtual bool fillOutgoingIds() const;
139 
141  virtual bool usePersistentIds() const;
142 
144  virtual bool forceUpdateFlag() const;
145 
147  virtual bool guiseIsEntityType() const;
148 
151  virtual bool useTenaObjectIdForMarkingText() const;
152 
156  virtual bool useMarkingTextForTenaObjectId() const;
157 
160  virtual bool generateFirePduForIndirectFire() const;
161 
169  virtual bool dumpGuiToText() const;
170 
178  virtual bool debugGlobalIdMapping() const;
179 
180  virtual DtGlobalIdMapper* globalIdMapper();
181 
182  virtual DtEntityIdMapper* entityIdMapper();
183 
184  virtual DtThrottle* throttle();
185 
189  virtual void tick();
190 
197  virtual DtTime simTime() const;
198 
201  virtual void launchGui();
202 
206  virtual void launchInfoGui();
207 
210  virtual void reloadBrokerSettings();
211 
213  virtual DtInteractionTranslatorFactory* interactionTranslatorFactory();
214 
216  virtual DtObjectTranslatorFactory* objectTranslatorFactory();
217 
219  static DtTenaBroker *create(DtTenaBrokerInitializer* init);
220 
224  virtual DtString portalNameFind(const DtString& name);
225 
226  protected:
227 
229  void initTenaConnection(const DtTenaBrokerInitializer &init);
230 
232  void initializeTenaBroker();
233 
235  void shutdownBroker( );
236 
238  virtual void addTranslator(DtInteractionTranslator *intTrans, bool enabled);
239 
241  virtual void addTranslator(DtObjectTranslator *objTrans, bool enabled);
242 
250  void reportLoadTranslatorFailures( const DtStringSet& failedTranslators ) const;
251 
253  virtual void shutdownTranslators();
254 
256  virtual void objectDiscovered(const DtBrokerObject* brokerObject);
257 
259  virtual void objectUpdated(const DtBrokerObject* brokerObject);
260 
262  virtual void objectRemoved(const DtBrokerObject* brokerObject);
263 
265  virtual void initPortalNameMapper( const DtFilename& mapFile);
266 
267  protected:
268 
269  static void objectDiscoveredCallback(const DtBrokerObject* brokerObject, void *usr);
270  static void objectUpdatedCallback(const DtBrokerObject* brokerObject, void *usr);
271  static void objectRemovedCallback(const DtBrokerObject* brokerObject, void *usr);
272 
273  protected:
274 
275  typedef std::map<const DtString, DtInteractionTranslator*> NamedInteractionTranslatorMap;
276  typedef std::map<const DtString, DtObjectTranslator*> NamedObjectTranslatorMap;
277 
279  DtExerciseConn *myExerciseConn;
282 
284 
290  std::map<DtString,DtString> myPortalNameMapper;
291  };
292 
294  {
295  return &myGlobalIdMapper;
296  }
297 
299  {
300  return myEntityIdMapper;
301  }
302 
303 
305  {
306  return &myThrottle;
307  }
308 
309 
310  }
311 }
312 
313 #endif //end #ifndef tenaBroker_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)