TableDataSet.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/terralib4/TableDataSet.h
22 
23  \brief ????
24 */
25 
26 #ifndef __TERRALIB_TERRALIB4_INTERNAL_TABLEDATASET_H
27 #define __TERRALIB_TERRALIB4_INTERNAL_TABLEDATASET_H
28 
29 // TerraLib
30 #include "../dataaccess/dataset/DataSet.h"
31 #include "Config.h"
32 
33 // Terralib 4.x
34 #include <terralib4/kernel/TeDatabase.h>
35 
36 // STL
37 #include <memory>
38 #include <vector>
39 
40 namespace te
41 {
42 // Forward declarations
43  namespace da
44  {
45  class GeometryProperty;
46  }
47 }
48 
49 class TeLayer;
50 class TeDatabasePortal;
51 
52 namespace terralib4
53 {
54  /*!
55  \class TableDataSet
56 
57  \brief Implementation of a dataset for the TerraLib 4 driver.
58 
59  \sa te::da::DataSet
60  */
62  {
63  public:
64 
65  TableDataSet(TeDatabase* db, TeTable table);
66 
68 
70 
72 
73  std::size_t getNumProperties() const;
74 
75  int getPropertyDataType(std::size_t i) const;
76 
77  std::string getPropertyName(std::size_t i) const;
78 
79  std::string getDatasetNameOfProperty(std::size_t i) const;
80 
81  bool isEmpty() const;
82 
83  bool isConnected() const;
84 
85  std::size_t size() const;
86 
87  std::unique_ptr<te::gm::Envelope> getExtent(std::size_t i);
88 
89  bool moveNext();
90 
91  bool movePrevious();
92 
94 
95  bool moveFirst();
96 
97  bool moveLast();
98 
99  bool move(std::size_t i);
100 
101  bool isAtBegin() const;
102 
103  bool isBeforeBegin() const;
104 
105  bool isAtEnd() const;
106 
107  bool isAfterEnd() const;
108 
109  bool isPositionValid() const;
110 
111  char getChar(std::size_t i) const;
112 
113  unsigned char getUChar(std::size_t i) const;
114 
115  boost::int16_t getInt16(std::size_t i) const;
116 
117  boost::int32_t getInt32(std::size_t i) const;
118 
119  boost::int64_t getInt64(std::size_t i) const;
120 
121  bool getBool(std::size_t i) const;
122 
123  float getFloat(std::size_t i) const;
124 
125  double getDouble(std::size_t i) const;
126 
127  std::string getNumeric(std::size_t i) const;
128 
129  std::string getString(std::size_t i) const;
130 
131  std::unique_ptr<te::dt::ByteArray> getByteArray(std::size_t i) const;
132 
133  std::unique_ptr<te::gm::Geometry> getGeometry(std::size_t i) const;
134 
135  std::unique_ptr<te::rst::Raster> getRaster(std::size_t i) const;
136 
137  std::unique_ptr<te::dt::DateTime> getDateTime(std::size_t i) const;
138 
139  std::unique_ptr<te::dt::Array> getArray(std::size_t i) const;
140 
141  bool isNull(std::size_t i) const;
142 
143  protected:
144 
146  TeTable m_table;
147  int m_i;
148  int m_size;
149  int m_nCols;
151  TeDatabase* m_db;
152  TeDatabasePortal* m_portal;
153  };
154 
155 } // end namespace te
156 
157 
158 #endif // __TERRALIB_TERRALIB4_INTERNAL_TABLEDATASET_H
159 
160 
161 
A class that models the description of a dataset.
Definition: DataSetType.h:73
A dataset is the unit of information manipulated by the data access module of TerraLib.
Definition: DataSet.h:114
Implementation of a dataset for the TerraLib 4 driver.
Definition: TableDataSet.h:62
boost::int32_t getInt32(std::size_t i) const
Method for retrieving a 32-bit integer attribute value (4 bytes long).
bool move(std::size_t i)
It moves the dataset internal pointer to a given position.
bool isAfterEnd() const
It tells if the dataset internal pointer is on the sentinel position after the last element of the co...
bool moveLast()
It sets the dataset internal pointer to the last item in the collection.
std::unique_ptr< te::dt::DateTime > getDateTime(std::size_t i) const
Method for retrieving a date and time attribute value.
std::size_t size() const
It returns the collection size, if it is known.
bool isPositionValid() const
It tells if the dataset internal pointer is on a valid position.
std::string getDatasetNameOfProperty(std::size_t i) const
It returns the underlying dataset name of the property at position pos.
bool isBeforeBegin() const
It tells if the dataset internal pointer is in a position before the first element of the collection ...
bool moveFirst()
It moves the internal pointer to the first item in the collection.
bool isConnected() const
It returns true if the dataset is connected and false if it is disconnected. A dataset can be connect...
std::string getString(std::size_t i) const
Method for retrieving a string value attribute.
bool isEmpty() const
It returns true if the collection is empty.
te::common::AccessPolicy getAccessPolicy() const
It returns the read and write permission associated to the dataset.
bool getBool(std::size_t i) const
Method for retrieving a boolean attribute value.
std::unique_ptr< te::gm::Envelope > getExtent(std::size_t i)
It computes the bounding rectangle for a spatial property of the dataset.
std::unique_ptr< te::rst::Raster > getRaster(std::size_t i) const
Method for retrieving a raster attribute value.
te::da::DataSet * m_data
Definition: TableDataSet.h:150
TeDatabasePortal * m_portal
Definition: TableDataSet.h:152
char getChar(std::size_t i) const
Method for retrieving a signed character attribute value (1 byte long).
std::unique_ptr< te::gm::Geometry > getGeometry(std::size_t i) const
Method for retrieving a geometric attribute value.
float getFloat(std::size_t i) const
Method for retrieving a float attribute value.
TableDataSet(TeDatabase *db, TeTable table)
bool moveBeforeFirst()
It moves the internal pointer to a position before the first item in the collection.
boost::int16_t getInt16(std::size_t i) const
Method for retrieving a 16-bit integer attribute value (2 bytes long).
te::da::DataSetType * m_dt
Definition: TableDataSet.h:145
std::unique_ptr< te::dt::ByteArray > getByteArray(std::size_t i) const
Method for retrieving a byte array.
bool isAtBegin() const
It tells if the dataset internal pointer is on the first element of the collection or not.
std::string getNumeric(std::size_t i) const
Method for retrieving a numeric attribute value.
std::unique_ptr< te::dt::Array > getArray(std::size_t i) const
Method for retrieving an array.
bool isAtEnd() const
It tells if the dataset internal pointer is on the last element of the collection.
bool movePrevious()
It moves the internal pointer to the previous item of the collection.
double getDouble(std::size_t i) const
Method for retrieving a double attribute value.
std::string getPropertyName(std::size_t i) const
It returns the property name at position pos.
boost::int64_t getInt64(std::size_t i) const
Method for retrieving a 64-bit integer attribute value (8 bytes long).
unsigned char getUChar(std::size_t i) const
Method for retrieving an unsigned character attribute value (1 byte long).
bool isNull(std::size_t i) const
It checks if the attribute value is NULL.
bool moveNext()
It moves the internal pointer to the next item of the collection.
std::size_t getNumProperties() const
It returns the number of properties that composes an item of the dataset.
int getPropertyDataType(std::size_t i) const
It returns the underlying data type of the property at position pos.
te::common::TraverseType getTraverseType() const
It returns the traverse type associated to the dataset.
TraverseType
A dataset can be traversed in two ways:
Definition: Enums.h:54
AccessPolicy
Supported data access policies (can be used as bitfield).
Definition: Enums.h:41
TerraLib.
Definition: Band.h:35
#define TETERRALIB4EXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:123
Proxy configuration file for TerraView (see terraview_config.h).