SUMO - Simulation of Urban MObility
MSVehicleTransfer.h
Go to the documentation of this file.
1 /****************************************************************************/
9 // A mover of vehicles that got stucked due to grid locks
10 // This class also serves as container for parking vehicles
11 /****************************************************************************/
12 // SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
13 // Copyright (C) 2003-2017 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 MSVehicleTransfer_h
24 #define MSVehicleTransfer_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 <string>
37 #include <vector>
38 #include <map>
39 #include <set>
40 
41 
42 // ===========================================================================
43 // class declarations
44 // ===========================================================================
45 class MSEdge;
46 class MSLane;
47 class MSVehicle;
48 class MSVehicleControl;
49 class SUMOSAXAttributes;
50 
51 
52 // ===========================================================================
53 // class definitions
54 // ===========================================================================
71 public:
73  virtual ~MSVehicleTransfer();
74 
75 
84  void add(const SUMOTime t, MSVehicle* veh);
85 
86 
94  void remove(MSVehicle* veh);
95 
96 
105  void checkInsertions(SUMOTime time);
106 
107 
112  bool hasPending() const;
113 
115  void saveState(OutputDevice& out) const;
116 
118  void loadState(const SUMOSAXAttributes& attrs, const SUMOTime offset, MSVehicleControl& vc);
119 
123  static MSVehicleTransfer* getInstance();
124 
126  static const double TeleportMinSpeed;
127 
128 private:
131 
132 
133 protected:
146  bool myParking;
147 
153  VehicleInformation(SUMOTime t, MSVehicle* veh, SUMOTime proceedTime, bool parking)
154  : myTransferTime(t), myVeh(veh), myProceedTime(proceedTime), myParking(parking) { }
155 
156  };
157 
158 
160  typedef std::vector<VehicleInformation> VehicleInfVector;
161 
163  VehicleInfVector myVehicles;
164 
167 
169  static const std::set<const MSVehicle*> myEmptyVehicleSet;
170 
171 };
172 
173 
174 #endif
175 
176 /****************************************************************************/
177 
VehicleInformation(SUMOTime t, MSVehicle *veh, SUMOTime proceedTime, bool parking)
Constructor.
Representation of a vehicle in the micro simulation.
Definition: MSVehicle.h:83
static MSVehicleTransfer * myInstance
The static singleton-instance.
Holds the information needed to move the vehicle over the network.
MSVehicleTransfer()
Constructor.
VehicleInfVector myVehicles
The information about stored vehicles to move virtually.
bool hasPending() const
Checks whether stored vehicles are present.
void saveState(OutputDevice &out) const
Saves the current state into the given stream.
virtual ~MSVehicleTransfer()
Destructor.
bool myParking
whether the vehicle is or was parking
A road/street connecting two junctions.
Definition: MSEdge.h:81
void checkInsertions(SUMOTime time)
Checks "movement" of stored vehicles.
Encapsulated SAX-Attributes.
void add(const SUMOTime t, MSVehicle *veh)
Adds a vehicle to this transfer object.
SUMOTime myProceedTime
The time at which the vehicle should be moved virtually one edge further.
static const std::set< const MSVehicle * > myEmptyVehicleSet
an empty set for convenience
void loadState(const SUMOSAXAttributes &attrs, const SUMOTime offset, MSVehicleControl &vc)
Loads one transfer vehicle state from the given descriptionn.
static MSVehicleTransfer * getInstance()
Returns the instance of this object.
std::vector< VehicleInformation > VehicleInfVector
Definition of a container for vehicle information.
Static storage of an output device and its base (abstract) implementation.
Definition: OutputDevice.h:71
long long int SUMOTime
Definition: TraCIDefs.h:52
MSVehicle * myVeh
The vehicle itself.
SUMOTime myTransferTime
the time at which this vehicle was removed from the network
The class responsible for building and deletion of vehicles.
Representation of a lane in the micro simulation.
Definition: MSLane.h:79
static const double TeleportMinSpeed
The minimum speed while teleporting.