LCOV - code coverage report
Current view: top level - src/activitygen/activities - AGWorkAndSchool.h (source / functions) Coverage Total Hit
Test: lcov.info Lines: 100.0 % 1 1
Test Date: 2024-11-22 15:46:21 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              : // activitygen module
       5              : // Copyright 2010 TUM (Technische Universitaet Muenchen, http://www.tum.de/)
       6              : // This program and the accompanying materials are made available under the
       7              : // terms of the Eclipse Public License 2.0 which is available at
       8              : // https://www.eclipse.org/legal/epl-2.0/
       9              : // This Source Code may also be made available under the following Secondary
      10              : // Licenses when the conditions for such availability set forth in the Eclipse
      11              : // Public License 2.0 are satisfied: GNU General Public License, version 2
      12              : // or later which is available at
      13              : // https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
      14              : // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
      15              : /****************************************************************************/
      16              : /// @file    AGWorkAndSchool.h
      17              : /// @author  Piotr Woznica
      18              : /// @author  Daniel Krajzewicz
      19              : /// @author  Walter Bamberger
      20              : /// @date    July 2010
      21              : ///
      22              : // Generates trips to work and to school
      23              : /****************************************************************************/
      24              : #pragma once
      25              : #include <config.h>
      26              : 
      27              : #include <activitygen/city/AGHousehold.h>
      28              : #include <activitygen/city/AGPosition.h>
      29              : #include "AGActivity.h"
      30              : 
      31              : 
      32              : // ===========================================================================
      33              : // class definitions
      34              : // ===========================================================================
      35              : class AGWorkAndSchool : public AGActivity {
      36              : public:
      37              :     AGWorkAndSchool(AGHousehold* hh, AGDataAndStatistics* das, std::list<AGTrip>* prevTrips) :
      38         1506 :         AGActivity(hh, das, prevTrips, 1) {};
      39              : 
      40              :     /**
      41              :      * @Overwrite
      42              :      */
      43              :     bool generateTrips();
      44              : 
      45              :     /**
      46              :      * generate objects
      47              :      */
      48              :     //void buildDestinations();
      49              :     void buildChildrenAccompaniment();
      50              :     void buildWorkDestinations();
      51              : 
      52              :     /**
      53              :      * allocation of cars to the convenient adult:
      54              :      * the adult able to accompany the other (adult) and children in need.
      55              :      */
      56              :     void carAllocation();
      57              : 
      58              :     /**
      59              :      * trip generation for adults and children
      60              :      */
      61              :     bool carsToTrips();
      62              : 
      63              :     /**
      64              :      * returns true if there is an unused car that can be driven by an adult
      65              :      */
      66              :     bool isThereUnusedCar();
      67              : 
      68              :     /**
      69              :      * main function of Accompaniment trip management:
      70              :      * simple trips are analyzed whether they can be grouped together or not.
      71              :      * return true if every thing worked well
      72              :      */
      73              :     bool checkAndBuildTripConsistancy();
      74              : 
      75              :     /**
      76              :      * checks whether the driver is able to accompany all people
      77              :      * or if the others have to go too late to work for him
      78              :      */
      79              :     bool checkDriversScheduleMatching();
      80              : 
      81              :     /**
      82              :      * function generating Trip objects using the local objects
      83              :      */
      84              :     void generateListTrips();
      85              : 
      86              :     /**
      87              :      * function adding new drivers when a not used car is needed
      88              :      * + when the person prefer the car to the bus (choice variable)
      89              :      */
      90              :     void makePossibleDriversDrive();
      91              : 
      92              :     /**
      93              :      * return the name of a car that is not used by another adult driver of the household
      94              :      * in fact there is only 1 or 2 adults, so if the number of cars is greater that 1
      95              :      * at least one car isn't used
      96              :      */
      97              :     std::string getUnusedCar();
      98              : 
      99              : private:
     100              :     /**
     101              :      * list of destinations for children, which can be reach only using a car (too far from home)
     102              :      * and therefore need to be accompanied:
     103              :      * waiting list for the accompaniment
     104              :      */
     105              :     //std::list<Position> childrenCarAccompaniment;
     106              :     std::list<AGChild> childrenNeedingCarAccompaniment;
     107              :     /**
     108              :      * adult needing a car having a car but this car is not available because of an other person
     109              :      */
     110              :     //std::list<Position> adultCarAccompaniment;
     111              :     std::list<AGAdult> adultNeedingCarAccompaniment;
     112              :     /**
     113              :      * list of destinations for work by bus or car,
     114              :      * car being possible (other wise bus or feet)
     115              :      */
     116              :     //std::list<Position> workDestinations;
     117              :     std::list<AGAdult> workingPeoplePossCar;
     118              :     /**
     119              :      * work destinations with use of car
     120              :      */
     121              :     //std::list<Position> carDestinations;
     122              :     std::list<AGAdult> personsDrivingCars;
     123              :     /**
     124              :      * adults of the household who are not in need of car for work
     125              :      * but are able to accompany someone. used only in case of need.
     126              :      */
     127              :     std::list<AGAdult> notNeedingDrivers;
     128              :     /**
     129              :      * list of temporary trips:
     130              :      * contains accompaniment trips without any return to home.
     131              :      */
     132              :     std::list<AGTrip> tempAccTrip;
     133              :     std::list<AGTrip> tempTrip;
     134              : };
        

Generated by: LCOV version 2.0-1