VR-Exchange 2.2 API Documentation
disBroker.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/vrlBroker.h>
13 
14 #include "translatorFactory.h"
15 #include "globalIdMapper.h"
16 
17 #include <portal/pControlMessage.h>
18 
19 #include <vl/globalObjDes.h>
20 
21 #include <vlutil/vlString.h>
22 #include <vlutil/vlStringUtil.h>
23 #include <vlutil/vlTime.h>
24 #include <vlutil/vlDisSocket.h>
25 
26 #include <list>
27 #include <map>
28 
29 class DtExerciseConn;
30 
31 namespace MAKVrExchange
32 {
33 
34  class DtPortalReflectedObject;
35 
36  namespace DtDisBroker
37  {
38 
39  class DtBrokerObject;
40  class DtEventIdMapper;
41  class DtEntityIdMapper;
42  class DtObjectTranslator;
43  class DtDisBrokerInitializer;
44  class DtGenericUserInterface;
45  class DtInteractionTranslator;
46 
53  class DT_DLL_DISBROKER DtDisBroker : public DtVrlBroker
54  {
55  public:
56 
58  static DtDisBroker* create( DtDisBrokerInitializer* init );
59 
61  virtual ~DtDisBroker();
62 
63  virtual void initializeUi( DtGenericUserInterface* ui );
64 
65  protected:
66 
68  DtDisBroker();
69 
74  virtual void initialize( DtDisBrokerInitializer* init );
75 
77  virtual void logBrokerSettings( DtBrokerInitializer* init );
78 
79  private:
80 
82  DtDisBroker( const DtDisBroker& other );
83 
85  DtDisBroker& operator = ( const DtDisBroker& other );
86 
87  public:
88 
90  virtual void processEvents();
91 
93  virtual void updateSimTime() const;
94 
99  virtual void loadTranslators();
100 
104  virtual void loadObjectTranslator( const DtString& translatorName );
105 
106 
110  virtual void loadInteractionTranslator( const DtString& translatorName );
111 
114  virtual void loadKnownObjectTranslators();
115 
118  virtual void loadKnownInteractionTranslators();
119 
121  virtual DtDisBrokerInitializer* disInitializer();
122 
124  virtual DtGlobalIdMapper* globalIdMapper();
125  virtual DtEventIdMapper* eventIdMapper();
126  virtual DtEntityIdMapper* entityIdMapper();
127  virtual DtTime heartbeatInterval() const;
128  virtual DtTime timeoutInterval() const;
129  virtual bool remapDisIds() const;
130  virtual bool usePersistentIds() const;
131  virtual bool dumpGuiToText() const;
132 
133  public:
134 
138  virtual void tick();
139 
142  virtual void launchGui();
143 
147  virtual void launchInfoGui();
148 
151  virtual void reloadBrokerSettings();
152 
154  virtual DtInteractionTranslatorFactory* interactionTranslatorFactory();
155 
157  virtual DtObjectTranslatorFactory* objectTranslatorFactory();
158 
159  DtGlobalObjectDesignator convertGlobalId( const DtString& id );
160  DtString convertGlobalId( const DtGlobalObjectDesignator& id );
161  DtEntityIdentifier convertPortalEntIdToDisEntId( const DtEntityIdentifier& portalId );
162  DtEntityIdentifier convertDisEntIdToPortalEntId( const DtEntityIdentifier& disId );
163 
165  virtual DtObjectTranslator* getObjectTranslator(const DtString& name);
166 
168  virtual DtInteractionTranslator* getInteractionTranslator(const DtString& name);
169 
170  public:
171 
175  static void setGlobalIdMapperCreator( DtGlobalIdMapperCreator func );
176 
179  static DtGlobalIdMapperCreator globalIdMapperCreator();
180 
181  protected:
182 
184  virtual void shutdownBroker();
185 
187  void initDisConnection( const DtDisBrokerInitializer &init );
188 
189  void initializeSockets( const DtDisBrokerInitializer &init );
190 
194  void initializeDisBroker();
195 
197  virtual void addTranslator( DtInteractionTranslator* intTrans, bool enabled );
198 
200  virtual void addTranslator( DtObjectTranslator* objTrans, bool enabled );
201 
202  virtual void setupTranslators();
203 
205  virtual void shutdownTranslators();
206 
208  virtual void objectDiscovered( const DtBrokerObject* brokerObject );
209 
211  virtual void objectUpdated( const DtBrokerObject* brokerObject );
212 
214  virtual void objectRemoved( const DtBrokerObject* brokerObject );
215 
216  protected:
217 
218  static void objectDiscoveredCallback( const DtBrokerObject* brokerObject, void* usr );
219  static void objectUpdatedCallback( const DtBrokerObject* brokerObject, void* usr );
220  static void objectRemovedCallback( const DtBrokerObject* brokerObject, void* usr );
221 
222  protected:
223 
225 
226  protected:
227 
228  typedef std::map<const DtString,DtInteractionTranslator*> NamedInteractionTranslatorMap;
229  typedef std::map<const DtString,DtObjectTranslator*> NamedObjectTranslatorMap;
230 
231  DtDisSocket* myDisSocket;
232  DtInetDevice* myDisMcastDevice;
241 
242  };
243 
244  }
245 }

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)