26 #ifndef __TERRALIB_MEMORY_INTERNAL_DATASOURCE_H
27 #define __TERRALIB_MEMORY_INTERNAL_DATASOURCE_H
30 #include "../dataaccess/dataset/DataSet.h"
31 #include "../dataaccess/datasource/DataSource.h"
35 #include <boost/thread.hpp>
65 const std::map<std::string, te::da::DataSetPtr>& getDataSets()
const;
72 const std::map<std::string, te::da::DataSetTypePtr> getSchemas()
const;
74 std::string getType()
const;
76 const std::map<std::string, std::string>& getConnectionInfo()
const;
78 void setConnectionInfo(
const std::map<std::string, std::string>& connInfo);
80 std::auto_ptr<te::da::DataSourceTransactor> getTransactor();
86 bool isOpened()
const;
94 std::auto_ptr<te::da::DataSet> getDataSet(
const std::string& name,
98 std::vector<std::string> getDataSetNames();
100 std::size_t getNumberOfDataSets();
102 std::auto_ptr<te::da::DataSetType> getDataSetType(
const std::string& datasetName);
104 boost::ptr_vector<te::dt::Property> getProperties(
const std::string& datasetName);
106 std::auto_ptr<te::dt::Property> getProperty(
const std::string& datasetName,
const std::string& name);
108 std::auto_ptr<te::dt::Property> getProperty(
const std::string& datasetName, std::size_t propertyPos);
110 std::vector<std::string> getPropertyNames(
const std::string& datasetName);
112 std::size_t getNumberOfProperties(
const std::string& datasetName);
114 bool propertyExists(
const std::string& datasetName,
const std::string& name);
118 void dropProperty(
const std::string& datasetName,
const std::string& propertyName);
120 void renameProperty(
const std::string& datasetName,
const std::string& name,
const std::string& newName);
122 std::size_t getNumberOfItems(
const std::string& datasetName);
126 bool dataSetExists(
const std::string& name);
128 void createDataSet(
te::da::DataSetType* dt,
const std::map<std::string, std::string>& options);
130 void cloneDataSet(
const std::string& name,
const std::string& cloneName,
131 const std::map<std::string, std::string>& options);
133 void dropDataSet(
const std::string& name);
135 void renameDataSet(
const std::string& name,
const std::string& newName);
138 const std::map<std::string, std::string>& options, std::size_t limit);
142 void update(
const std::string& datasetName,
144 const std::vector<std::size_t>& properties,
146 const std::map<std::string, std::string>& options,
147 std::size_t limit = 0);
162 void create(
const std::map<std::string, std::string>& dsInfo);
164 void drop(
const std::map<std::string, std::string>& dsInfo);
166 bool exists(
const std::map<std::string, std::string>& dsInfo);
168 std::vector<std::string> getDataSourceNames(
const std::map<std::string, std::string>& dsInfo);
170 std::vector<te::common::CharEncoding> getEncodings(
const std::map<std::string, std::string>& dsInfo);
176 std::map<std::string, te::da::DataSetTypePtr>
m_schemas;
177 mutable boost::recursive_mutex
m_mtx;
190 #endif // __TERRALIB_MEMORY_INTERNAL_DATASOURCE_H
static te::da::DataSourceCapabilities sm_capabilities
The Memory data source capabilities.
#define TEMEMORYEXPORT
You can use this macro in order to export/import classes and functions from this module.
std::size_t m_maxNumDatasets
The maximum number of datasets to be handled by the data source.
A class that models the description of a dataset.
It represents the SQL query dialect accepted by a given data source.
static const te::da::SQLDialect sm_dialect
A dummy dialect.
A class that represents the known capabilities of a specific data source, i.e. this class informs all...
Configuration flags for the TerraLib In-memory Data Access driver.
An abstract class for data providers like a DBMS, Web Services or a regular file. ...
std::map< std::string, std::string > m_connInfo
DataSource information.
It models a property definition.
AccessPolicy
Supported data access policies (can be used as bitfield).
TraverseType
A dataset can be traversed in two ways:
std::size_t m_numDatasets
The number of datasets kept in the data source.
This class represents a set of unique ids created in the same context. i.e. from the same data set...
te::da::DataSourceCapabilities capabilities
bool m_isOpened
A flag to control the state of the data source.
A dataset is the unit of information manipulated by the data access module of TerraLib.
boost::recursive_mutex m_mtx
The internal mutex.
std::map< std::string, te::da::DataSetTypePtr > m_schemas
The set of dataset schemas.
std::map< std::string, te::da::DataSetPtr > m_datasets
The set of datasets stored in memory.
Implementation of a random-access dataset class for the TerraLib In-Memory Data Access driver...
bool m_deepCopy
If true, each dataset is cloned in the getDataSet method.