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
MSDevice_Vehroutes.h
Go to the documentation of this file.
1
/****************************************************************************/
8
// A device which collects info on the vehicle trip
9
/****************************************************************************/
10
// SUMO, Simulation of Urban MObility; see http://sumo-sim.org/
11
// Copyright (C) 2001-2013 DLR (http://www.dlr.de/) and contributors
12
/****************************************************************************/
13
//
14
// This file is part of SUMO.
15
// SUMO is free software: you can redistribute it and/or modify
16
// it under the terms of the GNU General Public License as published by
17
// the Free Software Foundation, either version 3 of the License, or
18
// (at your option) any later version.
19
//
20
/****************************************************************************/
21
#ifndef MSDevice_Vehroutes_h
22
#define MSDevice_Vehroutes_h
23
24
25
// ===========================================================================
26
// included modules
27
// ===========================================================================
28
#ifdef _MSC_VER
29
#include <
windows_config.h
>
30
#else
31
#include <
config.h
>
32
#endif
33
34
#include "
MSDevice.h
"
35
#include <
microsim/MSNet.h
>
36
#include <
utils/common/SUMOTime.h
>
37
38
39
// ===========================================================================
40
// class declarations
41
// ===========================================================================
42
class
MSEdge
;
43
class
MSRoute
;
44
45
46
// ===========================================================================
47
// class definitions
48
// ===========================================================================
57
class
MSDevice_Vehroutes
:
public
MSDevice
{
58
public
:
61
static
void
init
();
62
63
74
static
MSDevice_Vehroutes
*
buildVehicleDevices
(
SUMOVehicle
& v, std::vector<MSDevice*>& into,
unsigned
int
maxRoutes = INT_MAX);
75
76
78
static
void
generateOutputForUnfinished
();
79
80
81
public
:
83
~MSDevice_Vehroutes
();
84
85
86
89
98
bool
notifyEnter
(
SUMOVehicle
& veh,
MSMoveReminder::Notification
reason);
99
100
112
bool
notifyLeave
(
SUMOVehicle
& veh,
SUMOReal
lastPos,
Notification
reason);
114
115
122
void
generateOutput
()
const
;
123
124
130
const
MSRoute
*
getRoute
(
int
index)
const
;
131
132
133
private
:
139
MSDevice_Vehroutes
(
SUMOVehicle
& holder,
const
std::string&
id
,
unsigned
int
maxRoutes);
140
141
147
void
writeXMLRoute
(
OutputDevice
& os,
int
index = -1)
const
;
148
149
152
void
addRoute
();
153
154
155
private
:
157
static
bool
mySaveExits
;
158
160
static
bool
myLastRouteOnly
;
161
163
static
bool
mySorted
;
164
166
static
bool
myWithTaz
;
167
168
172
class
StateListener
:
public
MSNet::VehicleStateListener
{
173
public
:
175
~StateListener
() {}
176
181
void
vehicleStateChanged
(
const
SUMOVehicle
*
const
vehicle,
MSNet::VehicleState
to);
182
184
std::map<const SUMOVehicle*, MSDevice_Vehroutes*>
myDevices
;
185
186
};
187
188
189
191
static
StateListener
myStateListener
;
192
194
static
std::map<const SUMOTime, int>
myDepartureCounts
;
195
197
static
std::map<const SUMOTime, std::string>
myRouteInfos
;
198
199
209
class
RouteReplaceInfo
{
210
public
:
216
RouteReplaceInfo
(
const
MSEdge
*
const
edge_,
const
SUMOTime
time_,
const
MSRoute
*
const
route_)
217
:
edge
(edge_),
time
(time_),
route
(route_) {}
218
220
~RouteReplaceInfo
() { }
221
223
const
MSEdge
*
edge
;
224
226
SUMOTime
time
;
227
229
const
MSRoute
*
route
;
230
231
};
232
234
const
MSRoute
*
myCurrentRoute
;
235
237
std::vector<RouteReplaceInfo>
myReplacedRoutes
;
238
240
std::vector<SUMOTime>
myExits
;
241
243
const
unsigned
int
myMaxRoutes
;
244
246
const
MSEdge
*
myLastSavedAt
;
247
248
249
private
:
251
MSDevice_Vehroutes
(
const
MSDevice_Vehroutes
&);
252
254
MSDevice_Vehroutes
&
operator=
(
const
MSDevice_Vehroutes
&);
255
256
257
};
258
259
260
#endif
261
262
/****************************************************************************/
263
build
buildd
sumo-0.18~dfsg
src
microsim
devices
MSDevice_Vehroutes.h
Generated on Wed Oct 23 2013 01:15:09 for SUMO - Simulation of Urban MObility by
1.8.4