SUMO - Simulation of Urban MObility
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
NLHandler.h
Go to the documentation of this file.
1
/****************************************************************************/
10
// The XML-Handler for network loading
11
/****************************************************************************/
12
// SUMO, Simulation of Urban MObility; see http://sumo-sim.org/
13
// Copyright (C) 2001-2013 DLR (http://www.dlr.de/) and contributors
14
/****************************************************************************/
15
//
16
// This file is part of SUMO.
17
// SUMO is free software: you can redistribute it and/or modify
18
// it under the terms of the GNU General Public License as published by
19
// the Free Software Foundation, either version 3 of the License, or
20
// (at your option) any later version.
21
//
22
/****************************************************************************/
23
#ifndef NLHandler_h
24
#define NLHandler_h
25
26
27
// ===========================================================================
28
// included modules
29
// ===========================================================================
30
#ifdef _MSC_VER
31
#include <
windows_config.h
>
32
#else
33
#include <
config.h
>
34
#endif
35
36
#include <xercesc/sax/HandlerBase.hpp>
37
#include <xercesc/sax/SAXException.hpp>
38
#include <xercesc/sax/AttributeList.hpp>
39
#include <
utils/common/SUMOTime.h
>
40
#include <
utils/common/Parameterised.h
>
41
#include <
utils/xml/SUMOXMLDefinitions.h
>
42
#include <
microsim/MSLink.h
>
43
#include <
microsim/MSRouteHandler.h
>
44
#include <
microsim/traffic_lights/MSSimpleTrafficLightLogic.h
>
45
#include <
microsim/traffic_lights/MSActuatedTrafficLightLogic.h
>
46
#include <
microsim/MSBitSetLogic.h
>
47
#include "
NLBuilder.h
"
48
#include "
NLDiscreteEventBuilder.h
"
49
50
51
// ===========================================================================
52
// class declarations
53
// ===========================================================================
54
class
NLContainer;
55
class
NLDetectorBuilder
;
56
class
NLTriggerBuilder
;
57
class
MSTrafficLightLogic
;
58
59
60
// ===========================================================================
61
// class definitions
62
// ===========================================================================
71
class
NLHandler
:
public
MSRouteHandler
{
72
public
:
74
typedef
std::vector<MSLane*>
LaneVector
;
75
76
public
:
86
NLHandler
(
const
std::string& file,
MSNet
& net,
87
NLDetectorBuilder
& detBuilder,
NLTriggerBuilder
& triggerBuilder,
88
NLEdgeControlBuilder
& edgeBuilder,
89
NLJunctionControlBuilder
& junctionBuilder);
90
91
93
virtual
~NLHandler
();
94
95
bool
haveSeenInternalEdge
()
const
{
96
return
myHaveSeenInternalEdge
;
97
}
98
99
protected
:
101
102
111
virtual
void
myStartElement
(
int
element,
112
const
SUMOSAXAttributes
& attrs);
113
114
122
virtual
void
myEndElement
(
int
element);
124
125
126
protected
:
127
void
addParam
(
const
SUMOSAXAttributes
& attrs);
128
132
virtual
void
addE1Detector
(
const
SUMOSAXAttributes
& attrs);
133
137
virtual
void
addInstantE1Detector
(
const
SUMOSAXAttributes
& attrs);
138
142
virtual
void
addE2Detector
(
const
SUMOSAXAttributes
& attrs);
143
147
void
beginE3Detector
(
const
SUMOSAXAttributes
& attrs);
148
152
void
addE3Entry
(
const
SUMOSAXAttributes
& attrs);
153
157
void
addE3Exit
(
const
SUMOSAXAttributes
& attrs);
158
160
virtual
void
endE3Detector
();
161
165
virtual
void
addVTypeProbeDetector
(
const
SUMOSAXAttributes
& attrs);
166
170
virtual
void
addRouteProbeDetector
(
const
SUMOSAXAttributes
& attrs);
171
176
virtual
void
addEdgeLaneMeanData
(
const
SUMOSAXAttributes
& attrs,
int
objecttype);
177
179
virtual
void
closeEdge
();
180
181
182
protected
:
184
MSNet
&
myNet
;
185
186
187
private
:
189
void
beginEdgeParsing
(
const
SUMOSAXAttributes
& attrs);
190
192
void
addLane
(
const
SUMOSAXAttributes
& attrs);
193
195
void
addPOI
(
const
SUMOSAXAttributes
& attrs);
196
198
void
addPoly
(
const
SUMOSAXAttributes
& attrs);
199
201
void
addRequest
(
const
SUMOSAXAttributes
& attrs);
202
204
void
initJunctionLogic
(
const
SUMOSAXAttributes
& attrs);
205
207
void
initTrafficLightLogic
(
const
SUMOSAXAttributes
& attrs);
208
210
void
addPhase
(
const
SUMOSAXAttributes
& attrs);
211
212
214
virtual
void
openJunction
(
const
SUMOSAXAttributes
& attrs);
215
216
void
parseLanes
(
const
std::string& junctionID,
const
std::string& def, std::vector<MSLane*>& into,
bool
& ok);
217
219
void
addConnection
(
const
SUMOSAXAttributes
& attrs);
220
221
virtual
void
openWAUT
(
const
SUMOSAXAttributes
& attrs);
222
void
addWAUTSwitch
(
const
SUMOSAXAttributes
& attrs);
223
void
addWAUTJunction
(
const
SUMOSAXAttributes
& attrs);
224
226
void
setLocation
(
const
SUMOSAXAttributes
& attrs);
227
237
void
addDistrict
(
const
SUMOSAXAttributes
& attrs);
238
239
250
void
addDistrictEdge
(
const
SUMOSAXAttributes
& attrs,
bool
isSource);
251
252
253
void
closeWAUT
();
254
256
LinkDirection
parseLinkDir
(
const
std::string& dir);
257
259
LinkState
parseLinkState
(
const
std::string& state);
260
261
262
protected
:
264
NLDiscreteEventBuilder
myActionBuilder
;
265
267
bool
myCurrentIsInternalToSkip
;
268
269
271
NLDetectorBuilder
&
myDetectorBuilder
;
272
274
NLTriggerBuilder
&
myTriggerBuilder
;
275
277
NLEdgeControlBuilder
&
myEdgeControlBuilder
;
278
280
NLJunctionControlBuilder
&
myJunctionControlBuilder
;
281
283
std::string
myCurrentDistrictID
;
284
286
bool
myAmInTLLogicMode
;
287
289
std::string
myCurrentWAUTID
;
290
292
Position
myNetworkOffset
;
293
295
Boundary
myOrigBoundary
,
myConvBoundary
;
296
297
bool
myCurrentIsBroken
;
298
299
bool
myHaveWarnedAboutDeprecatedLanes
;
300
301
Parameterised
*
myLastParameterised
;
302
304
bool
myHaveSeenInternalEdge
;
305
306
307
private
:
309
NLHandler
(
const
NLHandler
& s);
310
312
NLHandler
&
operator=
(
const
NLHandler
& s);
313
314
};
315
316
317
#endif
318
319
/****************************************************************************/
320
build
buildd
sumo-0.18~dfsg
src
netload
NLHandler.h
Generated on Wed Oct 23 2013 01:15:11 for SUMO - Simulation of Urban MObility by
1.8.4