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 NIVissimSingleTypeParser_Zuflussdefinition.cpp 15 : /// @author Daniel Krajzewicz 16 : /// @author Michael Behrisch 17 : /// @date Wed, 18 Dec 2002 18 : /// 19 : // 20 : /****************************************************************************/ 21 : #include <config.h> 22 : 23 : #include <iostream> 24 : #include <utils/common/StringUtils.h> 25 : #include <netimport/vissim/NIImporter_Vissim.h> 26 : #include <netimport/vissim/tempstructs/NIVissimSource.h> 27 : #include "NIVissimSingleTypeParser_Zuflussdefinition.h" 28 : 29 : 30 : // =========================================================================== 31 : // method definitions 32 : // =========================================================================== 33 9 : NIVissimSingleTypeParser_Zuflussdefinition::NIVissimSingleTypeParser_Zuflussdefinition(NIImporter_Vissim& parent) 34 9 : : NIImporter_Vissim::VissimSingleTypeParser(parent) {} 35 : 36 : 37 18 : NIVissimSingleTypeParser_Zuflussdefinition::~NIVissimSingleTypeParser_Zuflussdefinition() {} 38 : 39 : 40 : bool 41 88 : NIVissimSingleTypeParser_Zuflussdefinition::parse(std::istream& from) { 42 : std::string id, edgeid; 43 88 : from >> id; // type-checking is missing! 44 : std::string tag, name; 45 : // override some optional values till q 46 352 : while (tag != "q") { 47 528 : tag = overrideOptionalLabel(from); 48 264 : if (tag == "name") { 49 176 : name = readName(from); 50 176 : } else if (tag == "strecke") { 51 88 : from >> edgeid; // type-checking is missing! 52 : } 53 : } 54 : // read q 55 : // bool exact = false; 56 176 : tag = myRead(from); 57 88 : if (tag == "exakt") { 58 : // exact = true; 59 74 : tag = myRead(from); 60 : } 61 : // double q = StringUtils::toDouble(tag); 62 : // read the vehicle types 63 88 : from >> tag; 64 : int vehicle_combination; 65 88 : from >> vehicle_combination; 66 : // check whether optional time information is available 67 176 : tag = readEndSecure(from); 68 : double beg, end; 69 88 : beg = -1; 70 88 : end = -1; 71 88 : if (tag == "zeit") { 72 88 : from >> tag; 73 : from >> beg; 74 88 : from >> tag; 75 : from >> end; 76 : } 77 176 : return NIVissimSource::dictionary(id, name, edgeid); 78 : } 79 : 80 : 81 : /****************************************************************************/