LCOV - code coverage report
Current view: top level - src/microsim/output - MSStopOut.h (source / functions) Coverage Total Hit
Test: lcov.info Lines: 100.0 % 9 9
Test Date: 2024-11-20 15:55:46 Functions: - 0 0

            Line data    Source code
       1              : /****************************************************************************/
       2              : // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
       3              : // Copyright (C) 2001-2024 German Aerospace Center (DLR) and others.
       4              : // This program and the accompanying materials are made available under the
       5              : // terms of the Eclipse Public License 2.0 which is available at
       6              : // https://www.eclipse.org/legal/epl-2.0/
       7              : // This Source Code may also be made available under the following Secondary
       8              : // Licenses when the conditions for such availability set forth in the Eclipse
       9              : // Public License 2.0 are satisfied: GNU General Public License, version 2
      10              : // or later which is available at
      11              : // https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
      12              : // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
      13              : /****************************************************************************/
      14              : /// @file    MSStopOut.h
      15              : /// @author  Jakob Erdmann
      16              : /// @date    Wed, 21.12.2016
      17              : ///
      18              : // Ouput information about planned vehicle stop
      19              : /****************************************************************************/
      20              : #pragma once
      21              : #include <config.h>
      22              : 
      23              : #include <map>
      24              : #include <utils/common/SUMOTime.h>
      25              : #include <utils/vehicle/SUMOVehicleParameter.h>
      26              : 
      27              : 
      28              : // ===========================================================================
      29              : // class declarations
      30              : // ===========================================================================
      31              : class OutputDevice;
      32              : class SUMOVehicle;
      33              : 
      34              : 
      35              : // ===========================================================================
      36              : // class definitions
      37              : // ===========================================================================
      38              : /**
      39              :  * @class MSStopOut
      40              :  * @brief Realises dumping the complete network state
      41              :  *
      42              :  * The class offers a static method, which writes the complete dump of
      43              :  *  the given network into the given OutputDevice.
      44              :  *
      45              :  * @todo consider error-handling on write (using IOError)
      46              :  */
      47              : class MSStopOut {
      48              : public:
      49              : 
      50              :     /** @brief Static intialization
      51              :      */
      52              :     static void init();
      53              : 
      54              :     static bool active() {
      55       179378 :         return myInstance != 0;
      56              :     }
      57              : 
      58              :     static void cleanup();
      59              : 
      60              :     static MSStopOut* getInstance() {
      61          166 :         return myInstance;
      62              :     }
      63              : 
      64              :     /// @brief constructor.
      65              :     MSStopOut(OutputDevice& dev);
      66              : 
      67              :     /// @brief Destructor.
      68              :     virtual ~MSStopOut();
      69              : 
      70              :     void stopStarted(const SUMOVehicle* veh, int numPersons, int numContainers, SUMOTime time);
      71              : 
      72              :     void loadedPersons(const SUMOVehicle* veh, int n);
      73              :     void unloadedPersons(const SUMOVehicle* veh, int n);
      74              : 
      75              :     void loadedContainers(const SUMOVehicle* veh, int n);
      76              :     void unloadedContainers(const SUMOVehicle* veh, int n);
      77              : 
      78              :     void stopEnded(const SUMOVehicle* veh, const SUMOVehicleParameter::Stop& stop, const std::string& laneOrEdgeID, bool simEnd = false);
      79              : 
      80              :     /// @brief generate output for vehicles which are still stopped at simulation end
      81              :     void generateOutputForUnfinished();
      82              : 
      83              : private:
      84              :     struct StopInfo {
      85              : 
      86         5024 :         StopInfo(int numPersons, int numContainers) :
      87         5024 :             initialNumPersons(numPersons),
      88         5024 :             loadedPersons(0),
      89         5024 :             unloadedPersons(0),
      90         5024 :             initialNumContainers(numContainers),
      91         5024 :             loadedContainers(0),
      92         5024 :             unloadedContainers(0) {
      93              :         }
      94              : 
      95              :         int initialNumPersons;
      96              :         int loadedPersons;
      97              :         int unloadedPersons;
      98              :         int initialNumContainers;
      99              :         int loadedContainers;
     100              :         int unloadedContainers;
     101              :     };
     102              : 
     103              :     std::map<const SUMOVehicle*, StopInfo, ComparatorNumericalIdLess> myStopped;
     104              : 
     105              :     OutputDevice& myDevice;
     106              : 
     107              :     static MSStopOut* myInstance;
     108              : 
     109              :     /// @brief Invalidated copy constructor.
     110              :     MSStopOut(const MSStopOut&);
     111              : 
     112              :     /// @brief Invalidated assignment operator.
     113              :     MSStopOut& operator=(const MSStopOut&);
     114              : 
     115              : 
     116              : };
        

Generated by: LCOV version 2.0-1