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-2014 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
// ===========================================================================
53
// class declarations
54
// ===========================================================================
55
class
NLContainer;
56
class
NLDetectorBuilder
;
57
class
NLTriggerBuilder
;
58
class
MSTrafficLightLogic
;
59
60
61
// ===========================================================================
62
// class definitions
63
// ===========================================================================
72
class
NLHandler
:
public
MSRouteHandler
{
73
public
:
75
typedef
std::vector<MSLane*>
LaneVector
;
76
77
public
:
87
NLHandler
(
const
std::string& file,
MSNet
& net,
88
NLDetectorBuilder
& detBuilder,
NLTriggerBuilder
& triggerBuilder,
89
NLEdgeControlBuilder
& edgeBuilder,
90
NLJunctionControlBuilder
& junctionBuilder);
91
92
94
virtual
~NLHandler
();
95
96
bool
haveSeenInternalEdge
()
const
{
97
return
myHaveSeenInternalEdge
;
98
}
99
100
protected
:
102
103
112
virtual
void
myStartElement
(
int
element,
113
const
SUMOSAXAttributes
& attrs);
114
115
123
virtual
void
myEndElement
(
int
element);
125
126
127
protected
:
128
void
addParam
(
const
SUMOSAXAttributes
& attrs);
129
133
virtual
void
addE1Detector
(
const
SUMOSAXAttributes
& attrs);
134
138
virtual
void
addInstantE1Detector
(
const
SUMOSAXAttributes
& attrs);
139
143
virtual
void
addE2Detector
(
const
SUMOSAXAttributes
& attrs);
144
148
void
beginE3Detector
(
const
SUMOSAXAttributes
& attrs);
149
153
void
addE3Entry
(
const
SUMOSAXAttributes
& attrs);
154
158
void
addE3Exit
(
const
SUMOSAXAttributes
& attrs);
159
161
virtual
void
endE3Detector
();
162
166
virtual
void
addVTypeProbeDetector
(
const
SUMOSAXAttributes
& attrs);
167
171
virtual
void
addRouteProbeDetector
(
const
SUMOSAXAttributes
& attrs);
172
177
virtual
void
addEdgeLaneMeanData
(
const
SUMOSAXAttributes
& attrs,
int
objecttype);
178
180
virtual
void
closeEdge
();
181
182
183
protected
:
185
MSNet
&
myNet
;
186
187
188
private
:
190
void
beginEdgeParsing
(
const
SUMOSAXAttributes
& attrs);
191
193
void
addLane
(
const
SUMOSAXAttributes
& attrs);
194
196
void
addPOI
(
const
SUMOSAXAttributes
& attrs);
197
199
void
addPoly
(
const
SUMOSAXAttributes
& attrs);
200
202
void
addRequest
(
const
SUMOSAXAttributes
& attrs);
203
205
void
initJunctionLogic
(
const
SUMOSAXAttributes
& attrs);
206
208
void
initTrafficLightLogic
(
const
SUMOSAXAttributes
& attrs);
209
211
void
addPhase
(
const
SUMOSAXAttributes
& attrs);
212
213
215
virtual
void
openJunction
(
const
SUMOSAXAttributes
& attrs);
216
217
void
parseLanes
(
const
std::string& junctionID,
const
std::string& def, std::vector<MSLane*>& into,
bool
& ok);
218
220
void
addConnection
(
const
SUMOSAXAttributes
& attrs);
221
222
virtual
void
openWAUT
(
const
SUMOSAXAttributes
& attrs);
223
void
addWAUTSwitch
(
const
SUMOSAXAttributes
& attrs);
224
void
addWAUTJunction
(
const
SUMOSAXAttributes
& attrs);
225
227
void
setLocation
(
const
SUMOSAXAttributes
& attrs);
228
238
void
addDistrict
(
const
SUMOSAXAttributes
& attrs);
239
240
251
void
addDistrictEdge
(
const
SUMOSAXAttributes
& attrs,
bool
isSource);
252
256
void
addRoundabout
(
const
SUMOSAXAttributes
& attrs);
257
258
259
void
closeWAUT
();
260
262
LinkDirection
parseLinkDir
(
const
std::string& dir);
263
265
LinkState
parseLinkState
(
const
std::string& state);
266
267
268
protected
:
270
NLDiscreteEventBuilder
myActionBuilder
;
271
273
bool
myCurrentIsInternalToSkip
;
274
275
277
NLDetectorBuilder
&
myDetectorBuilder
;
278
280
NLTriggerBuilder
&
myTriggerBuilder
;
281
283
NLEdgeControlBuilder
&
myEdgeControlBuilder
;
284
286
NLJunctionControlBuilder
&
myJunctionControlBuilder
;
287
289
std::string
myCurrentDistrictID
;
290
292
bool
myAmInTLLogicMode
;
293
295
std::string
myCurrentWAUTID
;
296
298
Position
myNetworkOffset
;
299
301
Boundary
myOrigBoundary
,
myConvBoundary
;
302
303
bool
myCurrentIsBroken
;
304
305
bool
myHaveWarnedAboutDeprecatedLanes
;
306
307
Parameterised
*
myLastParameterised
;
308
310
bool
myHaveSeenInternalEdge
;
311
313
typedef
std::map<std::string, std::pair<std::string, std::string> >
JunctionGraph
;
314
JunctionGraph
myJunctionGraph
;
315
316
private
:
318
NLHandler
(
const
NLHandler
& s);
319
321
NLHandler
&
operator=
(
const
NLHandler
& s);
322
323
};
324
325
326
#endif
327
328
/****************************************************************************/
329
tmp
buildd
sumo-0.21.0+dfsg
src
netload
NLHandler.h
Generated on Thu Nov 20 2014 19:49:57 for SUMO - Simulation of Urban MObility by
1.8.1.2