32 #ifndef __TERRALIB_GRAPH_INTERNAL_GRAPH_H
33 #define __TERRALIB_GRAPH_INTERNAL_GRAPH_H
36 #include "../core/AbstractGraph.h"
37 #include "../Config.h"
45 namespace dt {
class Property; }
50 class AbstractCachePolicy;
51 class AbstractGraphLoaderStrategy;
53 class GraphDataManager;
It models a property definition.
This class is used to set the main functions of a cache policy.
This class define the main functions necessary to save and load the graph data and metadata informati...
Abstract class used to define the main functions of graph struct. All graph implementations must used...
Class used to define the edge struct of a graph. Its compose with a identifier, the vertex origin and...
Class used to manager the graph data elements. This class uses a cache policy to control the elements...
This class define a important struct used to group a map of vertex and edges. A flag is used to indic...
This is the main graph implementation, that uses a cache policy anda graph loader to get all elements...
virtual int getVertexPropertySize()
Used to verify the number of properties associated to vertex elements.
virtual void flush()
Function used to clear the memory cache, all elements was released from memory, if any element was ch...
virtual te::graph::Edge * getEdge(int id)
It returns the edge element if it's exist.
GraphMetadata * m_metadata
Graph Data loader strategy.
virtual void addVertexProperty(te::dt::Property *p)
Add a new property associated to the vertex element.
virtual int getEdgePropertySize()
Used to verify the number of properties associated to edge elements.
virtual void update(Edge *e)
Update the edge element.
virtual void removeVertex(int id)
This function removes the vertex element from graph, also was removed in data source.
virtual void removeEdgeProperty(int idx)
Remove a property associated to the edge element.
virtual void addEdgeProperty(te::dt::Property *p)
Add a new property associated to the edge element.
virtual void removeEdge(int id)
This function removes the edge element from graph, also was removed in data source.
Graph(AbstractCachePolicy *cp, AbstractGraphLoaderStrategy *ls)
Constructor.
~Graph()
Virtual destructor.
GraphDataManager * m_dataManager
Used to load and save GraphData information from a DataSource.
virtual te::graph::GraphMetadata * getMetadata()
Function used to access the graph metadata.
virtual void add(Edge *e)
Add a new edge element to a graph.
Graph(GraphMetadata *metadata)
Constructor.
virtual te::dt::Property * getEdgeProperty(int idx)
Get a edge property given a index.
virtual void update(Vertex *v)
Update the vertex element.
GraphData * m_graphData
This class has the graph data and properties.
virtual te::graph::Vertex * getVertex(int id)
It returns the vertex element if it's exist.
virtual te::dt::Property * getVertexProperty(int idx)
Get a vertex property given a index.
GraphCache * m_graphCache
Class used to keep all graph data loaded.
virtual void add(Vertex *v)
Add a new vertex element to a graph.
virtual void removeVertexProperty(int idx)
Remove a property associated to the vertex element.
From the point of view of graph theory, vertices are treated as featureless and indivisible objects,...
#define TEGRAPHEXPORT
You can use this macro in order to export/import classes and functions from this module.