SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MSMeanData_Net.h
Go to the documentation of this file.
1 /****************************************************************************/
9 // Network state mean data collector for edges/lanes
10 /****************************************************************************/
11 // SUMO, Simulation of Urban MObility; see http://sumo.sourceforge.net/
12 // Copyright (C) 2001-2012 DLR (http://www.dlr.de/) and contributors
13 /****************************************************************************/
14 //
15 // This file is part of SUMO.
16 // SUMO is free software: you can redistribute it and/or modify
17 // it under the terms of the GNU General Public License as published by
18 // the Free Software Foundation, either version 3 of the License, or
19 // (at your option) any later version.
20 //
21 /****************************************************************************/
22 #ifndef MSMeanData_Net_h
23 #define MSMeanData_Net_h
24 
25 
26 // ===========================================================================
27 // included modules
28 // ===========================================================================
29 #ifdef _MSC_VER
30 #include <windows_config.h>
31 #else
32 #include <config.h>
33 #endif
34 
35 #include <vector>
36 #include <set>
37 #include <limits>
38 #include "MSMeanData.h"
39 
40 
41 // ===========================================================================
42 // class declarations
43 // ===========================================================================
44 class OutputDevice;
45 class MSEdgeControl;
46 class MSEdge;
47 class MSLane;
48 
49 
50 // ===========================================================================
51 // class definitions
52 // ===========================================================================
64 class MSMeanData_Net : public MSMeanData {
65 public:
74  public:
78  MSLaneMeanDataValues(MSLane* const lane, const SUMOReal length, const bool doAdd,
79  const std::set<std::string>* const vTypes = 0,
80  const MSMeanData_Net* parent = 0);
81 
83  virtual ~MSLaneMeanDataValues();
84 
87  void reset(bool afterWrite = false);
88 
93  void addTo(MSMeanData::MeanDataValues& val) const;
94 
97 
107  bool notifyLeave(SUMOVehicle& veh, SUMOReal lastPos, MSMoveReminder::Notification reason);
108 
109 
125 
126  bool isEmpty() const;
127 
135  void write(OutputDevice& dev, const SUMOTime period,
136  const SUMOReal numLanes, const SUMOReal defaultTravelTime,
137  const int numVehicles = -1) const;
138 
139  protected:
150  void notifyMoveInternal(SUMOVehicle& veh, SUMOReal timeOnLane,
151  SUMOReal speed);
152 
153  public:
157  unsigned nVehDeparted;
158 
160  unsigned nVehArrived;
161 
163  unsigned nVehEntered;
164 
166  unsigned nVehLeft;
167 
169  unsigned nVehVaporized;
170 
171  private:
174 
177 
180 
184 
187 
188  };
189 
190 
191 public:
207  MSMeanData_Net(const std::string& id,
208  const SUMOTime dumpBegin, const SUMOTime dumpEnd,
209  const bool useLanes, const bool withEmpty, const bool printDefaults,
210  const bool withInternal, const bool trackVehicles,
211  const SUMOReal maxTravelTime, const SUMOReal minSamples,
212  const SUMOReal haltSpeed, const std::set<std::string> vTypes);
213 
214 
216  virtual ~MSMeanData_Net();
217 
218 protected:
224  MSMeanData::MeanDataValues* createValues(MSLane* const lane, const SUMOReal length, const bool doAdd) const;
225 
231  void resetOnly(SUMOTime stopTime);
232 
233 private:
236 
239 
242 
243 };
244 
245 
246 #endif
247 
248 /****************************************************************************/
249