Eclipse SUMO - Simulation of Urban MObility
NIVissimSingleTypeParser_Kantensperrung.cpp
Go to the documentation of this file.
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 /****************************************************************************/
19 //
20 /****************************************************************************/
21 #include <config.h>
22 
23 #include <iostream>
28 
29 
30 // ===========================================================================
31 // method definitions
32 // ===========================================================================
34  : NIImporter_Vissim::VissimSingleTypeParser(parent) {}
35 
36 
38 
39 
40 bool
42  std::string tag;
43  from >> tag;
44  //
45  std::string id;
46  from >> id;
47  //
48  from >> tag;
49  from >> tag;
50  int from_node;
51  from >> from_node;
52  //
53  from >> tag;
54  from >> tag;
55  int to_node;
56  from >> to_node;
57  //
58  from >> tag;
59  from >> tag;
60  std::vector<int> edges;
61  while (tag != "DATAEND") {
62  tag = readEndSecure(from);
63  if (tag != "DATAEND") {
64  edges.push_back(StringUtils::toInt(tag));
65  }
66  }
67  NIVissimClosures::dictionary(id, from_node, to_node, edges);
68  return true;
69 }
70 
71 
72 /****************************************************************************/
std::string readEndSecure(std::istream &from, const std::string &excl="")
as myRead, but returns "DATAEND" when the current field has ended
Importer for networks stored in Vissim format.
static bool dictionary(const std::string &id, int from_node, int to_node, std::vector< int > &overEdges)
NIVissimSingleTypeParser_Kantensperrung(NIImporter_Vissim &parent)
Constructor.
bool parse(std::istream &from)
Parses the data type from the given stream.
static int toInt(const std::string &sData)
converts a string into the integer value described by it by calling the char-type converter,...