Eclipse SUMO - Simulation of Urban MObility
ROAbstractEdgeBuilder.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3 // Copyright (C) 2004-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 // Interface for building instances of router-edges
20 /****************************************************************************/
21 #pragma once
22 #include <config.h>
23 
24 #include <string>
25 
26 
27 // ===========================================================================
28 // class declarations
29 // ===========================================================================
30 class ROEdge;
31 class RONode;
32 
33 
34 // ===========================================================================
35 // class definitions
36 // ===========================================================================
52 public:
55 
56 
58  virtual ~ROAbstractEdgeBuilder() { }
59 
60 
63 
72  virtual ROEdge* buildEdge(const std::string& name, RONode* from, RONode* to, const int priority) = 0;
74 
75 
76 protected:
80  int getNextIndex() {
81  return myCurrentIndex++;
82  }
83 
84 
85 private:
88 
89 
90 private:
93 
96 
97 };
Interface for building instances of router-edges.
ROAbstractEdgeBuilder()
Constructor.
int getNextIndex()
Returns the index of the edge to built.
ROAbstractEdgeBuilder(const ROAbstractEdgeBuilder &src)
Invalidated copy constructor.
int myCurrentIndex
The next edge's index.
virtual ROEdge * buildEdge(const std::string &name, RONode *from, RONode *to, const int priority)=0
Builds an edge with the given name.
ROAbstractEdgeBuilder & operator=(const ROAbstractEdgeBuilder &src)
Invalidated assignment operator.
virtual ~ROAbstractEdgeBuilder()
Destructor.
A basic edge for routing applications.
Definition: ROEdge.h:70
Base class for nodes used by the router.
Definition: RONode.h:43