SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
NLTriggerBuilder.h
Go to the documentation of this file.
1 /****************************************************************************/
10 // Builds trigger objects for microsim
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 NLTriggerBuilder_h
24 #define NLTriggerBuilder_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 
39 
40 // ===========================================================================
41 // class declarations
42 // ===========================================================================
43 class MSTrigger;
44 class MSNet;
45 class MSLaneSpeedTrigger;
46 class NLHandler;
48 class MSLane;
49 class MSEdge;
50 class MSBusStop;
51 
52 #ifdef HAVE_MESOSIM
53 class METriggeredCalibrator;
54 #endif
55 
56 
57 // ===========================================================================
58 // class definitions
59 // ===========================================================================
69 public:
72 
73 
75  virtual ~NLTriggerBuilder() ;
76 
77 
82  void setHandler(NLHandler* handler) ;
83 
84 
94  void buildVaporizer(const SUMOSAXAttributes& attrs) ;
95 
96 
101 
102 
117  void parseAndBuildLaneSpeedTrigger(MSNet& net, const SUMOSAXAttributes& attrs,
118  const std::string& base) throw(InvalidArgument);
119 
120 
128  void parseAndBuildRerouter(MSNet& net, const SUMOSAXAttributes& attrs,
129  const std::string& base) throw(InvalidArgument);
130 
131 
138  void parseAndBuildBusStop(MSNet& net, const SUMOSAXAttributes& attrs) throw(InvalidArgument);
139 
140 
141 #ifdef HAVE_MESOSIM
142 
149  void parseAndBuildCalibrator(MSNet& net, const SUMOSAXAttributes& attrs,
150  const std::string& base) throw(InvalidArgument);
151 #endif
152 
153 
154 
155 protected:
164 
165 
178  const std::string& id, const std::vector<MSLane*> &destLanes,
179  const std::string& file) ;
180 
181 
194  virtual void buildBusStop(MSNet& net,
195  const std::string& id, const std::vector<std::string> &lines,
196  MSLane* lane, SUMOReal frompos, SUMOReal topos) throw(InvalidArgument);
197 
198 
199 #ifdef HAVE_MESOSIM
200 
211  METriggeredCalibrator* buildCalibrator(MSNet& net,
212  const std::string& id, const MSEdge* edge, SUMOReal pos,
213  const std::string& file, const std::string& outfile,
214  const SUMOTime freq) ;
215 #endif
216 
217 
229  const std::string& id, std::vector<MSEdge*> &edges,
230  SUMOReal prob, const std::string& file, bool off) ;
232 
233 
234 protected:
237 
249  std::string getFileName(const SUMOSAXAttributes& attrs,
250  const std::string& base,
251  const bool allowEmpty = false) throw(InvalidArgument);
252 
253 
265  MSLane* getLane(const SUMOSAXAttributes& attrs,
266  const std::string& tt, const std::string& tid) throw(InvalidArgument);
267 
268 
283  MSLane* lane, const std::string& tt, const std::string& tid) throw(InvalidArgument);
285 
286 
287 protected:
290 
292 
293 };
294 
295 
296 #endif
297 
298 /****************************************************************************/
299