VR-Exchange 2.2 API Documentation
rprBroker.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 namespace MAKVrExchange
18 {
19 
20  class DtPortalReflectedObject;
21 
22  namespace DtRprBroker
23  {
24 
25  class DtBrokerObject;
26  class DtObjectTranslator;
27  class DtRprBrokerInitializer;
28  class DtGenericUserInterface;
29 
31  //
36  class DT_DLL_RPRBROKER DtRprBroker : public DtVrlBroker
37  {
38  public:
39 
41  virtual ~DtRprBroker();
42 
43  virtual void initializeUi( DtGenericUserInterface* ui );
44 
45  protected:
46 
49  DtRprBroker();
50 
55  virtual void initialize( DtRprBrokerInitializer* init );
56 
58  virtual void logBrokerSettings( DtBrokerInitializer* init );
59 
60  public:
61 
63  virtual void processEvents();
64 
66  virtual void updateSimTime() const;
67 
72  virtual void loadTranslators();
73 
76  virtual void loadObjectTranslator(const DtString& translatorName);
77 
81  virtual void loadInteractionTranslator(const DtString& translatorName);
82 
85  virtual void loadKnownObjectTranslators();
86 
89  virtual void loadKnownInteractionTranslators();
90 
92  virtual DtObjectTranslator* getObjectTranslator(const DtString& name);
93 
95  virtual DtInteractionTranslator* getInteractionTranslator(const DtString& name);
96 
97  virtual DtGlobalIdMapper* globalIdMapper();
98 
100  virtual DtRprBrokerInitializer* hlaInitializer();
101 
103  virtual bool fillOutgoingIds() const;
104 
106  virtual bool usePersistentIds() const;
107 
109  //
111  virtual bool useHlaObjectIdForMarkingText() const;
112 
115  //
117  virtual bool useMarkingTextForHlaObjectId() const;
118 
120  virtual int outgoingSiteId() const;
121 
123  virtual int outgoingHostId() const;
124 
126  virtual DtU16 useNextEntityId();
127 
130  virtual int getPersistentId(const DtString& name);
131 
133  virtual void setPersistentId(const DtString& name, int);
134 
135  virtual int heartbeat() {return myHeartbeat;};
136  virtual void setHeartbeat(int i) {myHeartbeat = i;}
137 
138  public:
139 
143  virtual void tick();
144 
147  virtual void launchGui();
148 
152  virtual void launchInfoGui();
153 
156  virtual void reloadBrokerSettings();
157 
159  virtual DtInteractionTranslatorFactory* interactionTranslatorFactory();
160 
162  virtual DtObjectTranslatorFactory* objectTranslatorFactory();
163 
165  virtual void initHlaConnection(const DtRprBrokerInitializer& init);
166 
170  virtual DtString portalNameFind(const DtString& name);
171 
172  public:
173 
175  static DtRprBroker *create(DtRprBrokerInitializer* init);
176 
180  static void setGlobalIdMapperCreator(DtGlobalIdMapperCreator func);
181 
184  static DtGlobalIdMapperCreator globalIdMapperCreator();
185 
186  protected:
187 
188  virtual void shutdownBroker();
189 
191  void initializeHlaBroker();
192 
194  virtual void addTranslator(DtInteractionTranslator *intTrans, bool enabled);
195 
197  virtual void addTranslator(DtObjectTranslator *objTrans, bool enabled);
198 
201  virtual void initWholeFomTranslation();
202 
205  virtual void initGenericTranslators();
206 
208  virtual void shutdownTranslators();
209 
211  virtual void objectDiscovered(const DtBrokerObject* brokerObject);
212 
214  virtual void objectUpdated(const DtBrokerObject* brokerObject);
215 
217  virtual void objectRemoved(const DtBrokerObject* brokerObject);
218 
220  virtual void initPortalNameMapper( const DtFilename& mapFile);
221 
222  // Used for persisting entity Ids.
223  virtual void loadEntityNumMappingFile();
224  virtual void saveEntityNumMappingFile();
225 
226  protected:
227 
228  static void objectDiscoveredCallback(const DtBrokerObject* brokerObject, void *usr);
229  static void objectUpdatedCallback(const DtBrokerObject* brokerObject, void *usr);
230  static void objectRemovedCallback(const DtBrokerObject* brokerObject, void *usr);
231 
232  private:
233 
235  DtRprBroker( const DtRprBroker& other );
236 
238  DtRprBroker& operator = ( const DtRprBroker& other );
239 
240  protected:
241 
243 
244  protected:
245 
246  typedef std::map<const DtString, DtInteractionTranslator*> NamedInteractionTranslatorMap;
247  typedef std::map<const DtString, DtObjectTranslator*> NamedObjectTranslatorMap;
248 
257  std::vector<DtString> myGenericInteractionsToTranslateSet;
258  std::vector<DtString> myGenericObjectsToTranslateSet;
259 
260  //Used for Persisting entity Ids.
261  std::map<const char*,int> myNameToEntityNum;
262  std::map<DtString,DtString> myPortalNameMapper;
263 
264  };
265 
267  {
268  return myNextEntityId++;
269  }
270 
271  }
272 }

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)