Eclipse SUMO - Simulation of Urban MObility
SUMORouteHandler.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2001-2019 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v2.0
6 // which accompanies this distribution, and is available at
7 // http://www.eclipse.org/legal/epl-v20.html
8 // SPDX-License-Identifier: EPL-2.0
9 /****************************************************************************/
17 // Parser for routes during their loading
18 /****************************************************************************/
19 #ifndef SUMORouteHandler_h
20 #define SUMORouteHandler_h
21 
22 
23 // ===========================================================================
24 // included modules
25 // ===========================================================================
26 #include <config.h>
27 
29 #include <utils/common/SUMOTime.h>
32 
33 
34 // ===========================================================================
35 // class declarations
36 // ===========================================================================
37 class MsgHandler;
38 class SUMOVTypeParameter;
39 
40 
41 // ===========================================================================
42 // class definitions
43 // ===========================================================================
52 public:
54  SUMORouteHandler(const std::string& file, const std::string& expectedRoot, const bool hardFail);
55 
57  virtual ~SUMORouteHandler();
58 
60  static bool checkStopPos(double& startPos, double& endPos, const double laneLength,
61  const double minLength, const bool friendlyPos);
62 
64  SUMOTime getFirstDepart() const;
65 
67  SUMOTime getLastDepart() const;
68 
69 protected:
71 
72 
80  virtual void myStartElement(int element,
81  const SUMOSAXAttributes& attrs);
82 
89  virtual void myEndElement(int element);
91 
93 
94 
96  virtual void openVehicleTypeDistribution(const SUMOSAXAttributes& attrs) = 0;
97 
99  virtual void closeVehicleTypeDistribution() = 0;
100 
102  virtual void openRoute(const SUMOSAXAttributes& attrs) = 0;
103 
105  virtual void openFlow(const SUMOSAXAttributes& attrs) = 0;
106 
108  virtual void openTrip(const SUMOSAXAttributes& attrs) = 0;
110 
112 
113 
120  virtual void closeRoute(const bool mayBeDisconnected = false) = 0;
121 
123  virtual void openRouteDistribution(const SUMOSAXAttributes& attrs) = 0;
124 
126  virtual void closeRouteDistribution() = 0;
127 
129  virtual void closeVehicle() = 0;
130 
132  virtual void closeVType() = 0;
133 
135  virtual void closePerson() = 0;
136 
138  virtual void closePersonFlow() = 0;
139 
141  virtual void closeContainer() = 0;
142 
144  virtual void closeFlow() = 0;
145 
147  virtual void closeTrip() = 0;
149 
151 
152 
154  virtual void addStop(const SUMOSAXAttributes& attrs) = 0;
155 
157  virtual void addPersonTrip(const SUMOSAXAttributes& attrs) = 0;
158 
160  virtual void addWalk(const SUMOSAXAttributes& attrs) = 0;
161 
163  virtual void addPerson(const SUMOSAXAttributes& attrs) = 0;
164 
166  virtual void addContainer(const SUMOSAXAttributes& attrs) = 0;
167 
169  virtual void addRide(const SUMOSAXAttributes& attrs) = 0;
170 
172  virtual void addTransport(const SUMOSAXAttributes& attrs) = 0;
173 
175  virtual void addTranship(const SUMOSAXAttributes& attrs) = 0;
176 
178 
180  bool checkLastDepart();
181 
183  void registerLastDepart();
184 
186  void addParam(const SUMOSAXAttributes& attrs);
187 
189  bool parseStop(SUMOVehicleParameter::Stop& stop, const SUMOSAXAttributes& attrs, std::string errorSuffix, MsgHandler* const errorOutput);
190 
191 protected:
193  const bool myHardFail;
194 
197 
200 
202  std::string myActiveRouteID;
203 
205  std::string myActiveRouteRefID;
206 
209 
212 
215 
217  std::vector<SUMOVehicleParameter::Stop> myActiveRouteStops;
218 
221 
224 
227 
230 
233 
236 
239 
240 private:
242  SUMORouteHandler(const SUMORouteHandler& s) = delete;
243 
245  SUMORouteHandler& operator=(const SUMORouteHandler& s) = delete;
246 };
247 
248 
249 #endif
250 
251 /****************************************************************************/
SUMORouteHandler::closeContainer
virtual void closeContainer()=0
Ends the processing of a container.
SUMORouteHandler::~SUMORouteHandler
virtual ~SUMORouteHandler()
standard destructor
Definition: SUMORouteHandler.cpp:61
SUMORouteHandler::myStartElement
virtual void myStartElement(int element, const SUMOSAXAttributes &attrs)
Called on the opening of a tag;.
Definition: SUMORouteHandler.cpp:92
SUMORouteHandler::addRide
virtual void addRide(const SUMOSAXAttributes &attrs)=0
Processing of a ride.
Parameterised
An upper class for objects with additional parameters.
Definition: Parameterised.h:43
SUMOTime.h
SUMOSAXHandler
SAX-handler base for SUMO-files.
Definition: SUMOSAXHandler.h:42
SUMORouteHandler::closeRoute
virtual void closeRoute(const bool mayBeDisconnected=false)=0
SUMORouteHandler::parseStop
bool parseStop(SUMOVehicleParameter::Stop &stop, const SUMOSAXAttributes &attrs, std::string errorSuffix, MsgHandler *const errorOutput)
parses attributes common to all stops
Definition: SUMORouteHandler.cpp:357
SUMORouteHandler::addParam
void addParam(const SUMOSAXAttributes &attrs)
assign arbitrary vehicle parameters
Definition: SUMORouteHandler.cpp:340
SUMORouteHandler::myLastDepart
SUMOTime myLastDepart
The insertion time of the vehicle read last.
Definition: SUMORouteHandler.h:199
SUMOSAXHandler.h
SUMOTime
long long int SUMOTime
Definition: SUMOTime.h:35
IDSupplier
Definition: IDSupplier.h:38
SUMORouteHandler::closeRouteDistribution
virtual void closeRouteDistribution()=0
closes (ends) the building of a distribution
SUMORouteHandler::addPerson
virtual void addPerson(const SUMOSAXAttributes &attrs)=0
Processing of a person.
SUMOVehicleParameter
Structure representing possible vehicle parameter.
Definition: SUMOVehicleParameter.h:291
SUMORouteHandler::closeFlow
virtual void closeFlow()=0
Ends the processing of a flow.
SUMORouteHandler::myHardFail
const bool myHardFail
flag to enable or disable hard fails
Definition: SUMORouteHandler.h:193
SUMORouteHandler::openFlow
virtual void openFlow(const SUMOSAXAttributes &attrs)=0
opens a flow for reading
SUMORouteHandler::myActiveRouteStops
std::vector< SUMOVehicleParameter::Stop > myActiveRouteStops
List of the stops on the parsed route.
Definition: SUMORouteHandler.h:217
SUMOVehicleParameter.h
SUMORouteHandler::checkStopPos
static bool checkStopPos(double &startPos, double &endPos, const double laneLength, const double minLength, const bool friendlyPos)
check start and end position of a stop
Definition: SUMORouteHandler.cpp:290
SUMORouteHandler::closeVehicleTypeDistribution
virtual void closeVehicleTypeDistribution()=0
closes (ends) the building of a distribution
SUMORouteHandler::myLoadedParameterised
Parameterised myLoadedParameterised
Parameterised used for saving loaded generic parameters that aren't saved in Vehicles or Vehicle Type...
Definition: SUMORouteHandler.h:223
SUMORouteHandler::myActiveRouteRefID
std::string myActiveRouteRefID
The id of the route the current route references to.
Definition: SUMORouteHandler.h:205
RGBColor
Definition: RGBColor.h:40
SUMORouteHandler::openVehicleTypeDistribution
virtual void openVehicleTypeDistribution(const SUMOSAXAttributes &attrs)=0
opens a type distribution for reading
SUMORouteHandler::checkLastDepart
bool checkLastDepart()
Checks whether the route file is sorted by departure time if needed.
Definition: SUMORouteHandler.cpp:67
MsgHandler
Definition: MsgHandler.h:44
SUMOVTypeParameter
Structure representing possible vehicle parameter.
Definition: SUMOVTypeParameter.h:86
SUMORouteHandler::myActiveRouteColor
const RGBColor * myActiveRouteColor
The currently parsed route's color.
Definition: SUMORouteHandler.h:211
SUMORouteHandler::closePerson
virtual void closePerson()=0
Ends the processing of a person.
SUMORouteHandler::addWalk
virtual void addWalk(const SUMOSAXAttributes &attrs)=0
add a fully specified walk
SUMORouteHandler::myCurrentCosts
double myCurrentCosts
The currently parsed route costs.
Definition: SUMORouteHandler.h:214
SUMORouteHandler::myEndElement
virtual void myEndElement(int element)
Called when a closing tag occurs.
Definition: SUMORouteHandler.cpp:222
SUMORouteHandler::myEndDefault
SUMOTime myEndDefault
The default value for flow ends.
Definition: SUMORouteHandler.h:232
SUMORouteHandler::openRoute
virtual void openRoute(const SUMOSAXAttributes &attrs)=0
opens a route for reading
SUMORouteHandler::SUMORouteHandler
SUMORouteHandler(const std::string &file, const std::string &expectedRoot, const bool hardFail)
standard constructor
Definition: SUMORouteHandler.cpp:46
SUMORouteHandler::closeTrip
virtual void closeTrip()=0
Ends the processing of a trip.
SUMORouteHandler::openTrip
virtual void openTrip(const SUMOSAXAttributes &attrs)=0
opens a trip for reading
IDSupplier.h
SUMORouteHandler::myActiveRouteProbability
double myActiveRouteProbability
The probability of the current route.
Definition: SUMORouteHandler.h:208
SUMORouteHandler::myVehicleParameter
SUMOVehicleParameter * myVehicleParameter
Parameter of the current vehicle, trip, person, container or flow.
Definition: SUMORouteHandler.h:196
SUMORouteHandler::closeVType
virtual void closeVType()=0
Ends the processing of a vehicle type.
SUMORouteHandler::registerLastDepart
void registerLastDepart()
save last depart (only to be used if vehicle is not discarded)
Definition: SUMORouteHandler.cpp:79
SUMORouteHandler::myFirstDepart
SUMOTime myFirstDepart
the first read departure time
Definition: SUMORouteHandler.h:235
SUMORouteHandler::addContainer
virtual void addContainer(const SUMOSAXAttributes &attrs)=0
Processing of a container.
SUMORouteHandler::addTranship
virtual void addTranship(const SUMOSAXAttributes &attrs)=0
Processing of a tranship.
SUMORouteHandler::addPersonTrip
virtual void addPersonTrip(const SUMOSAXAttributes &attrs)=0
add a routing request for a walking or intermodal person
SUMORouteHandler::myIdSupplier
IDSupplier myIdSupplier
generates numerical ids
Definition: SUMORouteHandler.h:226
SUMORouteHandler::operator=
SUMORouteHandler & operator=(const SUMORouteHandler &s)=delete
Invalidated assignment operator.
SUMORouteHandler::closePersonFlow
virtual void closePersonFlow()=0
Ends the processing of a person.
SUMORouteHandler
Parser for routes during their loading.
Definition: SUMORouteHandler.h:51
SUMORouteHandler::addStop
virtual void addStop(const SUMOSAXAttributes &attrs)=0
Processing of a stop.
config.h
SUMORouteHandler::openRouteDistribution
virtual void openRouteDistribution(const SUMOSAXAttributes &attrs)=0
opens a route distribution for reading
SUMORouteHandler::myCurrentVType
SUMOVTypeParameter * myCurrentVType
The currently parsed vehicle type.
Definition: SUMORouteHandler.h:220
SUMORouteHandler::myBeginDefault
SUMOTime myBeginDefault
The default value for flow begins.
Definition: SUMORouteHandler.h:229
SUMORouteHandler::closeVehicle
virtual void closeVehicle()=0
Ends the processing of a vehicle.
SUMORouteHandler::addTransport
virtual void addTransport(const SUMOSAXAttributes &attrs)=0
Processing of a transport.
SUMOSAXAttributes
Encapsulated SAX-Attributes.
Definition: SUMOSAXAttributes.h:57
SUMORouteHandler::getFirstDepart
SUMOTime getFirstDepart() const
returns the first departure time that was ever read
Definition: SUMORouteHandler.cpp:328
SUMORouteHandler::myActiveRouteID
std::string myActiveRouteID
The id of the current route.
Definition: SUMORouteHandler.h:202
SUMORouteHandler::myInsertStopEdgesAt
int myInsertStopEdgesAt
where stop edges can be inserted into the current route (-1 means no insertion)
Definition: SUMORouteHandler.h:238
SUMOVehicleParameter::Stop
Definition of vehicle stop (position and duration)
Definition: SUMOVehicleParameter.h:566
SUMORouteHandler::getLastDepart
SUMOTime getLastDepart() const
Returns the last loaded depart time.
Definition: SUMORouteHandler.cpp:334