27 #include "../common/Logger.h"
28 #include "../plugin/PluginInfo.h"
29 #include "../common/Translator.h"
30 #include "../dataaccess/datasource/DataSourceCapabilities.h"
31 #include "../dataaccess/datasource/DataSourceFactory.h"
32 #include "../dataaccess/datasource/DataSourceManager.h"
40 #include <gdal_priv.h>
43 : te::plugin::Plugin(pluginInfo)
56 std::string gdal_data;
58 char* tDir = getenv(
"TERRALIB_HOME");
62 teDir = std::string(tDir);
65 gdal_data = teDir +
"/share/gdal-data";
69 gdal_data = TERRALIB_GDAL_DATA;
71 if( ! gdal_data.empty() )
73 CPLSetConfigOption(
"GDAL_DATA", gdal_data.c_str());
75 CPLSetConfigOption(
"GDAL_PAM_ENABLED",
"NO");
109 std::set< std::string > supportedExtensionsSet;
110 for( std::map< std::string, DriverMetadata >::const_iterator it =
114 if( !it->second.m_extension.empty() )
116 if( supportedExtensionsSet.find( it->second.m_extension ) ==
117 supportedExtensionsSet.end() )
119 supportedExtensionsSet.insert( it->second.m_extension );
124 std::string supportedExtensionsStr;
125 for( std::set< std::string >::const_iterator it = supportedExtensionsSet.begin() ;
126 it != supportedExtensionsSet.end() ; ++it )
128 if( !supportedExtensionsStr.empty() )
130 supportedExtensionsStr.append(
";" );
132 supportedExtensionsStr.append( *it );
144 m_initialized =
true;
162 m_initialized =
false;
#define TE_LOG_TRACE(msg)
Use this tag in order to log a message to a specified logger with the TRACE level.
A class that informs what kind of constraint and index is supported by a given data source...
void startup()
This method will be called by TerraLib to startup some plugin's functionality.
Utilitary functions to access GDAL and match some of its concepts to TerraLib concepts.
void setDataSetTypeCapabilities(const DataSetTypeCapabilities &capabilities)
void addSpecificCapability(const std::string &key, const std::string &value)
static void initialize()
It initializes the factory: the singleton instance will be registered in the abstract factory DataSou...
const std::map< std::string, DriverMetadata > & GetGDALDriversMetadata()
Returns metadata from all registered GDAL drivers (key: driver name).
static void setCapabilities(const te::da::DataSourceCapabilities &capabilities)
te::da::QueryCapabilities queryCapabilities
A class that represents the known capabilities of a specific data source, i.e. this class informs all...
void setAccessPolicy(const te::common::AccessPolicy &accessPolicy)
Module(const te::plugin::PluginInfo &pluginInfo)
Plugin constructor.
A class that informs what the dataset implementation of a given data source can perform.
#define TE_TR(message)
It marks a string in order to get translated.
te::da::DataSource * Build()
void setQueryCapabilities(const QueryCapabilities &capabilities)
te::da::DataSetTypeCapabilities dataSetTypeCapabilities
#define TE_GDAL_DRIVER_IDENTIFIER
void setSupportTransactions(const bool &support)
A class that represents the supported data types of a specific data source.
te::da::DataTypeCapabilities dataTypeCapabilities
#define PLUGIN_CALL_BACK_IMPL(PLUGIN_CLASS_NAME)
This macro should be used by C++ plugins in order to declare the exportable/callable DLL function...
A class that informs the query support of a given data source.
void shutdown()
This method will be called by TerraLib to shutdown plugin's functionality.
static DataSourceManager & getInstance()
It returns a reference to the singleton instance.
te::da::DataSourceCapabilities capabilities
void setSupportRaster(const bool &support)
The TerraLib GDAL driver is a plugin.
te::da::DataSetCapabilities dataSetCapabilities
void setDataSetCapabilities(const DataSetCapabilities &capabilities)
This is the concrete factory for GDAL rasters.
A factory for data sources.
void setDataTypeCapabilities(const DataTypeCapabilities &capabilities)
static void add(const std::string &dsType, FactoryFnctType f)
static void finalize()
It finalizes the factory: the singleton instance will be destroyed and will be unregistered from the ...
The basic information about a plugin.
static void remove(const std::string &dsType)
TEGDALEXPORT boost::mutex & getStaticMutex()
Returns a reference to a static mutex initialized when this module is initialized.
The TerraLib OGR driver is a plugin.
Configuration flags for the GDAL Driver of TerraLib.
void setSupportEfficientDataSetSize(const bool &support)