26 #ifndef __TERRALIB_DATAACCESS_DATASOURCE_INTERNAL_DATASOURCE_H    27 #define __TERRALIB_DATAACCESS_DATASOURCE_INTERNAL_DATASOURCE_H    30 #include "../../common/Enums.h"    31 #include "../../core/uri/URI.h"    32 #include "../../geometry/Enums.h"    33 #include "../dataset/CheckConstraint.h"    34 #include "../dataset/DataSet.h"    35 #include "../dataset/DataSetType.h"    36 #include "../dataset/ForeignKey.h"    37 #include "../dataset/Index.h"    38 #include "../dataset/PrimaryKey.h"    39 #include "../dataset/Sequence.h"    40 #include "../dataset/UniqueKey.h"    41 #include "../Config.h"    51 #include <boost/ptr_container/ptr_vector.hpp>    52 #include <boost/cstdint.hpp>    53 #include <boost/noncopyable.hpp>    54 #include <boost/shared_ptr.hpp>    71     class DataSetTypeCapabilities;
    72     class DataSourceCapabilities;
    73     class DataSourceTransactor;
    78     class CheckConstraint;
   138         const std::string& getId() 
const;
   145         void setId(
const std::string& 
id);
   168         virtual std::string getType() 
const = 0;
   209         virtual std::auto_ptr<DataSourceTransactor> getTransactor() = 0;
   224         virtual void open() = 0;
   235         virtual void close() = 0;
   249         virtual bool isOpened() 
const = 0;
   262         virtual bool isValid() 
const = 0;
   284         virtual const SQLDialect* getDialect() 
