VR-Exchange 2.1 API Documentation
disBroker.h
Go to the documentation of this file.
1 /*********************************************************************
2  ** Copyright (c) 1992-2010 VT MAK
3 *********************************************************************/
4 #pragma once
5 
9 
10 #include <broker/broker.h>
11 #include <vlutil/vlString.h>
12 #include <vlutil/vlStringUtil.h>
13 #include <vlutil/vlTime.h>
14 #include <vlutil/vlDisSocket.h>
15 #include <portal/pControlMessage.h>
18 #include <list>
19 #include <map>
20 
21 class DtExerciseConn;
22 
23 
24 namespace MAKVrExchange
25 {
26 
27  class DtPortalReflectedObject;
28 
29  namespace DtDisBroker
30  {
31 
33  class DtObjectTranslator;
34  class DtBrokerObject;
35  class DtDisBrokerInitializer;
36  class DtGenericUserInterface;
37  class DtEventIdMapper;
38  class DtEntityIdMapper;
39 
40 
44  //
50  {
51 
52  public:
53 
57 
59  virtual ~DtDisBroker();
60 
61  virtual void initializeUi(DtGenericUserInterface *ui);
62 
63  private:
64 
66  DtDisBroker(const DtDisBroker& other);
67 
69  DtDisBroker& operator=(const DtDisBroker& other);
70 
71  public:
72 
74  virtual void updateSimTime() const;
75 
80  virtual void loadTranslators();
81 
85  virtual void loadObjectTranslator(const DtString& translatorName);
86 
87 
91  virtual void loadInteractionTranslator(const DtString& translatorName);
92 
95  virtual void loadKnownObjectTranslators();
96 
99  virtual void loadKnownInteractionTranslators();
100 
102  //
104  virtual DtExerciseConn *disConnection() const;
105 
107  virtual DtDisBrokerInitializer* disInitializer();
108 
110  virtual DtGlobalIdMapper* globalIdMapper();
111  virtual DtEventIdMapper* eventIdMapper();
112  virtual DtEntityIdMapper* entityIdMapper();
113  virtual DtTime heartbeatInterval() const;
114  virtual DtTime timeoutInterval() const;
115  virtual bool remapDisIds() const;
116  virtual bool usePersistentIds() const;
117  virtual bool dumpGuiToText() const;
118 
119  public:
120 
124  virtual void tick();
125 
128  virtual void launchGui();
129 
133  virtual void launchInfoGui();
134 
137  virtual void reloadBrokerSettings();
138 
140  virtual DtInteractionTranslatorFactory* interactionTranslatorFactory();
141 
143  virtual DtObjectTranslatorFactory* objectTranslatorFactory();
144 
146  virtual DtObjectTranslator* getObjectTranslator(const DtString& name);
147 
149  virtual DtInteractionTranslator* getInteractionTranslator(const DtString& name);
150 
151  public:
152 
154  static DtDisBroker *create(DtDisBrokerInitializer* init);
155 
159  static void setGlobalIdMapperCreator(DtGlobalIdMapperCreator func);
160 
163  static DtGlobalIdMapperCreator globalIdMapperCreator();
164 
165  protected:
166 
168  virtual void shutdownBroker();
169 
171  void initDisConnection( const DtDisBrokerInitializer &init );
172 
173  void initializeSockets( const DtDisBrokerInitializer &init );
174 
178  void initializeDisBroker();
179 
181  virtual void addTranslator(DtInteractionTranslator *intTrans, bool enabled);
182 
184  virtual void addTranslator(DtObjectTranslator *objTrans, bool enabled);
185 
186  virtual void setupTranslators();
187 
189  virtual void shutdownTranslators();
190 
192  virtual void objectDiscovered(const DtBrokerObject* brokerObject);
193 
195  virtual void objectUpdated(const DtBrokerObject* brokerObject);
196 
198  virtual void objectRemoved(const DtBrokerObject* brokerObject);
199 
200  protected:
201 
202  static void objectDiscoveredCallback(const DtBrokerObject* brokerObject, void *usr);
203  static void objectUpdatedCallback(const DtBrokerObject* brokerObject, void *usr);
204  static void objectRemovedCallback(const DtBrokerObject* brokerObject, void *usr);
205 
206 
207  protected:
208 
210 
211  protected:
212 
213  typedef std::map<const DtString, DtInteractionTranslator*> NamedInteractionTranslatorMap;
214  typedef std::map<const DtString, DtObjectTranslator*> NamedObjectTranslatorMap;
215 
216 
217  DtDisSocket *myDisSocket;
218  DtInetDevice *myDisMcastDevice;
220  DtExerciseConn *myExConn;
228  };
229  }
230 }
231 

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)