SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
MSNet.h
Go to the documentation of this file.
1 /****************************************************************************/
13 // The simulated network and simulation perfomer
14 /****************************************************************************/
15 // SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
16 // Copyright (C) 2001-2016 DLR (http://www.dlr.de/) and contributors
17 /****************************************************************************/
18 //
19 // This file is part of SUMO.
20 // SUMO is free software: you can redistribute it and/or modify
21 // it under the terms of the GNU General Public License as published by
22 // the Free Software Foundation, either version 3 of the License, or
23 // (at your option) any later version.
24 //
25 /****************************************************************************/
26 #ifndef MSNet_h
27 #define MSNet_h
28 
29 
30 // ===========================================================================
31 // included modules
32 // ===========================================================================
33 #ifdef _MSC_VER
34 #include <windows_config.h>
35 #else
36 #include <config.h>
37 #endif
38 
39 #include <typeinfo>
40 #include <vector>
41 #include <map>
42 #include <string>
43 #include <fstream>
44 #include <iostream>
45 #include <cmath>
46 #include <iomanip>
47 #include "MSVehicleControl.h"
48 #include "MSEventControl.h"
49 #include <utils/geom/Boundary.h>
50 #include <utils/geom/Position.h>
51 #include <utils/common/SUMOTime.h>
62 
63 
64 // ===========================================================================
65 // class declarations
66 // ===========================================================================
67 class MSEdge;
68 class MSJunction;
69 class MSEdgeControl;
70 class MSJunctionControl;
71 class MSInsertionControl;
74 class MSVehicle;
75 class MSRoute;
76 class MSLane;
77 class MSTLLogicControl;
78 class MSDetectorControl;
79 class ShapeContainer;
80 class BinaryInputDevice;
83 
84 typedef std::vector<MSEdge*> MSEdgeVector;
85 
86 // ===========================================================================
87 // class definitions
88 // ===========================================================================
93 class MSNet {
94 public:
111  };
112 
113  //typedef PedestrianRouterDijkstra<MSEdge, MSLane> MSPedestrianRouterDijkstra;
115 
116 
117 
118 public:
123  static MSNet* getInstance();
124 
125 
140  MSNet(MSVehicleControl* vc, MSEventControl* beginOfTimestepEvents,
141  MSEventControl* endOfTimestepEvents, MSEventControl* insertionEvents,
142  ShapeContainer* shapeCont = 0);
143 
144 
146  virtual ~MSNet();
147 
148 
164  void closeBuilding(const OptionsCont& oc, MSEdgeControl* edges, MSJunctionControl* junctions,
165  SUMORouteLoaderControl* routeLoaders, MSTLLogicControl* tlc,
166  std::vector<SUMOTime> stateDumpTimes, std::vector<std::string> stateDumpFiles,
167  bool hasInternalLinks, bool hasNeighs, bool lefthand,
168  SUMOReal version);
169 
170 
174  bool hasPermissions() const {
175  return myHavePermissions;
176  }
177 
178 
181  myHavePermissions = true;
182  }
183 
184 
190  void addRestriction(const std::string& id, const SUMOVehicleClass svc, const SUMOReal speed);
191 
192 
198  const std::map<SUMOVehicleClass, SUMOReal>* getRestrictions(const std::string& id) const;
199 
200 
204  static void clearAll();
205 
206 
214  int simulate(SUMOTime start, SUMOTime stop);
215 
216 
220  void simulationStep();
221 
222 
224  void loadRoutes();
225 
226 
234  void closeSimulation(SUMOTime start);
235 
236 
242  SimulationState simulationState(SUMOTime stopTime) const;
243 
244 
248  static std::string getStateMessage(SimulationState state);
249 
250 
254  inline SUMOTime getCurrentTimeStep() const {
255  return myStep;
256  }
257 
258 
262  inline void setCurrentTimeStep(const SUMOTime step) {
263  myStep = step;
264  }
265 
266 
270  void writeOutput();
271 
272 
276  bool logSimulationDuration() const;
277 
278 
279 
281 
282 
287  void preSimStepOutput() const;
288 
289 
294  void postSimStepOutput() const;
295  //}
296 
297 
298 
301 
308  return *myVehicleControl;
309  }
310 
311 
321 
324  bool hasPersons() const {
325  return myPersonControl != 0;
326  }
327 
337 
340  bool hasContainers() const {
341  return myContainerControl != 0;
342  }
343 
344 
351  return *myEdges;
352  }
353 
354 
361  return *myInserter;
362  }
363 
364 
371  return *myDetectorControl;
372  }
373 
374 
381  return *myLogics;
382  }
383 
384 
391  return *myJunctions;
392  }
393 
394 
402  }
403 
404 
411  return myEndOfTimestepEvents;
412  }
413 
414 
421  return myInsertionEvents;
422  }
423 
424 
431  return *myShapeContainer;
432  }
433 
441 
444 
456  bool addBusStop(MSStoppingPlace* busStop);
457 
458 
463  MSStoppingPlace* getBusStop(const std::string& id) const;
464 
465 
471  std::string getBusStopID(const MSLane* lane, const SUMOReal pos) const;
473 
474 
477 
489  bool addContainerStop(MSStoppingPlace* containerStop);
490 
495  MSStoppingPlace* getContainerStop(const std::string& id) const;
496 
502  std::string getContainerStopID(const MSLane* lane, const SUMOReal pos) const;
504 
516  bool addChargingStation(MSChargingStation* chargingStation);
517 
522  MSChargingStation* getChargingStation(const std::string& id) const;
523 
529  std::string getChargingStationID(const MSLane* lane, const SUMOReal pos) const;
531 
532 
535 
558  };
559 
560 
565  public:
568 
570  virtual ~VehicleStateListener() { }
571 
576  virtual void vehicleStateChanged(const SUMOVehicle* const vehicle, VehicleState to) = 0;
577 
578  };
579 
580 
584  void addVehicleStateListener(VehicleStateListener* listener);
585 
586 
590  void removeVehicleStateListener(VehicleStateListener* listener);
591 
592 
598  void informVehicleStateListener(const SUMOVehicle* const vehicle, VehicleState to);
600 
601 
602 
610  static SUMOReal getTravelTime(const MSEdge* const e, const SUMOVehicle* const v, SUMOReal t);
611 
612 
620  static SUMOReal getEffort(const MSEdge* const e, const SUMOVehicle* const v, SUMOReal t);
621 
622 
623  /* @brief get the router, initialize on first use
624  * @param[in] prohibited The vector of forbidden edges (optional)
625  */
627  const MSEdgeVector& prohibited = MSEdgeVector()) const;
629  const MSEdgeVector& prohibited = MSEdgeVector()) const;
630  MSPedestrianRouterDijkstra& getPedestrianRouter(const MSEdgeVector& prohibited = MSEdgeVector()) const;
631 
632 
636  const NamedRTree& getLanesRTree() const;
637 
639  bool hasInternalLinks() const {
640  return myHasInternalLinks;
641  }
642 
644  bool hasNeighs() const {
645  return myHasNeighs;
646  }
647 
649  bool hasElevation() const {
650  return myHasElevation;
651  }
652 
654  bool lefthand() const {
655  return myLefthand;
656  }
657 
659  SUMOReal version() const {
660  return myVersion;
661  }
662 
663 protected:
665  bool checkElevation();
666 
667 protected:
669  static MSNet* myInstance;
670 
673 
676 
677 
678 
681 
709 
710 
711 
714 
717 
720 
723 
726 
728  long long int myVehiclesMoved;
729  //}
730 
731 
732 
735 
737  std::vector<SUMOTime> myStateDumpTimes;
739  std::vector<std::string> myStateDumpFiles;
743  std::string myStateDumpPrefix;
744  std::string myStateDumpSuffix;
746 
747 
748 
751 
753  std::map<std::string, std::map<SUMOVehicleClass, SUMOReal> > myRestrictions;
754 
757 
760 
763 
766 
769 
772 
775 
778 
780  std::vector<VehicleStateListener*> myVehicleStateListeners;
781 
782 
783  /* @brief The router instance for routing by trigger and by traci
784  * @note MSDevice_Routing has its own instance since it uses a different weight function
785  * @note we provide one member for every switchable router type
786  * because the class structure makes it inconvenient to use a superclass*/
787  mutable bool myRouterTTInitialized;
791  mutable MSPedestrianRouterDijkstra* myPedestrianRouter;
792 
793 
795  mutable std::pair<bool, NamedRTree> myLanesRTree;
796 
797 
799  static const std::string STAGE_EVENTS;
800  static const std::string STAGE_MOVEMENTS;
801  static const std::string STAGE_LANECHANGE;
802  static const std::string STAGE_INSERTIONS;
803 
804 private:
806  MSNet(const MSNet&);
807 
809  MSNet& operator=(const MSNet&);
810 
811 
812 };
813 
814 
815 #endif
816 
817 /****************************************************************************/
818 
std::string myStateDumpSuffix
Definition: MSNet.h:744
The vehicle has departed (was inserted into the network)
Definition: MSNet.h:541
AStarRouter< MSEdge, SUMOVehicle, prohibited_withPermissions< MSEdge, SUMOVehicle > > * myRouterTTAStar
Definition: MSNet.h:789
Computes the shortest path through a network using the Dijkstra algorithm.
bool lefthand() const
return whether the network was built for lefthand traffic
Definition: MSNet.h:654
void postSimStepOutput() const
Prints the statistics of the step at its end.
Definition: MSNet.cpp:731
Representation of a vehicle in the micro simulation.
Definition: MSVehicle.h:82
long long int SUMOTime
Definition: SUMOTime.h:43
Interface for objects listening to vehicle state changes.
Definition: MSNet.h:564
long mySimStepEnd
Definition: MSNet.h:722
void removeVehicleStateListener(VehicleStateListener *listener)
Removes a vehicle states listener.
Definition: MSNet.cpp:764
MSEventControl * myEndOfTimestepEvents
Controls events executed at the end of a time step;.
Definition: MSNet.h:701
static SUMOReal getEffort(const MSEdge *const e, const SUMOVehicle *const v, SUMOReal t)
Returns the effort to pass an edge.
Definition: MSNet.cpp:127
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types...
A lane area vehicles can halt at.
The simulation contains too many vehicles (.
Definition: MSNet.h:110
const std::map< SUMOVehicleClass, SUMOReal > * getRestrictions(const std::string &id) const
Returns the restrictions for an edge type If no restrictions are present, 0 is returned.
Definition: MSNet.cpp:296
MSVehicleControl * myVehicleControl
Controls vehicle building and deletion;.
Definition: MSNet.h:683
std::vector< MSEdge * > MSEdgeVector
Definition: MSNet.h:82
bool hasPersons() const
Returns whether persons are simulated.
Definition: MSNet.h:324
std::vector< SUMOTime > myStateDumpTimes
Times at which a state shall be written.
Definition: MSNet.h:737
The base class for an intersection.
Definition: MSJunction.h:64
DijkstraRouterEffort< MSEdge, SUMOVehicle, prohibited_withPermissions< MSEdge, SUMOVehicle > > * myRouterEffort
Definition: MSNet.h:790
bool hasInternalLinks() const
return whether the network contains internal links
Definition: MSNet.h:639
std::string getContainerStopID(const MSLane *lane, const SUMOReal pos) const
Returns the container stop close to the given position.
Definition: MSNet.cpp:818
int simulate(SUMOTime start, SUMOTime stop)
Simulates from timestep start to stop.
Definition: MSNet.cpp:306
virtual void vehicleStateChanged(const SUMOVehicle *const vehicle, VehicleState to)=0
Called if a vehicle changes its state.
A RT-tree for efficient storing of SUMO's Named objects.
Definition: NamedRTree.h:72
Computes the shortest path through a network using the A* algorithm.
Definition: AStarRouter.h:71
MSPedestrianRouterDijkstra & getPedestrianRouter(const MSEdgeVector &prohibited=MSEdgeVector()) const
Definition: MSNet.cpp:894
MSChargingStation * getChargingStation(const std::string &id) const
Returns the named charging station.
Definition: MSNet.cpp:837
bool addBusStop(MSStoppingPlace *busStop)
Adds a bus stop.
Definition: MSNet.cpp:783
static MSNet * getInstance()
Returns the pointer to the unique instance of MSNet (singleton).
Definition: MSNet.cpp:159
bool myHavePermissions
Whether the network contains edges which not all vehicles may pass.
Definition: MSNet.h:750
MSEdgeControl * myEdges
Controls edges, performs vehicle movement;.
Definition: MSNet.h:689
void setCurrentTimeStep(const SUMOTime step)
Sets the current simulation step (used by state loading)
Definition: MSNet.h:262
The final simulation step has been performed.
Definition: MSNet.h:102
std::vector< std::string > myStateDumpFiles
The names for the state files.
Definition: MSNet.h:739
bool myLogExecutionTime
Information whether the simulation duration shall be logged.
Definition: MSNet.h:716
Storage for geometrical objects.
static const std::string STAGE_LANECHANGE
Definition: MSNet.h:801
NamedObjectCont< MSStoppingPlace * > myContainerStopDict
Dictionary of container stops.
Definition: MSNet.h:774
Detectors container; responsible for string and output generation.
bool myLefthand
Whether the network was built for left-hand traffic.
Definition: MSNet.h:765
A storage for edge travel times and efforts.
SUMOTime getCurrentTimeStep() const
Returns the current simulation step.
Definition: MSNet.h:254
std::string getBusStopID(const MSLane *lane, const SUMOReal pos) const
Returns the bus stop close to the given position.
Definition: MSNet.cpp:795
void addVehicleStateListener(VehicleStateListener *listener)
Adds a vehicle states listener.
Definition: MSNet.cpp:756
SimulationState
Possible states of a simulation - running or stopped with different reasons.
Definition: MSNet.h:98
MSPedestrianRouterDijkstra * myPedestrianRouter
Definition: MSNet.h:791
The simulated network and simulation perfomer.
Definition: MSNet.h:93
Computes the shortest path through a network using the Dijkstra algorithm.
ShapeContainer * myShapeContainer
A container for geometrical shapes;.
Definition: MSNet.h:705
std::pair< bool, NamedRTree > myLanesRTree
An RTree structure holding lane IDs.
Definition: MSNet.h:795
Container for junctions; performs operations on all stored junctions.
DijkstraRouterTT< MSEdge, SUMOVehicle, prohibited_withPermissions< MSEdge, SUMOVehicle > > * myRouterTTDijkstra
Definition: MSNet.h:788
virtual MSTransportableControl & getContainerControl()
Returns the container control.
Definition: MSNet.cpp:707
The vehicles starts to stop.
Definition: MSNet.h:555
A class that stores and controls tls and switching of their programs.
A road/street connecting two junctions.
Definition: MSEdge.h:80
long long int myVehiclesMoved
The overall number of vehicle movements.
Definition: MSNet.h:728
long mySimStepBegin
The last simulation step begin, end and duration.
Definition: MSNet.h:722
The simulation does not contain further vehicles.
Definition: MSNet.h:104
An error occured during the simulation step.
Definition: MSNet.h:108
void writeOutput()
Write netstate, summary and detector output.
Definition: MSNet.cpp:591
The vehicle got a new route.
Definition: MSNet.h:549
The vehicle arrived at his destination (is deleted)
Definition: MSNet.h:547
MSStoppingPlace * getBusStop(const std::string &id) const
Returns the named bus stop.
Definition: MSNet.cpp:789
The vehicles starts to park.
Definition: MSNet.h:551
MSInsertionControl * myInserter
Controls vehicle insertion;.
Definition: MSNet.h:695
Representation of a vehicle.
Definition: SUMOVehicle.h:66
bool myHasNeighs
Whether the network contains explicit neighbor lanes.
Definition: MSNet.h:759
void closeBuilding(const OptionsCont &oc, MSEdgeControl *edges, MSJunctionControl *junctions, SUMORouteLoaderControl *routeLoaders, MSTLLogicControl *tlc, std::vector< SUMOTime > stateDumpTimes, std::vector< std::string > stateDumpFiles, bool hasInternalLinks, bool hasNeighs, bool lefthand, SUMOReal version)
Closes the network's building process.
Definition: MSNet.cpp:213
SUMORouteLoaderControl * myRouteLoaders
Route loader for dynamic loading of routes.
Definition: MSNet.h:672
virtual MSTransportableControl & getPersonControl()
Returns the person control.
Definition: MSNet.cpp:699
ShapeContainer & getShapeContainer()
Returns the shapes container.
Definition: MSNet.h:430
void closeSimulation(SUMOTime start)
Closes the simulation (all files, connections, etc.)
Definition: MSNet.cpp:357
bool myLogStepNumber
Information whether the number of the simulation step shall be logged.
Definition: MSNet.h:719
MSTLLogicControl & getTLSControl()
Returns the tls logics control.
Definition: MSNet.h:380
MSVehicleControl & getVehicleControl()
Returns the vehicle control.
Definition: MSNet.h:307
MSEventControl * getBeginOfTimestepEvents()
Returns the event control for events executed at the begin of a time step.
Definition: MSNet.h:400
static SUMOReal getTravelTime(const MSEdge *const e, const SUMOVehicle *const v, SUMOReal t)
Returns the travel time to pass an edge.
Definition: MSNet.cpp:141
MSDetectorControl * myDetectorControl
Controls detectors;.
Definition: MSNet.h:697
void setPermissionsFound()
Labels the network to contain vehicle class permissions.
Definition: MSNet.h:180
Stores edges and lanes, performs moving of vehicle.
Definition: MSEdgeControl.h:74
MSTLLogicControl * myLogics
Controls tls logics, realizes waiting on tls rules;.
Definition: MSNet.h:693
The connection to a client was closed by the client.
Definition: MSNet.h:106
The simulation is running.
Definition: MSNet.h:100
bool hasNeighs() const
return whether the network contains explicit neighbor lanes
Definition: MSNet.h:644
MSNet & operator=(const MSNet &)
Invalidated assignment operator.
The vehicle started to teleport.
Definition: MSNet.h:543
void preSimStepOutput() const
Prints the current step number.
Definition: MSNet.cpp:725
std::map< std::string, std::map< SUMOVehicleClass, SUMOReal > > myRestrictions
The vehicle class specific speed restrictions.
Definition: MSNet.h:753
bool hasContainers() const
Returns whether containers are simulated.
Definition: MSNet.h:340
PedestrianRouterDijkstra< MSEdge, MSLane, MSJunction, MSVehicle > MSPedestrianRouterDijkstra
Definition: MSNet.h:114
The vehicle ends to park.
Definition: MSNet.h:553
SUMOReal myVersion
the network version
Definition: MSNet.h:768
MSDetectorControl & getDetectorControl()
Returns the detector control.
Definition: MSNet.h:370
SUMOTime myStateDumpPeriod
The period for writing state.
Definition: MSNet.h:741
Inserts vehicles into the network when their departure time is reached.
VehicleState
Definition of a vehicle state.
Definition: MSNet.h:537
SUMOAbstractRouter< MSEdge, SUMOVehicle > & getRouterTT(const MSEdgeVector &prohibited=MSEdgeVector()) const
Definition: MSNet.cpp:856
MSEventControl * getEndOfTimestepEvents()
Returns the event control for events executed at the end of a time step.
Definition: MSNet.h:410
static const std::string STAGE_MOVEMENTS
Definition: MSNet.h:800
VehicleStateListener()
Constructor.
Definition: MSNet.h:567
The vehicle was built, but has not yet departed.
Definition: MSNet.h:539
std::vector< VehicleStateListener * > myVehicleStateListeners
Container for vehicle state listener.
Definition: MSNet.h:780
static MSNet * myInstance
Unique instance of MSNet.
Definition: MSNet.h:669
static void clearAll()
Clears all dictionaries.
Definition: MSNet.cpp:575
bool myRouterTTInitialized
Definition: MSNet.h:787
bool addContainerStop(MSStoppingPlace *containerStop)
Adds a container stop.
Definition: MSNet.cpp:808
bool addChargingStation(MSChargingStation *chargingStation)
Adds a chargingg station.
Definition: MSNet.cpp:831
SimulationState simulationState(SUMOTime stopTime) const
Called after a simulation step, this method returns the current simulation state. ...
Definition: MSNet.cpp:522
MSTransportableControl * myContainerControl
Controls container building and deletion;.
Definition: MSNet.h:687
MSJunctionControl * myJunctions
Controls junctions, realizes right-of-way rules;.
Definition: MSNet.h:691
MSInsertionControl & getInsertionControl()
Returns the insertion control.
Definition: MSNet.h:360
MSTransportableControl * myPersonControl
Controls person building and deletion;.
Definition: MSNet.h:685
bool checkElevation()
check all lanes for elevation data
Definition: MSNet.cpp:914
MSEventControl * myBeginOfTimestepEvents
Controls events executed at the begin of a time step;.
Definition: MSNet.h:699
A storage for options typed value containers)
Definition: OptionsCont.h:99
virtual ~VehicleStateListener()
Destructor.
Definition: MSNet.h:570
MSEdgeWeightsStorage * myEdgeWeights
The net's knowledge about edge efforts/travel times;.
Definition: MSNet.h:707
MSStoppingPlace * getContainerStop(const std::string &id) const
Returns the named container stop.
Definition: MSNet.cpp:813
MSNet(MSVehicleControl *vc, MSEventControl *beginOfTimestepEvents, MSEventControl *endOfTimestepEvents, MSEventControl *insertionEvents, ShapeContainer *shapeCont=0)
Constructor.
Definition: MSNet.cpp:167
void addRestriction(const std::string &id, const SUMOVehicleClass svc, const SUMOReal speed)
Adds a restriction for an edge type.
Definition: MSNet.cpp:290
The vehicle ends to stop.
Definition: MSNet.h:557
MSEventControl * getInsertionEvents()
Returns the event control for insertion events.
Definition: MSNet.h:420
void informVehicleStateListener(const SUMOVehicle *const vehicle, VehicleState to)
Informs all added listeners about a vehicle's state change.
Definition: MSNet.cpp:773
const NamedRTree & getLanesRTree() const
Returns an RTree that contains lane IDs.
Definition: MSNet.cpp:904
SUMOReal version() const
return the network version
Definition: MSNet.h:659
long mySimBeginMillis
The overall simulation duration.
Definition: MSNet.h:725
virtual ~MSNet()
Destructor.
Definition: MSNet.cpp:248
bool myHasElevation
Whether the network contains elevation data.
Definition: MSNet.h:762
std::string myStateDumpPrefix
name components for periodic state
Definition: MSNet.h:743
#define SUMOReal
Definition: config.h:214
static std::string getStateMessage(SimulationState state)
Returns the message to show if a certain state occurs.
Definition: MSNet.cpp:554
MSEdgeControl & getEdgeControl()
Returns the edge control.
Definition: MSNet.h:350
NamedObjectCont< MSChargingStation * > myChargingStationDict
Dictionary of charging Stations.
Definition: MSNet.h:777
bool logSimulationDuration() const
Returns whether duration shall be logged.
Definition: MSNet.cpp:693
MSJunctionControl & getJunctionControl()
Returns the junctions control.
Definition: MSNet.h:390
SUMOTime myStep
Current time step.
Definition: MSNet.h:675
std::string getChargingStationID(const MSLane *lane, const SUMOReal pos) const
Returns the charging station close to the given position.
Definition: MSNet.cpp:843
The class responsible for building and deletion of vehicles.
std::vector< MSEdge * > MSEdgeVector
Definition: MSEdge.h:77
void simulationStep()
Performs a single simulation step.
Definition: MSNet.cpp:424
bool hasPermissions() const
Returns whether the network has specific vehicle class permissions.
Definition: MSNet.h:174
void loadRoutes()
loads routes for the next few steps
Definition: MSNet.cpp:351
SUMOAbstractRouter< MSEdge, SUMOVehicle > & getRouterEffort(const MSEdgeVector &prohibited=MSEdgeVector()) const
Definition: MSNet.cpp:883
static const std::string STAGE_INSERTIONS
Definition: MSNet.h:802
MSEventControl * myInsertionEvents
Controls insertion events;.
Definition: MSNet.h:703
Representation of a lane in the micro simulation.
Definition: MSLane.h:79
long mySimStepDuration
Definition: MSNet.h:722
NamedObjectCont< MSStoppingPlace * > myBusStopDict
Dictionary of bus stops.
Definition: MSNet.h:771
Encapsulates binary reading operations on a file.
Stores time-dependant events and executes them at the proper time.
The vehicle ended being teleported.
Definition: MSNet.h:545
bool hasElevation() const
return whether the network contains elevation data
Definition: MSNet.h:649
bool myHasInternalLinks
Whether the network contains internal links/lanes/edges.
Definition: MSNet.h:756
MSEdgeWeightsStorage & getWeightsStorage()
Returns the net's internal edge travel times/efforts container.
Definition: MSNet.cpp:716
static const std::string STAGE_EVENTS
string constants for simstep stages
Definition: MSNet.h:799