const = 0;
   310         virtual std::auto_ptr<DataSet> getDataSet(
const std::string& name, 
   337         virtual std::auto_ptr<DataSet> getDataSet(
const std::string& name,
   338                                                   const std::string& propertyName,
   361         virtual std::auto_ptr<DataSet> getDataSet(
const std::string& name,
   362                                                   const std::string& propertyName,
   387         std::auto_ptr<te::da::DataSet> getDataSet(
const std::string& name,
   414         virtual std::auto_ptr<DataSet> query(
const Select& q,
   437         virtual std::auto_ptr<DataSet> query(
const std::string& query, 
   455         virtual void execute(
const Query& command);
   466         virtual void execute(
const std::string& command);
   482         virtual std::string escape(
const std::string& value);
   493         virtual bool isDataSetNameValid(
const std::string& datasetName);
   504         virtual bool isPropertyNameValid(
const std::string& propertyName);
   523         virtual std::vector<std::string> getDataSetNames();
   534         virtual std::size_t getNumberOfDataSets();
   557         virtual std::auto_ptr<te::da::DataSetType> getDataSetType(
const std::string& name);
   566         std::auto_ptr<te::da::DataSetTypeCapabilities> getCapabilities(
const std::string& name);
   579         virtual boost::ptr_vector<te::dt::Property> getProperties(
const std::string& datasetName);
   593         virtual std::auto_ptr<te::dt::Property> getProperty(
const std::string& datasetName, 
const std::string& name);
   607         virtual std::auto_ptr<te::dt::Property> getProperty(
const std::string& datasetName, std::size_t propertyPos);
   623         virtual std::vector<std::string> getPropertyNames(
const std::string& datasetName);
   636         virtual std::size_t getNumberOfProperties(
const std::string& datasetName);
   650         virtual bool propertyExists(
const std::string& datasetName, 
const std::string& name);
   663         virtual void addProperty(
const std::string& datasetName, 
te::dt::Property* p);
   675         virtual void dropProperty(
const std::string& datasetName, 
const std::string& name);
   688         virtual void renameProperty(
const std::string& datasetName,
   689                                     const std::string& propertyName,
   690                                     const std::string& newPropertyName);
   692         virtual void changePropertyDefinition(
const std::string& datasetName, 
const std::string& propName, 
te::dt::Property* newProp);
   694         virtual void changePropertiesDefinitions(
const std::string& datasetName, 
const std::vector<std::string>& propsNames, 
const std::vector<te::dt::Property*> newProps);
   707         virtual std::auto_ptr<te::da::PrimaryKey> getPrimaryKey(
const std::string& datasetName);
   721         virtual bool primaryKeyExists(
const std::string& datasetName, 
const std::string& name);
   734         virtual void addPrimaryKey(
const std::string& datasetName, 
PrimaryKey* pk);
   745         virtual void dropPrimaryKey(
const std::string& datasetName);
   759         virtual std::auto_ptr<ForeignKey> getForeignKey(
const std::string& datasetName, 
const std::string& name);
   772         virtual std::vector<std::string> getForeignKeyNames(
const std::string& datasetName);
   784         virtual bool foreignKeyExists(
const std::string& datasetName, 
const std::string& name);
   797         virtual void addForeignKey(
const std::string& datasetName, 
ForeignKey* fk);
   809         virtual void dropForeignKey(
const std::string& datasetName, 
const std::string& fkName);
   823         virtual std::auto_ptr<te::da::UniqueKey> getUniqueKey(
const std::string& datasetName, 
const std::string& name);
   836         virtual std::vector<std::string> getUniqueKeyNames(
const std::string& datasetName);
   850         virtual bool uniqueKeyExists(
const std::string& datasetName, 
const std::string& name);
   863         virtual void addUniqueKey(
const std::string& datasetName, 
UniqueKey* uk);
   875         virtual void dropUniqueKey(
const std::string& datasetName, 
const std::string& name);
   889         virtual std::auto_ptr<te::da::CheckConstraint> getCheckConstraint(
const std::string& datasetName, 
const std::string& name);
   902         virtual std::vector<std::string> getCheckConstraintNames(
const std::string& datasetName);
   916         virtual bool checkConstraintExists(
const std::string& datasetName, 
const std::string& name);
   929         virtual void addCheckConstraint(
const std::string& datasetName, 
CheckConstraint* cc);
   941         virtual void dropCheckConstraint(
const std::string& datasetName, 
const std::string& name);
   955         virtual std::auto_ptr<te::da::Index> getIndex(
const std::string& datasetName, 
const std::string& name);
   968         virtual std::vector<std::string> getIndexNames(
const std::string& datasetName);
   982         virtual bool indexExists(
const std::string& datasetName, 
const std::string& name);
   996         virtual void addIndex(
const std::string& datasetName, 
Index* idx,
   997                               const std::map<std::string, std::string>& options);
  1009         virtual void dropIndex(
const std::string& datasetName, 
const std::string& idxName);
  1022         virtual std::auto_ptr<Sequence> getSequence(
const std::string& name);
  1036         virtual std::vector<std::string> getSequenceNames();
  1049         virtual bool sequenceExists(
const std::string& name);
  1059         virtual void addSequence(
Sequence* sequence);
  1070         virtual void dropSequence(
const std::string& name);
  1084         virtual std::auto_ptr<te::gm::Envelope> getExtent(
const std::string& datasetName,
  1085                                                           const std::string& propertyName);
  1099         virtual std::auto_ptr<te::gm::Envelope> getExtent(
const std::string& datasetName, std::size_t propertyPos);
  1112         virtual std::size_t getNumberOfItems(
const std::string& datasetName);
  1123         virtual bool hasDataSets();
  1136         virtual bool dataSetExists(
const std::string& name);
  1167         virtual void createDataSet(
DataSetType* dt, 
const std::map<std::string, std::string>& options);
  1180         virtual void cloneDataSet(
const std::string& name,
  1181                                   const std::string& cloneName,
  1182                                   const std::map<std::string, std::string>& options);
  1193         virtual void dropDataSet(
const std::string& name);
  1205         virtual void renameDataSet(
const std::string& name, 
const std::string& newName);
  1229         virtual void add(
const std::string& datasetName,
  1231                          const std::map<std::string, std::string>& options,
  1232                          std::size_t limit = 0);
  1267         virtual void update(
const std::string& datasetName,
  1269                             const std::vector<std::size_t>& properties,
  1271                             const std::map<std::string, std::string>& options,
  1272                             std::size_t limit = 0);
  1286         virtual void update(
const std::string& datasetName,
  1288                             const std::vector< std::set<int> >& properties,
  1289                             const std::vector<size_t>& ids);
  1327         static std::unique_ptr<DataSource> create(
const std::string& dsType, 
const std::string& connInfo);
  1343         static void drop(
const std::string& dsType, 
const std::string& connInfo);
  1357         static bool exists(
const std::string& dsType, 
const std::string& connInfo);
  1371         static std::vector<std::string> getDataSourceNames(
const std::string& dsType, 
const std::string& connInfo);
  1391         virtual void create(
const std::string& connInfo) = 0;
  1402         virtual void drop(
const std::string& connInfo) = 0;
  1415         virtual bool exists(
const std::string& connInfo) = 0;
  1428         virtual std::vector<std::string> getDataSourceNames(
const std::string& connInfo) = 0;
  1445 #endif  // __TERRALIB_DATAACCESS_DATASOURCE_INTERNAL_DATASOURCE_H 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. 
 
EncodingType
Supported character encodings. 
 
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 class for representing an Uniform Resource Identifier (URI). 
 
A dataset is the unit of information manipulated by the data access module of TerraLib. 
 
It describes a primary key (pk) constraint. 
 
te::core::URI m_uri
The URI used to describe the datasource connection;. 
 
#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.