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 /****************************************************************************/
virtual void openVehicleTypeDistribution(const SUMOSAXAttributes &attrs)=0
opens a type distribution for reading
virtual void addPersonTrip(const SUMOSAXAttributes &attrs)=0
add a routing request for a walking or intermodal person
virtual void myEndElement(int element)
Called when a closing tag occurs.
long long int SUMOTime
Definition: SUMOTime.h:35
virtual void closeVType()=0
Ends the processing of a vehicle type.
SUMOTime myFirstDepart
the first read departure time
SUMORouteHandler & operator=(const SUMORouteHandler &s)=delete
Invalidated assignment operator.
SUMOVehicleParameter * myVehicleParameter
Parameter of the current vehicle, trip, person, container or flow.
SUMOTime myEndDefault
The default value for flow ends.
Structure representing possible vehicle parameter.
virtual void addStop(const SUMOSAXAttributes &attrs)=0
Processing of a stop.
SUMOVTypeParameter * myCurrentVType
The currently parsed vehicle type.
virtual void addContainer(const SUMOSAXAttributes &attrs)=0
Processing of a container.
virtual void closeTrip()=0
Ends the processing of a trip.
virtual void openTrip(const SUMOSAXAttributes &attrs)=0
opens a trip for reading
double myActiveRouteProbability
The probability of the current route.
virtual void openRouteDistribution(const SUMOSAXAttributes &attrs)=0
opens a route distribution for reading
void registerLastDepart()
save last depart (only to be used if vehicle is not discarded)
std::string myActiveRouteID
The id of the current route.
virtual void addTranship(const SUMOSAXAttributes &attrs)=0
Processing of a tranship.
SAX-handler base for SUMO-files.
int myInsertStopEdgesAt
where stop edges can be inserted into the current route (-1 means no insertion)
SUMOTime getLastDepart() const
Returns the last loaded depart time.
IDSupplier myIdSupplier
generates numerical ids
SUMOTime getFirstDepart() const
returns the first departure time that was ever read
virtual void addRide(const SUMOSAXAttributes &attrs)=0
Processing of a ride.
SUMOTime myBeginDefault
The default value for flow begins.
virtual void closePersonFlow()=0
Ends the processing of a person.
virtual void closeVehicle()=0
Ends the processing of a vehicle.
virtual void addTransport(const SUMOSAXAttributes &attrs)=0
Processing of a transport.
virtual void closeContainer()=0
Ends the processing of a container.
Encapsulated SAX-Attributes.
void addParam(const SUMOSAXAttributes &attrs)
assign arbitrary vehicle parameters
virtual ~SUMORouteHandler()
standard destructor
An upper class for objects with additional parameters.
Definition: Parameterised.h:43
Definition of vehicle stop (position and duration)
virtual void closeRoute(const bool mayBeDisconnected=false)=0
Parser for routes during their loading.
static bool checkStopPos(double &startPos, double &endPos, const double laneLength, const double minLength, const bool friendlyPos)
check start and end position of a stop
std::vector< SUMOVehicleParameter::Stop > myActiveRouteStops
List of the stops on the parsed route.
Structure representing possible vehicle parameter.
virtual void myStartElement(int element, const SUMOSAXAttributes &attrs)
Called on the opening of a tag;.
virtual void closeVehicleTypeDistribution()=0
closes (ends) the building of a distribution
SUMOTime myLastDepart
The insertion time of the vehicle read last.
bool parseStop(SUMOVehicleParameter::Stop &stop, const SUMOSAXAttributes &attrs, std::string errorSuffix, MsgHandler *const errorOutput)
parses attributes common to all stops
virtual void closeRouteDistribution()=0
closes (ends) the building of a distribution
Parameterised myLoadedParameterised
Parameterised used for saving loaded generic parameters that aren&#39;t saved in Vehicles or Vehicle Type...
virtual void closeFlow()=0
Ends the processing of a flow.
const RGBColor * myActiveRouteColor
The currently parsed route&#39;s color.
double myCurrentCosts
The currently parsed route costs.
virtual void closePerson()=0
Ends the processing of a person.
virtual void openFlow(const SUMOSAXAttributes &attrs)=0
opens a flow for reading
const bool myHardFail
flag to enable or disable hard fails
virtual void addPerson(const SUMOSAXAttributes &attrs)=0
Processing of a person.
virtual void addWalk(const SUMOSAXAttributes &attrs)=0
add a fully specified walk
bool checkLastDepart()
Checks whether the route file is sorted by departure time if needed.
std::string myActiveRouteRefID
The id of the route the current route references to.
virtual void openRoute(const SUMOSAXAttributes &attrs)=0
opens a route for reading
SUMORouteHandler(const std::string &file, const std::string &expectedRoot, const bool hardFail)
standard constructor