VR-Exchange 2.1 API Documentation
broker.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2012 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 DtPortalConnection;
31 
46  {
47  public:
48 
59 
61  virtual ~DtBroker();
62 
63  public:
64 
66  virtual DtPortalConnection* portalConnection() const;
67 
70  virtual void launchGui() = 0;
71 
75  virtual void launchInfoGui();
76 
78  virtual void reloadBrokerSettings();
79 
81  virtual void reloadFilterSettings();
82 
84  virtual const DtString brokerName() const;
85 
87  virtual DtU16 brokerId() const;
88 
91  virtual DtTime simTime() const;
92 
94  virtual void updateSimTime() const;
95 
97  virtual bool isTimeToQuit() const;
98 
108  virtual bool isTranslatorDebuggingOn( const DtString& name ) const;
109 
119  virtual bool isTranslatorDisabled( const DtString& name ) const;
120 
122  virtual DtTime pollingInterval();
123 
125  virtual DtBrokerInitializer* brokerInitializer() const;
126 
129  virtual void tick() = 0;
130 
132  virtual void processEvents();
133 
135  virtual DtFilterManager& objectFilters();
136 
138  virtual const DtFilterManager& objectFilters() const;
139 
144  virtual void setBrokerId( int id );
145 
146  protected:
147 
149  virtual void stopFileLogging();
150 
153  virtual void processShutdownRequest(const DtPortalBrokerShutdownRequestMessage& obj);
154 
156  virtual void processRestartRequest( bool shouldEnableOneToOne );
157 
159  virtual void initPortalConnection(const DtBrokerInitializer& init);
160 
162  virtual void initFileLogging(const DtString& logFileName);
163 
166  virtual void shutdownWithError( const DtString & error );
167 
170  virtual void initializeDebuggedAndDisabledFromInit();
171 
173  static void shutdownRequestCb( const DtPortalBrokerShutdownRequestMessage& obj, void* usr );
174 
176  static void processDisableOneToOneCb( const DtPortalBrokerDisableOneToOneMessage& msg, void* usr );
177 
179  static void processEnableOneToOneCb( const DtPortalBrokerEnableOneToOneMessage& msg, void* usr );
180 
182  static void launchGuiRequestCb( const DtBrokerLaunchGuiRequest& obj, void* usr );
183 
186 
189  static void filterObjectCallback( const DtFilterObjectMessage& object, void* userData );
190 
194  virtual void filterObjectCallback( const DtFilterObjectMessage& object );
195 
197 
198  private:
199 
201  DtBroker( const DtBroker& other );
202 
204  DtBroker& operator = ( const DtBroker& other );
205 
206  protected:
207 
208  DtU16 myBrokerId;
211 
213 
214  std::set<DtString> myDisabledTranslators;
215  std::set<DtString> myDebuggedTranslators;
216 
218  DtPrinter *myFilePrinter;
219 #ifdef _WIN32
220  HANDLE myMutexOneAppHandle;
221 #endif
222  // this section defines variables used for lock files in Linux
223 #ifdef __linux__
224  DtString lockFilename;
225  struct flock lock;
226  int lockFileDes;
227 #endif
228 
229  };
230 
231 
232  //
233  // Inline method definitions.
234  //
235 
237  {
238  return myBrokerInitializer;
239  }
240 
242  {
243  return myFilterManager;
244  }
245 
247  {
248  return myFilterManager;
249  }
250 
252  {
254  }
255 
256  inline const DtString DtBroker::brokerName() const
257  {
259  }
260 
261 }

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)