LCOV - code coverage report
Current view: top level - src/netbuild - NBDistrictCont.cpp (source / functions) Coverage Total Hit
Test: lcov.info Lines: 53.8 % 26 14
Test Date: 2024-11-20 15:55:46 Functions: 62.5 % 8 5

            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    NBDistrictCont.cpp
      15              : /// @author  Daniel Krajzewicz
      16              : /// @author  Michael Behrisch
      17              : /// @date    Tue, 20 Nov 2001
      18              : ///
      19              : // A container for districts
      20              : /****************************************************************************/
      21              : #include <config.h>
      22              : 
      23              : #include <string>
      24              : #include <iostream>
      25              : #include <utils/common/MsgHandler.h>
      26              : #include <utils/common/ToString.h>
      27              : #include <utils/iodevices/OutputDevice.h>
      28              : #include "NBDistrict.h"
      29              : #include "NBDistrictCont.h"
      30              : 
      31              : 
      32              : // ===========================================================================
      33              : // method definitions
      34              : // ===========================================================================
      35         1993 : NBDistrictCont::NBDistrictCont() {}
      36              : 
      37              : 
      38         1993 : NBDistrictCont::~NBDistrictCont() {
      39         2043 :     for (DistrictCont::iterator i = myDistricts.begin(); i != myDistricts.end(); i++) {
      40           50 :         delete ((*i).second);
      41              :     }
      42              :     myDistricts.clear();
      43         1993 : }
      44              : 
      45              : 
      46              : bool
      47           50 : NBDistrictCont::insert(NBDistrict* const district) {
      48              :     DistrictCont::const_iterator i = myDistricts.find(district->getID());
      49           50 :     if (i != myDistricts.end()) {
      50              :         return false;
      51              :     }
      52           50 :     myDistricts.insert(DistrictCont::value_type(district->getID(), district));
      53           50 :     return true;
      54              : }
      55              : 
      56              : 
      57              : NBDistrict*
      58            0 : NBDistrictCont::retrieve(const std::string& id) const {
      59              :     DistrictCont::const_iterator i = myDistricts.find(id);
      60            0 :     if (i == myDistricts.end()) {
      61              :         return nullptr;
      62              :     }
      63            0 :     return (*i).second;
      64              : }
      65              : 
      66              : 
      67              : int
      68         3348 : NBDistrictCont::size() const {
      69         3348 :     return (int)myDistricts.size();
      70              : }
      71              : 
      72              : 
      73              : bool
      74            0 : NBDistrictCont::addSource(const std::string& dist, NBEdge* const source,
      75              :                           double weight) {
      76            0 :     NBDistrict* o = retrieve(dist);
      77            0 :     if (o == nullptr) {
      78              :         return false;
      79              :     }
      80            0 :     return o->addSource(source, weight);
      81              : }
      82              : 
      83              : 
      84              : bool
      85            0 : NBDistrictCont::addSink(const std::string& dist, NBEdge* const destination,
      86              :                         double weight) {
      87            0 :     NBDistrict* o = retrieve(dist);
      88            0 :     if (o == nullptr) {
      89              :         return false;
      90              :     }
      91            0 :     return o->addSink(destination, weight);
      92              : }
      93              : 
      94              : 
      95              : void
      96         9313 : NBDistrictCont::removeFromSinksAndSources(NBEdge* const e) {
      97         9313 :     for (DistrictCont::iterator i = myDistricts.begin(); i != myDistricts.end(); i++) {
      98            0 :         (*i).second->removeFromSinksAndSources(e);
      99              :     }
     100         9313 : }
     101              : 
     102              : 
     103              : /****************************************************************************/
        

Generated by: LCOV version 2.0-1