This is the main graph implementation, that uses a cache policy anda graph loader to get all elements inside a data source. More...
#include <Graph.h>
Public Member Functions | |
| virtual void | flush () |
| Function used to clear the memory cache, all elements was released from memory, if any element was changes it will be saved. More... | |
| te::graph::AbstractIterator * | getIterator () |
| Used to get a iterator associated to graph. More... | |
| virtual te::graph::GraphMetadata * | getMetadata () |
| Function used to access the graph metadata. More... | |
| Graph () | |
| constructor. More... | |
| Graph (AbstractCachePolicy *cp, AbstractGraphLoaderStrategy *ls) | |
| Constructor. More... | |
| void | setIterator (te::graph::AbstractIterator *i) |
| Used to associate a iterator to graph. More... | |
| ~Graph () | |
| Virtual destructor. More... | |
Vertex Access Methods | |
Method used to access vertex elements from a graph. | |
| virtual void | add (Vertex *v) |
| Add a new vertex element to a graph. More... | |
| virtual void | update (Vertex *v) |
| Update the vertex element. More... | |
| virtual void | removeVertex (int id) |
| This function removes the vertex element from graph, also was removed in data source. More... | |
| virtual te::graph::Vertex * | getVertex (int id) |
| It returns the vertex element if it's exist. More... | |
| virtual void | addVertexProperty (te::dt::Property *p) |
| Add a new property associated to the vertex element. More... | |
| virtual void | removeVertexProperty (int idx) |
| Remove a property associated to the vertex element. More... | |
| virtual te::dt::Property * | getVertexProperty (int idx) |
| Get a vertex property given a index. More... | |
| virtual int | getVertexPropertySize () |
| Used to verify the number of properties associated to vertex elements. More... | |
Edge Access Methods | |
Method used to access edge elements from a graph. | |
| virtual void | add (Edge *e) |
| Add a new edge element to a graph. More... | |
| virtual void | update (Edge *e) |
| Update the edge element. More... | |
| virtual void | removeEdge (int id) |
| This function removes the edge element from graph, also was removed in data source. More... | |
| virtual te::graph::Edge * | getEdge (int id) |
| It returns the edge element if it's exist. More... | |
| virtual void | addEdgeProperty (te::dt::Property *p) |
| Add a new property associated to the edge element. More... | |
| virtual void | removeEdgeProperty (int idx) |
| Remove a property associated to the edge element. More... | |
| virtual te::dt::Property * | getEdgeProperty (int idx) |
| Get a edge property given a index. More... | |
| virtual int | getEdgePropertySize () |
| Used to verify the number of properties associated to edge elements. More... | |
Vertex Access Methods | |
Method used to access vertex elements from a graph. | |
| virtual te::graph::Vertex * | getFirstVertex () |
| It returns a pointer to the first vertex element of a graph. More... | |
| virtual te::graph::Vertex * | getNextVertex () |
| It returns a pointer to the next vertex element of a graph. More... | |
| virtual te::graph::Vertex * | getPreviousVertex () |
| It returns a pointer to the previous vertex element of a graph. More... | |
Edge Access Methods | |
Method used to access edge elements from a graph. | |
| te::graph::Edge * | getFirstEdge () |
| It returns a pointer to the first edge element of a graph. More... | |
| te::graph::Edge * | getNextEdge () |
| It returns a pointer to the next edge element of a graph. More... | |
| te::graph::Edge * | getPreviousEdge () |
| It returns a pointer to the previous edge element of a graph. More... | |
Protected Attributes | |
| GraphDataManager * | m_dataManager |
| Used to load and save GraphData information from a DataSource. More... | |
| GraphCache * | m_graphCache |
| Class used to keep all graph data loaded. More... | |
| GraphData * | m_graphData |
| This class has the graph data and properties. More... | |
| te::graph::AbstractIterator * | m_iterator |
| Iterator attribute. More... | |
| GraphMetadata * | m_metadata |
| Graph Data loader strategy. More... | |
This is the main graph implementation, that uses a cache policy anda graph loader to get all elements inside a data source.
All methods to access a graph element (vertex or edge) will use the GraphData instance, if not found the element, the class GraphCache will be consulted.
| te::graph::Graph::Graph | ( | AbstractCachePolicy * | cp, |
| AbstractGraphLoaderStrategy * | ls | ||
| ) |
Constructor.
| cp | A pointer to a cache policy implementation |
| ls | A pointer to a loader strategy implementation |
Definition at line 60 of file Graph.cpp.
References te::graph::AbstractGraphLoaderStrategy::getMetadata(), m_dataManager, m_graphCache, m_metadata, and te::graph::GraphDataManager::setLoaderStrategy().
|
virtual |
Add a new vertex element to a graph.
| v | Vertex element |
Implements te::graph::AbstractGraph.
Definition at line 86 of file Graph.cpp.
References te::graph::Vertex::getId(), te::graph::Vertex::isDirty(), and te::graph::Vertex::isNew().
Referenced by te::graph::DirectedGraph::add(), te::graph::UndirectedGraph::add(), and te::graph::BidirectionalGraph::add().
|
virtual |
Add a new edge element to a graph.
| e | Edge element |
Implements te::graph::AbstractGraph.
Reimplemented in te::graph::BidirectionalGraph, te::graph::UndirectedGraph, and te::graph::DirectedGraph.
Definition at line 205 of file Graph.cpp.
References te::graph::Edge::getId(), te::graph::Edge::isDirty(), and te::graph::Edge::isNew().
|
virtual |
Add a new property associated to the edge element.
param p New property to be associated with edge elements.
Implements te::graph::AbstractGraph.
|
virtual |
Add a new property associated to the vertex element.
param p New property to be associated with vertex elements.
Implements te::graph::AbstractGraph.
Definition at line 169 of file Graph.cpp.
Referenced by te::graph::AddDeepAttribute::AddDeepAttribute().
|
virtual |
Function used to clear the memory cache, all elements was released from memory, if any element was changes it will be saved.
Implements te::graph::AbstractGraph.
Definition at line 329 of file Graph.cpp.
Referenced by te::graph::AddDeepAttribute::AddDeepAttribute().
|
virtual |
It returns the edge element if it's exist.
| id | Vertex identification |
Implements te::graph::AbstractGraph.
Definition at line 261 of file Graph.cpp.
Referenced by te::graph::AddDeepAttribute::calculateDeepValue(), te::graph::GetSubGraph::getPredecessor(), and te::graph::GetSubGraph::GetSubGraph().
|
virtual |
Get a edge property given a index.
| idx | Index of the property |
Implements te::graph::AbstractGraph.
|
virtual |
Used to verify the number of properties associated to edge elements.
Implements te::graph::AbstractGraph.
|
inherited |
It returns a pointer to the first edge element of a graph.
Definition at line 73 of file AbstractGraph.cpp.
References TR_GRAPH.
Referenced by te::graph::QueryGraphBuilder::build(), and te::graph::LayerRenderer::draw().
|
virtualinherited |
It returns a pointer to the first vertex element of a graph.
Definition at line 43 of file AbstractGraph.cpp.
References TR_GRAPH.
Referenced by te::graph::AddDeepAttribute::AddDeepAttribute(), te::graph::AddRasterAttribute::AddRasterAttribute(), and te::graph::QueryGraphBuilder::build().
|
inherited |
Used to get a iterator associated to graph.
Definition at line 108 of file AbstractGraph.cpp.
Referenced by te::graph::AddDeepAttribute::AddDeepAttribute(), te::graph::AddRasterAttribute::AddRasterAttribute(), te::graph::QueryGraphBuilder::build(), and te::graph::LayerRenderer::draw().
|
virtual |
Function used to access the graph metadata.
Implements te::graph::AbstractGraph.
|
inherited |
It returns a pointer to the next edge element of a graph.
Definition at line 83 of file AbstractGraph.cpp.
References TR_GRAPH.
Referenced by te::graph::QueryGraphBuilder::build(), and te::graph::LayerRenderer::draw().
|
virtualinherited |
It returns a pointer to the next vertex element of a graph.
Definition at line 53 of file AbstractGraph.cpp.
References TR_GRAPH.
Referenced by te::graph::AddDeepAttribute::AddDeepAttribute(), te::graph::AddRasterAttribute::AddRasterAttribute(), and te::graph::QueryGraphBuilder::build().
|
inherited |
It returns a pointer to the previous edge element of a graph.
Definition at line 93 of file AbstractGraph.cpp.
References TR_GRAPH.
|
virtualinherited |
It returns a pointer to the previous vertex element of a graph.
Definition at line 63 of file AbstractGraph.cpp.
References TR_GRAPH.
|
virtual |
It returns the vertex element if it's exist.
| id | Vertex identification |
Implements te::graph::AbstractGraph.
Definition at line 142 of file Graph.cpp.
Referenced by te::graph::AddDeepAttribute::calculateDeepValue(), te::graph::GetSubGraph::getPredecessor(), and te::graph::GetSubGraph::GetSubGraph().
|
virtual |
Get a vertex property given a index.
| idx | Index of the property |
Implements te::graph::AbstractGraph.
Definition at line 185 of file Graph.cpp.
Referenced by te::graph::AddDeepAttribute::AddDeepAttribute().
|
virtual |
Used to verify the number of properties associated to vertex elements.
Implements te::graph::AbstractGraph.
Definition at line 195 of file Graph.cpp.
Referenced by te::graph::AddDeepAttribute::AddDeepAttribute().
|
virtual |
This function removes the edge element from graph, also was removed in data source.
| id | Edge identification |
Implements te::graph::AbstractGraph.
Reimplemented in te::graph::BidirectionalGraph, te::graph::UndirectedGraph, and te::graph::DirectedGraph.
Definition at line 232 of file Graph.cpp.
Referenced by te::graph::DirectedGraph::removeEdge(), te::graph::UndirectedGraph::removeEdge(), and te::graph::BidirectionalGraph::removeEdge().
|
virtual |
Remove a property associated to the edge element.
| idx | Index of the property |
Implements te::graph::AbstractGraph.
|
virtual |
This function removes the vertex element from graph, also was removed in data source.
| id | Vertex identification |
Implements te::graph::AbstractGraph.
|
virtual |
Remove a property associated to the vertex element.
| idx | Index of the property |
Implements te::graph::AbstractGraph.
|
inherited |
Used to associate a iterator to graph.
| i | Valid pointer to a iterator |
Definition at line 103 of file AbstractGraph.cpp.
Referenced by te::graph::AddDeepAttribute::AddDeepAttribute(), te::graph::AddRasterAttribute::AddRasterAttribute(), te::graph::QueryGraphBuilder::build(), and te::graph::LayerRenderer::draw().
|
virtual |
Update the vertex element.
| v | Vertex element |
Implements te::graph::AbstractGraph.
Definition at line 106 of file Graph.cpp.
References te::graph::Vertex::setDirty().
Referenced by te::graph::AddDeepAttribute::AddDeepAttribute().
|
virtual |
Update the edge element.
| e | Edge element |
Implements te::graph::AbstractGraph.
Definition at line 225 of file Graph.cpp.
References te::graph::Edge::setDirty().
|
protected |
|
protected |
|
protected |
|
protectedinherited |
Iterator attribute.
Definition at line 322 of file AbstractGraph.h.
|
protected |