VR-Exchange 2.1 API Documentation
Home
Modules
Namespaces
Classes
Files
Examples
Libraries
File List
File Members
include
broker
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
>
13
#include <
broker/brokerInitializer.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
45
class
DT_DLL_BROKER
DtBroker
46
{
47
public
:
48
58
DtBroker
(
DtBrokerInitializer
* init );
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
;
209
bool
myShutdownRequestedFlag
;
210
DtPortalConnection
*
myPConn
;
211
212
DtBrokerInitializer
*
myBrokerInitializer
;
213
214
std::set<DtString>
myDisabledTranslators
;
215
std::set<DtString>
myDebuggedTranslators
;
216
217
DtFilterManager
myFilterManager
;
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
236
inline
DtBrokerInitializer
*
DtBroker::brokerInitializer
()
const
237
{
238
return
myBrokerInitializer
;
239
}
240
241
inline
DtFilterManager
&
DtBroker::objectFilters
()
242
{
243
return
myFilterManager
;
244
}
245
246
inline
const
DtFilterManager
&
DtBroker::objectFilters
()
const
247
{
248
return
myFilterManager
;
249
}
250
251
inline
DtTime
DtBroker::pollingInterval
()
252
{
253
return
myBrokerInitializer
->
pollingInterval
();
254
}
255
256
inline
const
DtString
DtBroker::brokerName
()
const
257
{
258
return
myBrokerInitializer
->
brokerName
();
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
)