VR-Exchange 2.1 API Documentation
hlaBroker.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 #pragma once
6 
7 
8 
9 
10 #include <broker/broker.h>
11 #include <vlutil/vlString.h>
12 #include <vlutil/vlStringUtil.h>
13 #include <vlutil/vlTime.h>
14 #include <portal/pControlMessage.h>
17 #include <list>
18 #include <map>
19 
20 class DtExerciseConn;
21 
22 namespace MAKVrExchange {
23 
24  class DtPortalReflectedObject;
25 
26  namespace DtHlaBroker {
27 
29  class DtObjectTranslator;
30  class DtBrokerObject;
31  class DtHlaBrokerInitializer;
32  class DtGenericUserInterface;
33 
35  //
41  {
42 
43  public:
44 
48 
50  virtual ~DtHlaBroker();
51 
52  virtual void initializeUi(DtGenericUserInterface *ui);
53 
54  private:
55 
57  DtHlaBroker(const DtHlaBroker& other);
58 
60  DtHlaBroker& operator=(const DtHlaBroker& other);
61 
62  public:
63 
65  virtual void updateSimTime() const;
66 
71  virtual void loadTranslators();
72 
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 
98  //
100  virtual DtExerciseConn *hlaConnection() const;
101 
102  virtual DtGlobalIdMapper* globalIdMapper();
103 
105  virtual DtHlaBrokerInitializer* hlaInitializer();
106 
108  virtual bool fillOutgoingIds() const;
109 
111  virtual bool usePersistentIds() const;
112 
114  //
116  virtual bool useHlaObjectIdForMarkingText() const;
117 
120  //
122  virtual bool useMarkingTextForHlaObjectId() const;
123 
125  virtual int outgoingSiteId() const;
126 
128  virtual int outgoingHostId() const;
129 
131  virtual DtU16 useNextEntityId();
132 
135  virtual int getPersistentId(const DtString& name);
136 
138  virtual void setPersistentId(const DtString& name, int);
139 
140  virtual int heartbeat() {return myHeartbeat;};
141  virtual void setHeartbeat(int i) {myHeartbeat = i;}
142 
143  public:
144 
148  virtual void tick();
149 
152  virtual void launchGui();
153 
157  virtual void launchInfoGui();
158 
161  virtual void reloadBrokerSettings();
162 
164  virtual DtInteractionTranslatorFactory* interactionTranslatorFactory();
165 
167  virtual DtObjectTranslatorFactory* objectTranslatorFactory();
168 
170  virtual void initHlaConnection(const DtHlaBrokerInitializer& init);
171 
175  virtual DtString portalNameFind(const DtString& name);
176 
177  public:
178 
180  static DtHlaBroker *create(DtHlaBrokerInitializer* init);
181 
185  static void setGlobalIdMapperCreator(DtGlobalIdMapperCreator func);
186 
189  static DtGlobalIdMapperCreator globalIdMapperCreator();
190 
191  protected:
192 
193  virtual void shutdownBroker();
194 
196  void initializeHlaBroker();
197 
199  virtual void addTranslator(DtInteractionTranslator *intTrans, bool enabled);
200 
202  virtual void addTranslator(DtObjectTranslator *objTrans, bool enabled);
203 
206  virtual void initWholeFomTranslation();
207 
210  virtual void initGenericTranslators();
211 
213  virtual void shutdownTranslators();
214 
216  virtual void objectDiscovered(const DtBrokerObject* brokerObject);
217 
219  virtual void objectUpdated(const DtBrokerObject* brokerObject);
220 
222  virtual void objectRemoved(const DtBrokerObject* brokerObject);
223 
225  virtual void initPortalNameMapper( const DtFilename& mapFile);
226 
227  // Used for persisting entity Ids.
228  virtual void loadEntityNumMappingFile();
229  virtual void saveEntityNumMappingFile();
230 
231  protected:
232 
233  static void objectDiscoveredCallback(const DtBrokerObject* brokerObject, void *usr);
234  static void objectUpdatedCallback(const DtBrokerObject* brokerObject, void *usr);
235  static void objectRemovedCallback(const DtBrokerObject* brokerObject, void *usr);
236 
237  protected:
238 
240 
241  protected:
242 
243  typedef std::map<const DtString, DtInteractionTranslator*> NamedInteractionTranslatorMap;
244  typedef std::map<const DtString, DtObjectTranslator*> NamedObjectTranslatorMap;
245 
248  DtExerciseConn *myExConn;
255  std::vector<DtString> myGenericInteractionsToTranslateSet;
256  std::vector<DtString> myGenericObjectsToTranslateSet;
257 
258  //Used for Persisting entity Ids.
259  std::map<const char *,int> myNameToEntityNum;
260  std::map<DtString,DtString> myPortalNameMapper;
261 
262  };
263 
265  {
266  return myNextEntityId++;
267  }
268 
269  }
270 }
271 
272 
273 

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)