26 #ifndef __TERRALIB_GRAPH_INTERNAL_ABSTRACTGRAPHFACTORY_H
27 #define __TERRALIB_GRAPH_INTERNAL_ABSTRACTGRAPHFACTORY_H
30 #include "../../common/AbstractFactory.h"
31 #include "../graphs/Graph.h"
32 #include "../Config.h"
40 class AbstractCachePolicy;
42 class AbstractGraphLoaderStrategy;
86 static AbstractGraph* make(
const std::map<std::string, std::string>& dsInfo,
const std::map<std::string, std::string>& gInfo);
100 static AbstractGraph* make(
const std::string& gType,
const std::map<std::string, std::string>& dsInfo,
const std::map<std::string, std::string>& gInfo);
112 static AbstractGraph* open(
const std::map<std::string, std::string>& dsInfo,
const std::map<std::string, std::string>& gInfo);
125 static AbstractGraph* open(
const std::string& gType,
const std::map<std::string, std::string>& dsInfo,
const std::map<std::string, std::string>& gInfo);
132 virtual const std::string& getType()
const = 0;
135 virtual void getCreationalParameters(std::vector< std::pair<std::string, std::string> >& params)
const = 0;
156 virtual AbstractGraph* iOpen(
const std::map<std::string, std::string>& dsInfo,
const std::map<std::string, std::string>& gInfo) = 0;
168 virtual AbstractGraph* create(
const std::map<std::string, std::string>& dsInfo,
const std::map<std::string, std::string>& gInfo) = 0;
180 static te::graph::GraphMetadata* getMetadata(
const std::map<std::string, std::string>& dsInfo,
const std::map<std::string, std::string>& gInfo);
190 static int getId(
const std::map<std::string, std::string>& dsInfo,
const std::map<std::string, std::string>& gInfo);
215 static void setMetadataInformation(
const std::map<std::string, std::string>& gInfo,
te::graph::GraphMetadata* metadata);
221 #endif // __TERRALIB_GRAPH_INTERNAL_ABSTRACTGRAPHFACTORY_H
This class defines the interface of abstract factories without initializing parameters.
#define TEGRAPHEXPORT
You can use this macro in order to export/import classes and functions from this module.
virtual ~AbstractGraphFactory()
Destructor.
This class is used to set the main functions of a cache policy.
Abstract class used to define the main functions of graph struct. All graph implementations must used...
This class define the main functions necessary to save and load the graph data and metadata informati...
This is the abstract factory for Graphs.