VR-Exchange 2.2 API Documentation
broker.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/filterManager.h>
14 
15 #include <portal/pControlMessage.h>
16 
17 #include <map>
18 #include <vlutil/vlString.h>
19 #include <vlutil/vlTime.h>
20 
21 #ifdef __linux__
22 #include <sys/file.h>
23 #endif
24 
25 class DtPrinter;
26 
27 namespace MAKVrExchange
28 {
29 
30  class DtStatisticsManager;
31  class DtPortalConnection;
32 
46  class DT_DLL_BROKER DtBroker
47  {
48  public:
49 
50  typedef bool (*PluginInitMethod)( DtBroker* );
51 
52  protected:
53 
55  DtBroker();
56 
59  virtual void initialize( DtBrokerInitializer* init );
60 
62  virtual void logBrokerSettings( DtBrokerInitializer* init );
63 
64  public:
65 
67  virtual ~DtBroker();
68 
70  virtual DtPortalConnection* portalConnection() const;
71 
74  virtual void launchGui() = 0;
75 
79  virtual void launchInfoGui();
80 
82  virtual void reloadBrokerSettings();
83 
85  virtual void reloadFilterSettings();
86 
88  virtual const DtString brokerName() const;
89 
91  virtual DtU16 brokerId() const;
92 
95  virtual DtTime simTime() const;
96 
98  virtual void updateSimTime() const;
99 
101  virtual bool isTimeToQuit() const;
102 
112  virtual bool isTranslatorDebuggingOn( const DtString& name ) const;
113 
123  virtual bool isTranslatorDisabled( const DtString& name ) const;
124 
126  virtual DtTime pollingInterval();
127 
129  virtual DtBrokerInitializer* brokerInitializer() const;
130 
133  virtual void tick() = 0;
134 
136  virtual void processEvents();
137 
139  virtual DtFilterManager& objectFilters();
140 
142  virtual const DtFilterManager& objectFilters() const;
143 
148  virtual void setBrokerId( int id );
149 
150  protected:
151 
154  virtual void initializeDebuggedAndDisabledFromInit();
155 
157  virtual void initFileLogging( const DtString& logFileName );
158 
160  virtual void obtainLock();
161 
163  virtual void loadBrokerPlugins();
164 
166  virtual void getLibrariesInDir( const std::string& dir,
167  std::list<std::string>& files ) const;
168 
170  virtual void initPortalConnection( const DtBrokerInitializer& init );
171 
173  virtual void initStatisticsManager( const DtBrokerInitializer& init );
174 
176  virtual void stopFileLogging();
177 
180  virtual void processShutdownRequest(const DtPortalBrokerShutdownRequestMessage& obj);
181 
183  virtual void processRestartRequest( bool shouldEnableOneToOne );
184 
187  virtual void shutdownWithError( const DtString & error );
188 
190  static void shutdownRequestCb( const DtPortalBrokerShutdownRequestMessage& obj, void* usr );
191 
193  static void processDisableOneToOneCb( const DtPortalBrokerDisableOneToOneMessage& msg, void* usr );
194 
196  static void processEnableOneToOneCb( const DtPortalBrokerEnableOneToOneMessage& msg, void* usr );
197 
199  static void launchGuiRequestCb( const DtBrokerLaunchGuiRequest& obj, void* usr );
200 
203 
206  static void filterObjectCallback( const DtFilterObjectMessage& object, void* userData );
207 
211  virtual void filterObjectCallback( const DtFilterObjectMessage& object );
212 
214 
215  private:
216 
218  DtBroker( const DtBroker& other );
219 
221  DtBroker& operator = ( const DtBroker& other );
222 
223  protected:
224 
225  static const char* theVrxPluginInitMethod;
226 
227  DtU16 myBrokerId;
230 
232 
233  std::set<DtString> myDisabledTranslators;
234  std::set<DtString> myDebuggedTranslators;
235 
238  DtPrinter* myFilePrinter;
239 #ifdef _WIN32
240  HANDLE myMutexOneAppHandle;
241 #endif
242  // this section defines variables used for lock files in Linux
243 #ifdef __linux__
244  DtString lockFilename;
245  struct flock lock;
246  int lockFileDes;
247 #endif
248 
249  };
250 
251 
252  //
253  // Inline method definitions.
254  //
255 
257  {
258  return myBrokerInitializer;
259  }
260 
262  {
263  return myFilterManager;
264  }
265 
267  {
268  return myFilterManager;
269  }
270 
272  {
274  }
275 
276  inline const DtString DtBroker::brokerName() const
277  {
279  }
280 
281 }

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)