Loading...
Searching...
No Matches
DataSourceCapabilities.h
Go to the documentation of this file.
1/* Copyright (C) 2008 National Institute For Space Research (INPE) - Brazil.
2
3 This file is part of the TerraLib - a Framework for building GIS enabled applications.
4
5 TerraLib is free software: you can redistribute it and/or modify
6 it under the terms of the GNU Lesser General Public License as published by
7 the Free Software Foundation, either version 3 of the License,
8 or (at your option) any later version.
9
10 TerraLib is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public License
16 along with TerraLib. See COPYING. If not, write to
17 TerraLib Team at <terralib-team@terralib.org>.
18 */
19
20/*!
21 \file terralib/dataaccess/datasource/DataSourceCapabilities.h
22
23 \brief A class that represents the known capabilities of a specific data source.
24*/
25
26#ifndef __TERRALIB_DATAACCESS_INTERNAL_DATASOURCECAPABILITIES_H
27#define __TERRALIB_DATAACCESS_INTERNAL_DATASOURCECAPABILITIES_H
28
29// TerraLib
30#include "../../common/Enums.h"
31#include "../dataset/DataSetCapabilities.h"
32#include "../dataset/DataSetTypeCapabilities.h"
33#include "../query/QueryCapabilities.h"
34#include "../Config.h"
36
37// STL
38#include <map>
39#include <string>
40
41namespace te
42{
43 namespace da
44 {
45 /*!
46 \class DataSourceCapabilities
47
48 \brief A class that represents the known capabilities of a specific data source,
49 i.e. this class informs all information about what the data source can perform.
50 Here you will find if the data source implementation supports primary keys,
51 foreign keys, if it can be used in a thread environment and much more information.
52
53 \ingroup dataaccess
54 */
56 {
57 public:
58
59 /*! \brief Constructor. */
61
62 /*! \brief Destructor. */
64
65 public:
66
68
69 void setAccessPolicy(const te::common::AccessPolicy& accessPolicy);
70
72
73 void setSupportTransactions(const bool& support);
74
76
77 void setSupportDataSetPesistenceAPI(const bool& support);
78
80
81 void setSupportDataSetTypePesistenceAPI(const bool& support);
82
84
85 void setSupportPreparedQueryAPI(const bool& support);
86
88
89 void setSupportBatchExecutorAPI(const bool& support);
90
92
94
96
98
100
102
104
106
107 const std::map<std::string, std::string>& getSpecificCapabilities() const;
108
109 void addSpecificCapability(const std::string& key, const std::string& value);
110
112
113 private:
114
115 te::common::AccessPolicy m_accessPolicy; //!< A value that indicates the data source access policy.
116 bool m_supportTransactions; //!< A flag that indicates if the data source supports ACID transactions.
117 bool m_supportDataSetPesistenceAPI; //!< A flag that indicates if the data source supports the DataSetPersistence API.
118 bool m_supportDataSetTypePesistenceAPI; //!< A flag that indicates if the data source supports the DataSetTypePersistence API.
119 bool m_supportPreparedQueryAPI; //!< A flag that indicates if the data source supports the PreparedQuery API.
120 bool m_supportBatchExecutorAPI; //!< A flag that indicates if the data source supports the BatchExecutor API.
121
122 DataTypeCapabilities m_dataTypeCapabilities; //!< The DataType Capabilities.
123 DataSetTypeCapabilities m_dataSetTypeCapabilities; //!< The DataSetType Capabilities.
124 DataSetCapabilities m_dataSetCapabilities; //!< The DataSet Capabilities.
125 QueryCapabilities m_queryCapabilities; //!< The Query Capabilities.
126
127 std::map<std::string, std::string> m_specificCapabilities; //!< A list of key-value-pairs that data source driver can supply with specifics capabilities.
128 };
129
130 } // end namespace da
131} // end namespace te
132
133#endif // __TERRALIB_DATAACCESS_INTERNAL_DATASOURCECAPABILITIES_H
A class that represents the supported data types of a specific data source.
te::da::DataSourceCapabilities capabilities
A class that informs what the dataset implementation of a given data source can perform.
A class that informs what kind of constraint and index is supported by a given data source.
A class that represents the known capabilities of a specific data source, i.e. this class informs all...
DataSetCapabilities m_dataSetCapabilities
The DataSet Capabilities.
void addSpecificCapability(const std::string &key, const std::string &value)
void setSupportBatchExecutorAPI(const bool &support)
void setSupportPreparedQueryAPI(const bool &support)
const std::map< std::string, std::string > & getSpecificCapabilities() const
void setSupportTransactions(const bool &support)
const DataSetTypeCapabilities & getDataSetTypeCapabilities() const
bool m_supportTransactions
A flag that indicates if the data source supports ACID transactions.
bool m_supportDataSetPesistenceAPI
A flag that indicates if the data source supports the DataSetPersistence API.
std::map< std::string, std::string > m_specificCapabilities
A list of key-value-pairs that data source driver can supply with specifics capabilities.
te::common::AccessPolicy getAccessPolicy() const
void setSupportDataSetPesistenceAPI(const bool &support)
void setAccessPolicy(const te::common::AccessPolicy &accessPolicy)
const DataSetCapabilities & getDataSetCapabilities() const
void setDataTypeCapabilities(const DataTypeCapabilities &capabilities)
const DataTypeCapabilities & getDataTypeCapabilities() const
void setSupportDataSetTypePesistenceAPI(const bool &support)
bool supportsDataSetTypePesistenceAPI() const
bool m_supportDataSetTypePesistenceAPI
A flag that indicates if the data source supports the DataSetTypePersistence API.
DataSetTypeCapabilities m_dataSetTypeCapabilities
The DataSetType Capabilities.
void setQueryCapabilities(const QueryCapabilities &capabilities)
bool supportsDataSetPesistenceAPI() const
void setDataSetCapabilities(const DataSetCapabilities &capabilities)
QueryCapabilities m_queryCapabilities
The Query Capabilities.
bool m_supportPreparedQueryAPI
A flag that indicates if the data source supports the PreparedQuery API.
DataTypeCapabilities m_dataTypeCapabilities
The DataType Capabilities.
te::common::AccessPolicy m_accessPolicy
A value that indicates the data source access policy.
const QueryCapabilities & getQueryCapabilities() const
bool m_supportBatchExecutorAPI
A flag that indicates if the data source supports the BatchExecutor API.
void setDataSetTypeCapabilities(const DataSetTypeCapabilities &capabilities)
DataSourceCapabilities()
Constructor.
A class that represents the supported data types of a specific data source.
A class that informs the query support of a given data source.
AccessPolicy
Supported data access policies (can be used as bitfield).
Definition: Enums.h:41
TerraLib.
#define TEDATAACCESSEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:97