26#ifndef __TERRALIB_GRAPH_INTERNAL_ABSTRACTGRAPHFACTORY_H
27#define __TERRALIB_GRAPH_INTERNAL_ABSTRACTGRAPHFACTORY_H
86 static AbstractGraph*
make(
const std::string& dsInfo,
const std::map<std::string, std::string>& gInfo);
100 static AbstractGraph*
make(
const std::string& gType,
const std::string& dsInfo,
const std::map<std::string, std::string>& gInfo);
112 static AbstractGraph*
open(
const std::string& dsInfo,
const std::map<std::string, std::string>& gInfo);
125 static AbstractGraph*
open(
const std::string& gType,
const std::string& dsInfo,
const std::map<std::string, std::string>& gInfo);
132 virtual const std::string&
getType()
const = 0;
156 virtual AbstractGraph*
iOpen(
const std::string& dsInfo,
const std::map<std::string, std::string>& gInfo) = 0;
168 virtual AbstractGraph*
create(
const std::string& dsInfo,
const std::map<std::string, std::string>& gInfo) = 0;
190 static int getId(
const std::map<std::string, std::string>& gInfo);
A class that defines the interface of an abstract factory.
This is the main graph implementation, that uses a cache policy anda graph loader to get all elements...
This class defines the interface of abstract factories without initializing parameters.
This class is used to set the main functions of a cache policy.
static AbstractGraph * make()
It creates and returns an empty graph with default graph type.
virtual AbstractGraph * iOpen(const std::string &dsInfo, const std::map< std::string, std::string > &gInfo)=0
This method must be re-implemented by subclasses in order to have a finner control for the graph obje...
static int getId(const std::map< std::string, std::string > &gInfo)
This method is a auxiliar function used to get the graph id.
virtual void getCreationalParameters(std::vector< std::pair< std::string, std::string > > ¶ms) const =0
It returns the list of parameters accepted as graph info.
static AbstractGraph * open(const std::string &dsInfo, const std::map< std::string, std::string > &gInfo)
It opens a graph with the given parameters and default graph type.
static AbstractGraph * open(const std::string &gType, const std::string &dsInfo, const std::map< std::string, std::string > &gInfo)
It creates a graph with the given parameters.
virtual const std::string & getType() const =0
Returns the type (name) of this factory.
AbstractGraphFactory(const std::string &factoryKey)
Constructor.
static te::graph::AbstractCachePolicy * getCachePolicy(const std::map< std::string, std::string > &gInfo)
This method is a auxiliar function used to get the cache policy pointer.
static AbstractGraph * make(const std::string &gType)
It creates an empty graph with the proper type.
virtual ~AbstractGraphFactory()
Destructor.
static te::graph::GraphMetadata * getMetadata(const std::string &dsInfo, const std::map< std::string, std::string > &gInfo)
This method is a auxiliar function used to get the metadata pointer.
static void setMetadataInformation(const std::map< std::string, std::string > &gInfo, te::graph::GraphMetadata *metadata)
static AbstractGraph * make(const std::string &dsInfo, const std::map< std::string, std::string > &gInfo)
It creates a graph with the given parameters using the default graph type.
static AbstractGraph * make(const std::string &gType, const std::string &dsInfo, const std::map< std::string, std::string > &gInfo)
It creates a graph with the given parameters using the default graph type.
static te::graph::AbstractGraphLoaderStrategy * getLoaderStrategy(const std::map< std::string, std::string > &gInfo, te::graph::GraphMetadata *metadata)
This method is a auxiliar function used to get the loader strategy pointer.
virtual AbstractGraph * create(const std::string &dsInfo, const std::map< std::string, std::string > &gInfo)=0
This method must be implemented by subclasses (graph types).
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...
Configuration flags for the Graph module of TerraLib.
#define TEGRAPHEXPORT
You can use this macro in order to export/import classes and functions from this module.