Eclipse SUMO - Simulation of Urban MObility
GNEHierarchicalContainer Class Reference

Hierarchical container (used for keep myParent and myChildren. More...

#include <GNEHierarchicalContainer.h>

Public Member Functions

template<>
void addChildElement (const GNEHierarchicalElement *, GNEDemandElement *demandElement)
 
template<>
void addChildElement (const GNEHierarchicalElement *hierarchicalElement, GNEAdditional *additional)
 
template<>
void addChildElement (const GNEHierarchicalElement *hierarchicalElement, GNEEdge *edge)
 
template<>
void addChildElement (const GNEHierarchicalElement *hierarchicalElement, GNEGenericData *genericData)
 
template<>
void addChildElement (const GNEHierarchicalElement *hierarchicalElement, GNEJunction *junction)
 
template<>
void addChildElement (const GNEHierarchicalElement *hierarchicalElement, GNELane *lane)
 
template<typename T >
void addChildElement (const GNEHierarchicalElement *hierarchicalElement, T *element)
 add child element More...
 
template<>
void addParentElement (const GNEHierarchicalElement *hierarchicalElement, GNEAdditional *additional)
 
template<>
void addParentElement (const GNEHierarchicalElement *hierarchicalElement, GNEDemandElement *demandElement)
 
template<>
void addParentElement (const GNEHierarchicalElement *hierarchicalElement, GNEEdge *edge)
 
template<>
void addParentElement (const GNEHierarchicalElement *hierarchicalElement, GNEGenericData *genericData)
 
template<>
void addParentElement (const GNEHierarchicalElement *hierarchicalElement, GNEJunction *junction)
 
template<>
void addParentElement (const GNEHierarchicalElement *hierarchicalElement, GNELane *lane)
 
template<typename T >
void addParentElement (const GNEHierarchicalElement *hierarchicalElement, T *element)
 add parent element More...
 
template<>
const std::vector< GNEJunction * > & getChildren () const
 
template<typename T >
const T & getChildren () const
 get children More...
 
size_t getContainerSize () const
 get container size More...
 
template<>
const std::vector< GNEJunction * > & getParents () const
 
template<typename T >
const T & getParents () const
 get parents More...
 
 GNEHierarchicalContainer ()
 default constructor More...
 
 GNEHierarchicalContainer (const std::vector< GNEJunction * > &parentJunctions, const std::vector< GNEEdge * > &parentEdges, const std::vector< GNELane * > &parentLanes, const std::vector< GNEAdditional * > &parentAdditionals, const std::vector< GNEDemandElement * > &ParentDemandElements, const std::vector< GNEGenericData * > &parentGenericDatas)
 parameter constructor (only for parents) More...
 
template<>
void removeChildElement (const GNEHierarchicalElement *hierarchicalElement, GNEAdditional *additional)
 
template<>
void removeChildElement (const GNEHierarchicalElement *hierarchicalElement, GNEDemandElement *demandElement)
 
template<>
void removeChildElement (const GNEHierarchicalElement *hierarchicalElement, GNEEdge *edge)
 
template<>
void removeChildElement (const GNEHierarchicalElement *hierarchicalElement, GNEGenericData *genericData)
 
template<>
void removeChildElement (const GNEHierarchicalElement *hierarchicalElement, GNEJunction *junction)
 
template<>
void removeChildElement (const GNEHierarchicalElement *hierarchicalElement, GNELane *lane)
 
template<typename T >
void removeChildElement (const GNEHierarchicalElement *hierarchicalElement, T *element)
 remove child element More...
 
template<>
void removeParentElement (const GNEHierarchicalElement *hierarchicalElement, GNEAdditional *additional)
 
template<>
void removeParentElement (const GNEHierarchicalElement *hierarchicalElement, GNEDemandElement *demandElement)
 
template<>
void removeParentElement (const GNEHierarchicalElement *hierarchicalElement, GNEEdge *edge)
 
template<>
void removeParentElement (const GNEHierarchicalElement *hierarchicalElement, GNEGenericData *genericData)
 
template<>
void removeParentElement (const GNEHierarchicalElement *hierarchicalElement, GNEJunction *junction)
 
template<>
void removeParentElement (const GNEHierarchicalElement *hierarchicalElement, GNELane *lane)
 
template<typename T >
void removeParentElement (const GNEHierarchicalElement *hierarchicalElement, T *element)
 remove parent element More...
 
template<>
void setChildren (const std::vector< GNEAdditional * > &newChildren)
 
template<>
void setChildren (const std::vector< GNEDemandElement * > &newChildren)
 
template<>
void setChildren (const std::vector< GNEEdge * > &newChildren)
 
template<>
void setChildren (const std::vector< GNEGenericData * > &newChildren)
 
template<>
void setChildren (const std::vector< GNEJunction * > &newChildren)
 
template<>
void setChildren (const std::vector< GNELane * > &newChildren)
 
template<typename T >
void setChildren (const T &newChildren)
 set children More...
 
template<>
void setParents (const std::vector< GNEAdditional * > &newParents)
 
template<>
void setParents (const std::vector< GNEDemandElement * > &newParents)
 
template<>
void setParents (const std::vector< GNEEdge * > &newParents)
 
template<>
void setParents (const std::vector< GNEGenericData * > &newParents)
 
template<>
void setParents (const std::vector< GNEJunction * > &newParents)
 
template<>
void setParents (const std::vector< GNELane * > &newParents)
 
template<typename T >
void setParents (const T &newParents)
 set parents More...
 

Private Attributes

std::vector< GNEAdditional * > myChildAdditionals
 vector with the child additional More...
 
std::vector< GNEDemandElement * > myChildDemandElements
 vector with the child demand elements More...
 
std::vector< GNEEdge * > myChildEdges
 vector with the child edges More...
 
std::vector< GNEGenericData * > myChildGenericDatas
 vector with the generic child data elements More...
 
std::vector< GNEJunction * > myChildJunctions
 vector with the child junctions More...
 
std::vector< GNELane * > myChildLanes
 vector with the child lanes More...
 
std::vector< GNEAdditional * > myParentAdditionals
 vector of parent additionals More...
 
std::vector< GNEDemandElement * > myParentDemandElements
 vector of parent demand elements More...
 
std::vector< GNEEdge * > myParentEdges
 vector of parent edges More...
 
std::vector< GNEGenericData * > myParentGenericDatas
 vector of parent generic datas More...
 
std::vector< GNEJunction * > myParentJunctions
 vector of parent junctions More...
 
std::vector< GNELane * > myParentLanes
 vector of parent lanes More...
 

Static Private Attributes

static const bool checkContainer = true
 flag for enable/disable check duplicate elements (only used for debug purposes) More...
 

Detailed Description

Hierarchical container (used for keep myParent and myChildren.

Definition at line 42 of file GNEHierarchicalContainer.h.

Constructor & Destructor Documentation

◆ GNEHierarchicalContainer() [1/2]

GNEHierarchicalContainer::GNEHierarchicalContainer ( )

default constructor

Definition at line 34 of file GNEHierarchicalContainer.cpp.

◆ GNEHierarchicalContainer() [2/2]

GNEHierarchicalContainer::GNEHierarchicalContainer ( const std::vector< GNEJunction * > &  parentJunctions,
const std::vector< GNEEdge * > &  parentEdges,
const std::vector< GNELane * > &  parentLanes,
const std::vector< GNEAdditional * > &  parentAdditionals,
const std::vector< GNEDemandElement * > &  ParentDemandElements,
const std::vector< GNEGenericData * > &  parentGenericDatas 
)

parameter constructor (only for parents)

Definition at line 37 of file GNEHierarchicalContainer.cpp.

Member Function Documentation

◆ addChildElement() [1/7]

template<>
void GNEHierarchicalContainer::addChildElement ( const GNEHierarchicalElement ,
GNEDemandElement demandElement 
)

Definition at line 255 of file GNEHierarchicalContainer.cpp.

References myChildDemandElements.

◆ addChildElement() [2/7]

template<>
void GNEHierarchicalContainer::addChildElement ( const GNEHierarchicalElement hierarchicalElement,
GNEAdditional additional 
)

◆ addChildElement() [3/7]

template<>
void GNEHierarchicalContainer::addChildElement ( const GNEHierarchicalElement hierarchicalElement,
GNEEdge edge 
)

◆ addChildElement() [4/7]

template<>
void GNEHierarchicalContainer::addChildElement ( const GNEHierarchicalElement hierarchicalElement,
GNEGenericData genericData 
)

◆ addChildElement() [5/7]

template<>
void GNEHierarchicalContainer::addChildElement ( const GNEHierarchicalElement hierarchicalElement,
GNEJunction junction 
)

◆ addChildElement() [6/7]

template<>
void GNEHierarchicalContainer::addChildElement ( const GNEHierarchicalElement hierarchicalElement,
GNELane lane 
)

◆ addChildElement() [7/7]

template<typename T >
void GNEHierarchicalContainer::addChildElement ( const GNEHierarchicalElement hierarchicalElement,
T *  element 
)

add child element

Referenced by GNEHierarchicalElement::addChildElement().

Here is the caller graph for this function:

◆ addParentElement() [1/7]

template<>
void GNEHierarchicalContainer::addParentElement ( const GNEHierarchicalElement hierarchicalElement,
GNEAdditional additional 
)

◆ addParentElement() [2/7]

template<>
void GNEHierarchicalContainer::addParentElement ( const GNEHierarchicalElement hierarchicalElement,
GNEDemandElement demandElement 
)

◆ addParentElement() [3/7]

template<>
void GNEHierarchicalContainer::addParentElement ( const GNEHierarchicalElement hierarchicalElement,
GNEEdge edge 
)

◆ addParentElement() [4/7]

template<>
void GNEHierarchicalContainer::addParentElement ( const GNEHierarchicalElement hierarchicalElement,
GNEGenericData genericData 
)

◆ addParentElement() [5/7]

template<>
void GNEHierarchicalContainer::addParentElement ( const GNEHierarchicalElement hierarchicalElement,
GNEJunction junction 
)

◆ addParentElement() [6/7]

template<>
void GNEHierarchicalContainer::addParentElement ( const GNEHierarchicalElement hierarchicalElement,
GNELane lane 
)

◆ addParentElement() [7/7]

template<typename T >
void GNEHierarchicalContainer::addParentElement ( const GNEHierarchicalElement hierarchicalElement,
T *  element 
)

add parent element

Referenced by GNEHierarchicalElement::addParentElement().

Here is the caller graph for this function:

◆ getChildren() [1/2]

template<>
const std::vector< GNEGenericData * > & GNEHierarchicalContainer::getChildren ( ) const

Definition at line 426 of file GNEHierarchicalContainer.cpp.

References myChildJunctions.

◆ getChildren() [2/2]

template<typename T >
const T & GNEHierarchicalContainer::getChildren ( ) const

◆ getContainerSize()

size_t GNEHierarchicalContainer::getContainerSize ( ) const

get container size

Definition at line 54 of file GNEHierarchicalContainer.cpp.

References myChildAdditionals, myChildDemandElements, myChildEdges, myChildGenericDatas, myChildJunctions, myChildLanes, myParentAdditionals, myParentDemandElements, myParentEdges, myParentGenericDatas, myParentJunctions, and myParentLanes.

Referenced by GNEHierarchicalElement::getAllHierarchicalElements().

Here is the caller graph for this function:

◆ getParents() [1/2]

template<>
const std::vector< GNEGenericData * > & GNEHierarchicalContainer::getParents ( ) const

Definition at line 354 of file GNEHierarchicalContainer.cpp.

References myParentJunctions.

◆ getParents() [2/2]

◆ removeChildElement() [1/7]

template<>
void GNEHierarchicalContainer::removeChildElement ( const GNEHierarchicalElement hierarchicalElement,
GNEAdditional additional 
)

◆ removeChildElement() [2/7]

template<>
void GNEHierarchicalContainer::removeChildElement ( const GNEHierarchicalElement hierarchicalElement,
GNEDemandElement demandElement 
)

◆ removeChildElement() [3/7]

template<>
void GNEHierarchicalContainer::removeChildElement ( const GNEHierarchicalElement hierarchicalElement,
GNEEdge edge 
)

◆ removeChildElement() [4/7]

template<>
void GNEHierarchicalContainer::removeChildElement ( const GNEHierarchicalElement hierarchicalElement,
GNEGenericData genericData 
)

◆ removeChildElement() [5/7]

template<>
void GNEHierarchicalContainer::removeChildElement ( const GNEHierarchicalElement hierarchicalElement,
GNEJunction junction 
)

◆ removeChildElement() [6/7]

template<>
void GNEHierarchicalContainer::removeChildElement ( const GNEHierarchicalElement hierarchicalElement,
GNELane lane 
)

◆ removeChildElement() [7/7]

template<typename T >
void GNEHierarchicalContainer::removeChildElement ( const GNEHierarchicalElement hierarchicalElement,
T *  element 
)

remove child element

Referenced by GNEHierarchicalElement::removeChildElement().

Here is the caller graph for this function:

◆ removeParentElement() [1/7]

template<>
void GNEHierarchicalContainer::removeParentElement ( const GNEHierarchicalElement hierarchicalElement,
GNEAdditional additional 
)

◆ removeParentElement() [2/7]

template<>
void GNEHierarchicalContainer::removeParentElement ( const GNEHierarchicalElement hierarchicalElement,
GNEDemandElement demandElement 
)

◆ removeParentElement() [3/7]

template<>
void GNEHierarchicalContainer::removeParentElement ( const GNEHierarchicalElement hierarchicalElement,
GNEEdge edge 
)

◆ removeParentElement() [4/7]

template<>
void GNEHierarchicalContainer::removeParentElement ( const GNEHierarchicalElement hierarchicalElement,
GNEGenericData genericData 
)

◆ removeParentElement() [5/7]

template<>
void GNEHierarchicalContainer::removeParentElement ( const GNEHierarchicalElement hierarchicalElement,
GNEJunction junction 
)

◆ removeParentElement() [6/7]

template<>
void GNEHierarchicalContainer::removeParentElement ( const GNEHierarchicalElement hierarchicalElement,
GNELane lane 
)

◆ removeParentElement() [7/7]

template<typename T >
void GNEHierarchicalContainer::removeParentElement ( const GNEHierarchicalElement hierarchicalElement,
T *  element 
)

remove parent element

Referenced by GNEHierarchicalElement::removeParentElement().

Here is the caller graph for this function:

◆ setChildren() [1/7]

template<>
void GNEHierarchicalContainer::setChildren ( const std::vector< GNEAdditional * > &  newChildren)

Definition at line 480 of file GNEHierarchicalContainer.cpp.

References myChildAdditionals.

◆ setChildren() [2/7]

template<>
void GNEHierarchicalContainer::setChildren ( const std::vector< GNEDemandElement * > &  newChildren)

Definition at line 486 of file GNEHierarchicalContainer.cpp.

References myChildDemandElements.

◆ setChildren() [3/7]

template<>
void GNEHierarchicalContainer::setChildren ( const std::vector< GNEEdge * > &  newChildren)

Definition at line 468 of file GNEHierarchicalContainer.cpp.

References myChildEdges.

◆ setChildren() [4/7]

template<>
void GNEHierarchicalContainer::setChildren ( const std::vector< GNEGenericData * > &  newChildren)

Definition at line 492 of file GNEHierarchicalContainer.cpp.

References myChildGenericDatas.

◆ setChildren() [5/7]

template<>
void GNEHierarchicalContainer::setChildren ( const std::vector< GNEJunction * > &  newChildren)

Definition at line 462 of file GNEHierarchicalContainer.cpp.

References myChildJunctions.

◆ setChildren() [6/7]

template<>
void GNEHierarchicalContainer::setChildren ( const std::vector< GNELane * > &  newChildren)

Definition at line 474 of file GNEHierarchicalContainer.cpp.

References myChildLanes.

◆ setChildren() [7/7]

template<typename T >
void GNEHierarchicalContainer::setChildren ( const T &  newChildren)

set children

Referenced by GNEHierarchicalElement::replaceChildElements().

Here is the caller graph for this function:

◆ setParents() [1/7]

template<>
void GNEHierarchicalContainer::setParents ( const std::vector< GNEAdditional * > &  newParents)

Definition at line 408 of file GNEHierarchicalContainer.cpp.

References myParentAdditionals.

◆ setParents() [2/7]

template<>
void GNEHierarchicalContainer::setParents ( const std::vector< GNEDemandElement * > &  newParents)

Definition at line 414 of file GNEHierarchicalContainer.cpp.

References myParentDemandElements.

◆ setParents() [3/7]

template<>
void GNEHierarchicalContainer::setParents ( const std::vector< GNEEdge * > &  newParents)

Definition at line 396 of file GNEHierarchicalContainer.cpp.

References myParentEdges.

◆ setParents() [4/7]

template<>
void GNEHierarchicalContainer::setParents ( const std::vector< GNEGenericData * > &  newParents)

Definition at line 420 of file GNEHierarchicalContainer.cpp.

References myParentGenericDatas.

◆ setParents() [5/7]

template<>
void GNEHierarchicalContainer::setParents ( const std::vector< GNEJunction * > &  newParents)

Definition at line 390 of file GNEHierarchicalContainer.cpp.

References myParentJunctions.

◆ setParents() [6/7]

template<>
void GNEHierarchicalContainer::setParents ( const std::vector< GNELane * > &  newParents)

Definition at line 402 of file GNEHierarchicalContainer.cpp.

References myParentLanes.

◆ setParents() [7/7]

template<typename T >
void GNEHierarchicalContainer::setParents ( const T &  newParents)

set parents

Referenced by GNEDemandElement::replaceMiddleParentEdges(), and GNEHierarchicalElement::replaceParentElements().

Here is the caller graph for this function:

Field Documentation

◆ checkContainer

const bool GNEHierarchicalContainer::checkContainer = true
staticprivate

flag for enable/disable check duplicate elements (only used for debug purposes)

Definition at line 130 of file GNEHierarchicalContainer.h.

Referenced by addChildElement(), addParentElement(), removeChildElement(), and removeParentElement().

◆ myChildAdditionals

std::vector<GNEAdditional*> GNEHierarchicalContainer::myChildAdditionals
private

vector with the child additional

Definition at line 121 of file GNEHierarchicalContainer.h.

Referenced by addChildElement(), getContainerSize(), removeChildElement(), and setChildren().

◆ myChildDemandElements

std::vector<GNEDemandElement*> GNEHierarchicalContainer::myChildDemandElements
private

vector with the child demand elements

Definition at line 124 of file GNEHierarchicalContainer.h.

Referenced by addChildElement(), getContainerSize(), removeChildElement(), and setChildren().

◆ myChildEdges

std::vector<GNEEdge*> GNEHierarchicalContainer::myChildEdges
private

vector with the child edges

Definition at line 115 of file GNEHierarchicalContainer.h.

Referenced by addChildElement(), getContainerSize(), removeChildElement(), and setChildren().

◆ myChildGenericDatas

std::vector<GNEGenericData*> GNEHierarchicalContainer::myChildGenericDatas
private

vector with the generic child data elements

Definition at line 127 of file GNEHierarchicalContainer.h.

Referenced by addChildElement(), getContainerSize(), removeChildElement(), and setChildren().

◆ myChildJunctions

std::vector<GNEJunction*> GNEHierarchicalContainer::myChildJunctions
private

vector with the child junctions

Definition at line 112 of file GNEHierarchicalContainer.h.

Referenced by addChildElement(), getChildren(), getContainerSize(), removeChildElement(), and setChildren().

◆ myChildLanes

std::vector<GNELane*> GNEHierarchicalContainer::myChildLanes
private

vector with the child lanes

Definition at line 118 of file GNEHierarchicalContainer.h.

Referenced by addChildElement(), getContainerSize(), removeChildElement(), and setChildren().

◆ myParentAdditionals

std::vector<GNEAdditional*> GNEHierarchicalContainer::myParentAdditionals
private

vector of parent additionals

Definition at line 103 of file GNEHierarchicalContainer.h.

Referenced by addParentElement(), getContainerSize(), removeParentElement(), and setParents().

◆ myParentDemandElements

std::vector<GNEDemandElement*> GNEHierarchicalContainer::myParentDemandElements
private

vector of parent demand elements

Definition at line 106 of file GNEHierarchicalContainer.h.

Referenced by addParentElement(), getContainerSize(), removeParentElement(), and setParents().

◆ myParentEdges

std::vector<GNEEdge*> GNEHierarchicalContainer::myParentEdges
private

vector of parent edges

Definition at line 97 of file GNEHierarchicalContainer.h.

Referenced by addParentElement(), getContainerSize(), removeParentElement(), and setParents().

◆ myParentGenericDatas

std::vector<GNEGenericData*> GNEHierarchicalContainer::myParentGenericDatas
private

vector of parent generic datas

Definition at line 109 of file GNEHierarchicalContainer.h.

Referenced by addParentElement(), getContainerSize(), removeParentElement(), and setParents().

◆ myParentJunctions

std::vector<GNEJunction*> GNEHierarchicalContainer::myParentJunctions
private

vector of parent junctions

Definition at line 94 of file GNEHierarchicalContainer.h.

Referenced by addParentElement(), getContainerSize(), getParents(), removeParentElement(), and setParents().

◆ myParentLanes

std::vector<GNELane*> GNEHierarchicalContainer::myParentLanes
private

vector of parent lanes

Definition at line 100 of file GNEHierarchicalContainer.h.

Referenced by addParentElement(), getContainerSize(), removeParentElement(), and setParents().


The documentation for this class was generated from the following files: