26 #ifndef __TERRALIB_DATAACCESS_DATASOURCE_INTERNAL_DATASOURCE_H 
   27 #define __TERRALIB_DATAACCESS_DATASOURCE_INTERNAL_DATASOURCE_H 
   30 #include "../../common/Enums.h" 
   31 #include "../../geometry/Enums.h" 
   32 #include "../dataset/CheckConstraint.h" 
   33 #include "../dataset/DataSet.h" 
   34 #include "../dataset/DataSetType.h" 
   35 #include "../dataset/ForeignKey.h" 
   36 #include "../dataset/Index.h" 
   37 #include "../dataset/PrimaryKey.h" 
   38 #include "../dataset/Sequence.h" 
   39 #include "../dataset/UniqueKey.h" 
   40 #include "../Config.h" 
   50 #include <boost/ptr_container/ptr_vector.hpp> 
   51 #include <boost/cstdint.hpp> 
   52 #include <boost/noncopyable.hpp> 
   53 #include <boost/shared_ptr.hpp> 
   70     class DataSetTypeCapabilities;
 
   71     class DataSourceCapabilities;
 
   72     class DataSourceTransactor;
 
   77     class CheckConstraint;
 
  133         const std::string& getId() 
const;
 
  140         void setId(
const std::string& 
id);
 
  156         virtual std::string getType() 
const = 0;
 
  173         virtual const std::map<std::string, std::string>& getConnectionInfo() 
const = 0;
 
  180         virtual void setConnectionInfo(
const std::map<std::string, std::string>& connInfo) = 0;
 
  197         virtual std::auto_ptr<DataSourceTransactor> getTransactor() = 0;
 
  212         virtual void open() = 0;
 
  223         virtual void close() = 0;
 
  237         virtual bool isOpened() 
const = 0;
 
  250         virtual bool isValid() 
const = 0;
 
  272         virtual const SQLDialect* getDialect() 
const = 0;
 
  298         virtual std::auto_ptr<DataSet> getDataSet(
const std::string& name, 
 
  325         virtual std::auto_ptr<DataSet> getDataSet(
const std::string& name,
 
  326                                                   const std::string& propertyName,
 
  349         virtual std::auto_ptr<DataSet> getDataSet(
const std::string& name,
 
  350                                                   const std::string& propertyName,
 
  375         std::auto_ptr<te::da::DataSet> getDataSet(
const std::string& name,
 
  402         virtual std::auto_ptr<DataSet> query(
const Select& q,
 
  425         virtual std::auto_ptr<DataSet> query(
const std::string& query, 
 
  443         virtual void execute(
const Query& command);
 
  454         virtual void execute(
const std::string& command);
 
  470         virtual std::string escape(
const std::string& value);
 
  481         virtual bool isDataSetNameValid(
const std::string& datasetName);
 
  492         virtual bool isPropertyNameValid(
const std::string& propertyName);
 
  511         virtual std::vector<std::string> getDataSetNames();
 
  522         virtual std::size_t getNumberOfDataSets();
 
  545         virtual std::auto_ptr<te::da::DataSetType> getDataSetType(
const std::string& name);
 
  554         std::auto_ptr<te::da::DataSetTypeCapabilities> getCapabilities(
const std::string& name);
 
  567         virtual boost::ptr_vector<te::dt::Property> getProperties(
const std::string& datasetName);
 
  581         virtual std::auto_ptr<te::dt::Property> getProperty(
const std::string& datasetName, 
const std::string& name);
 
  595         virtual std::auto_ptr<te::dt::Property> getProperty(
const std::string& datasetName, std::size_t propertyPos);
 
  611         virtual std::vector<std::string> getPropertyNames(
const std::string& datasetName);
 
  624         virtual std::size_t getNumberOfProperties(
const std::string& datasetName);
 
  638         virtual bool propertyExists(
const std::string& datasetName, 
const std::string& name);
 
  651         virtual void addProperty(
const std::string& datasetName, 
te::dt::Property* p);
 
  663         virtual void dropProperty(
const std::string& datasetName, 
const std::string& name);
 
  676         virtual void renameProperty(
const std::string& datasetName,
 
  677                                     const std::string& propertyName,
 
  678                                     const std::string& newPropertyName);
 
  680         virtual void changePropertyDefinition(
const std::string& datasetName, 
const std::string& propName, 
te::dt::Property* newProp);
 
  682         virtual void changePropertiesDefinitions(
const std::string& datasetName, 
const std::vector<std::string>& propsNames, 
const std::vector<te::dt::Property*> newProps);
 
  695         virtual std::auto_ptr<te::da::PrimaryKey> getPrimaryKey(
const std::string& datasetName);
 
  709         virtual bool primaryKeyExists(
const std::string& datasetName, 
const std::string& name);
 
  722         virtual void addPrimaryKey(
const std::string& datasetName, 
PrimaryKey* pk);
 
  733         virtual void dropPrimaryKey(
const std::string& datasetName);
 
  747         virtual std::auto_ptr<ForeignKey> getForeignKey(
const std::string& datasetName, 
const std::string& name);
 
  760         virtual std::vector<std::string> getForeignKeyNames(
const std::string& datasetName);
 
  772         virtual bool foreignKeyExists(
const std::string& datasetName, 
const std::string& name);
 
  785         virtual void addForeignKey(
const std::string& datasetName, 
ForeignKey* fk);
 
  797         virtual void dropForeignKey(
const std::string& datasetName, 
const std::string& fkName);
 
  811         virtual std::auto_ptr<te::da::UniqueKey> getUniqueKey(
const std::string& datasetName, 
const std::string& name);
 
  824         virtual std::vector<std::string> getUniqueKeyNames(
const std::string& datasetName);
 
  838         virtual bool uniqueKeyExists(
const std::string& datasetName, 
const std::string& name);
 
  851         virtual void addUniqueKey(
const std::string& datasetName, 
UniqueKey* uk);
 
  863         virtual void dropUniqueKey(
const std::string& datasetName, 
const std::string& name);
 
  877         virtual std::auto_ptr<te::da::CheckConstraint> getCheckConstraint(
const std::string& datasetName, 
const std::string& name);
 
  890         virtual std::vector<std::string> getCheckConstraintNames(
const std::string& datasetName);
 
  904         virtual bool checkConstraintExists(
const std::string& datasetName, 
const std::string& name);
 
  917         virtual void addCheckConstraint(
const std::string& datasetName, 
CheckConstraint* cc);
 
  929         virtual void dropCheckConstraint(
const std::string& datasetName, 
const std::string& name);
 
  943         virtual std::auto_ptr<te::da::Index> getIndex(
const std::string& datasetName, 
const std::string& name);
 
  956         virtual std::vector<std::string> getIndexNames(
const std::string& datasetName);
 
  970         virtual bool indexExists(
const std::string& datasetName, 
const std::string& name);
 
  984         virtual void addIndex(
const std::string& datasetName, 
Index* idx,
 
  985                               const std::map<std::string, std::string>& options); 
 
  997         virtual void dropIndex(
const std::string& datasetName, 
const std::string& idxName);
 
 1010         virtual std::auto_ptr<Sequence> getSequence(
const std::string& name);
 
 1024         virtual std::vector<std::string> getSequenceNames();
 
 1037         virtual bool sequenceExists(
const std::string& name);
 
 1047         virtual void addSequence(
Sequence* sequence);
 
 1058         virtual void dropSequence(
const std::string& name);
 
 1072         virtual std::auto_ptr<te::gm::Envelope> getExtent(
const std::string& datasetName,
 
 1073                                                           const std::string& propertyName);
 
 1087         virtual std::auto_ptr<te::gm::Envelope> getExtent(
const std::string& datasetName, std::size_t propertyPos);
 
 1100         virtual std::size_t getNumberOfItems(
const std::string& datasetName);
 
 1111         virtual bool hasDataSets();
 
 1124         virtual bool dataSetExists(
const std::string& name);
 
 1155         virtual void createDataSet(
DataSetType* dt, 
const std::map<std::string, std::string>& options);
 
 1168         virtual void cloneDataSet(
const std::string& name,
 
 1169                                   const std::string& cloneName,
 
 1170                                   const std::map<std::string, std::string>& options);
 
 1181         virtual void dropDataSet(
const std::string& name);
 
 1193         virtual void renameDataSet(
const std::string& name, 
const std::string& newName);
 
 1217         virtual void add(
const std::string& datasetName,
 
 1219                          const std::map<std::string, std::string>& options,
 
 1220                          std::size_t limit = 0);
 
 1262         virtual void update(
const std::string& datasetName,
 
 1264                             const std::vector<std::size_t>& properties,
 
 1266                             const std::map<std::string, std::string>& options,
 
 1267                             std::size_t limit = 0);
 
 1281         virtual void update(
const std::string& datasetName,
 
 1283                             const std::vector< std::set<int> >& properties,
 
 1284                             const std::vector<size_t>& ids);
 
 1305         static std::auto_ptr<DataSource> create(
const std::string& dsType, 
const std::map<std::string, std::string>& dsInfo);
 
 1319         static void drop(
const std::string& dsType, 
const std::map<std::string, std::string>& dsInfo);
 
 1333         static bool exists(
const std::string& dsType, 
const std::map<std::string, std::string>& dsInfo);
 
 1347         static std::vector<std::string> getDataSourceNames(
const std::string& dsType, 
const std::map<std::string, std::string>& info);
 
 1359         static std::vector<te::common::CharEncoding> getEncodings(
const std::string& dsType, 
const std::map<std::string, std::string>& info);
 
 1378         virtual void create(
const std::map<std::string, std::string>& dsInfo) = 0;
 
 1389         virtual void drop(
const std::map<std::string, std::string>& dsInfo) = 0;
 
 1402         virtual bool exists(
const std::map<std::string, std::string>& dsInfo) = 0;
 
 1415         virtual std::vector<std::string> getDataSourceNames(
const std::map<std::string, std::string>& dsInfo) = 0;
 
 1427         virtual std::vector<te::common::CharEncoding> getEncodings(
const std::map<std::string, std::string>& dsInfo) = 0;
 
 1440 #endif  // __TERRALIB_DATAACCESS_DATASOURCE_INTERNAL_DATASOURCE_H 
CharEncoding
Supported charsets (character encoding). 
 
boost::shared_ptr< DataSource > DataSourcePtr
 
A class that models the description of a dataset. 
 
It represents the SQL query dialect accepted by a given data source. 
 
SpatialRelation
Spatial relations between geometric objects. 
 
It describes a sequence (a number generator). 
 
A class that represents the known capabilities of a specific data source, i.e. this class informs all...
 
A class that describes a check constraint. 
 
An abstract class for data providers like a DBMS, Web Services or a regular file. ...
 
It models a property definition. 
 
AccessPolicy
Supported data access policies (can be used as bitfield). 
 
TraverseType
A dataset can be traversed in two ways: 
 
An Envelope defines a 2D rectangular region. 
 
This class represents a set of unique ids created in the same context. i.e. from the same data set...
 
It models a foreign key constraint for a DataSetType. 
 
It describes a unique key (uk) constraint. 
 
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards. 
 
A Select models a query to be used when retrieving data from a DataSource. 
 
std::string m_id
The data source identification. 
 
A dataset is the unit of information manipulated by the data access module of TerraLib. 
 
It describes a primary key (pk) constraint. 
 
#define TEDATAACCESSEXPORT
You can use this macro in order to export/import classes and functions from this module. 
 
A Query is independent from the data source language/dialect. 
 
It describes an index associated to a DataSetType.