SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MSPersonControl.h
Go to the documentation of this file.
1 /****************************************************************************/
10 // Stores all persons in the net and handles their waiting for cars.
11 /****************************************************************************/
12 // SUMO, Simulation of Urban MObility; see http://sumo.sourceforge.net/
13 // Copyright (C) 2001-2012 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 MSPersonControl_h
24 #define MSPersonControl_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 <vector>
37 
38 
39 // ===========================================================================
40 // class declarations
41 // ===========================================================================
42 class MSPerson;
43 class MSNet;
44 
45 
46 // ===========================================================================
47 // class definitions
48 // ===========================================================================
57 public:
58 
59  typedef std::vector<MSPerson*> PersonVector;
60 
63 
66 
68  bool add(const std::string& id, MSPerson* person);
69 
71  void erase(MSPerson* person);
72 
74  void setArrival(SUMOTime time, MSPerson* person);
75 
77  void checkArrivedPersons(MSNet* net, const SUMOTime time);
78 
80  void addWaiting(const MSEdge* edge, MSPerson* person) ;
81 
88  bool boardAnyWaiting(const MSEdge* edge, MSVehicle* vehicle) ;
89 
91  bool hasPersons() const ;
92 
94  bool hasPedestrians() const ;
95 
97  void abortWaiting() ;
98 
99 private:
101  std::map<std::string, MSPerson*> myPersons;
102 
104  std::map<SUMOTime, PersonVector> myArrivals;
105 
107  std::map<const MSEdge*, PersonVector> myWaiting;
108 
109 };
110 
111 
112 #endif
113 
114 /****************************************************************************/