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 <cassert>
38 #include <limits>
39 #include "MSMeanData.h"
40 
41 
42 // ===========================================================================
43 // class declarations
44 // ===========================================================================
45 class OutputDevice;
46 class MSEdgeControl;
47 class MSEdge;
48 class MSLane;
49 
50 
51 // ===========================================================================
52 // class definitions
53 // ===========================================================================
65 class MSMeanData_Net : public MSMeanData {
66 public:
75  public:
79  MSLaneMeanDataValues(MSLane* const lane, const SUMOReal length, const bool doAdd,
80  const std::set<std::string>* const vTypes = 0,
81  const MSMeanData_Net* parent = 0) ;
82 
84  virtual ~MSLaneMeanDataValues() ;
85 
88  void reset(bool afterWrite = false) ;
89 
94  void addTo(MSMeanData::MeanDataValues& val) const ;
95 
98 
108  bool notifyLeave(SUMOVehicle& veh, SUMOReal lastPos, MSMoveReminder::Notification reason) ;
109 
110 
126 
127  bool isEmpty() const ;
128 
136  void write(OutputDevice& dev, const SUMOTime period,
137  const SUMOReal numLanes, const SUMOReal defaultTravelTime,
138  const int numVehicles = -1) const;
139 
140  protected:
151  void notifyMoveInternal(SUMOVehicle& veh, SUMOReal timeOnLane,
152  SUMOReal speed) ;
153 
154  public:
158  unsigned nVehDeparted;
159 
161  unsigned nVehArrived;
162 
164  unsigned nVehEntered;
165 
167  unsigned nVehLeft;
168 
169  private:
172 
175 
178 
182 
185 
186  };
187 
188 
189 public:
205  MSMeanData_Net(const std::string& id,
206  const SUMOTime dumpBegin, const SUMOTime dumpEnd,
207  const bool useLanes, const bool withEmpty, const bool printDefaults,
208  const bool withInternal, const bool trackVehicles,
209  const SUMOReal maxTravelTime, const SUMOReal minSamples,
210  const SUMOReal haltSpeed, const std::set<std::string> vTypes);
211 
212 
214  virtual ~MSMeanData_Net() ;
215 
216 protected:
222  MSMeanData::MeanDataValues* createValues(MSLane* const lane, const SUMOReal length, const bool doAdd) const;
223 
229  void resetOnly(SUMOTime stopTime) ;
230 
231 private:
234 
237 
240 
241 };
242 
243 
244 #endif
245 
246 /****************************************************************************/
247