FwDataSet.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/sqlite/FwDataSet.h
22 
23  \brief Implementation of a forward-only dataset for the TerraLib SQLite Data Access driver.
24 */
25 
26 #ifndef __TERRALIB_SQLITE_INTERNAL_FWDATASET_H
27 #define __TERRALIB_SQLITE_INTERNAL_FWDATASET_H
28 
29 // TerraLib
30 #include "../dataaccess/dataset/DataSet.h"
31 
32 extern "C"
33 {
34  struct sqlite3_stmt;
35  typedef struct sqlite3_stmt sqlite3_stmt;
36 }
37 
38 namespace te
39 {
40  namespace sqlite
41  {
42  class DataSourceTransactor;
43 
44  class FwDataSet : public te::da::DataSet
45  {
46  public:
47 
49 
50  ~FwDataSet();
51 
53 
55 
56  std::size_t getNumProperties() const;
57 
58  int getPropertyDataType(std::size_t i) const;
59 
60  std::string getPropertyName(std::size_t i) const;
61 
62  std::string getDatasetNameOfProperty(std::size_t i) const;
63 
64  bool isEmpty() const;
65 
66  bool isConnected() const;
67 
68  std::size_t size() const;
69 
70  std::auto_ptr<te::gm::Envelope> getExtent(std::size_t i);
71 
72  bool moveNext();
73 
74  bool movePrevious();
75 
76  bool moveBeforeFirst();
77 
78  bool moveFirst();
79 
80  bool moveLast();
81 
82  bool move(std::size_t i);
83 
84  bool isAtBegin() const;
85 
86  bool isBeforeBegin() const;
87 
88  bool isAtEnd() const;
89 
90  bool isAfterEnd() const;
91 
92  char getChar(std::size_t i) const;
93 
94  unsigned char getUChar(std::size_t i) const;
95 
96  boost::int16_t getInt16(std::size_t i) const;
97 
98  boost::int32_t getInt32(std::size_t i) const;
99 
100  boost::int64_t getInt64(std::size_t i) const;
101 
102  bool getBool(std::size_t i) const;
103 
104  float getFloat(std::size_t i) const;
105 
106  double getDouble(std::size_t i) const;
107 
108  std::string getNumeric(std::size_t i) const;
109 
110  std::string getString(std::size_t i) const;
111 
112  std::auto_ptr<te::dt::ByteArray> getByteArray(std::size_t i) const;
113 
114  std::auto_ptr<te::gm::Geometry> getGeometry(std::size_t i) const;
115 
116  std::auto_ptr<te::rst::Raster> getRaster(std::size_t i) const;
117 
118  std::auto_ptr<te::dt::DateTime> getDateTime(std::size_t i) const;
119 
120  std::auto_ptr<te::dt::Array> getArray(std::size_t i) const;
121 
122  bool isNull(std::size_t i) const;
123 
124  class Impl;
125 
126  Impl* m_pImpl;
127  };
128 
129  } // end namespace sqlite
130 } // end namespace te
131 
132 
133 #endif // __TERRALIB_SQLITE_INTERNAL_FWDATASET_H
134 
135 
te::common::AccessPolicy getAccessPolicy() const
It returns the read and write permission associated to the dataset.
boost::int64_t getInt64(std::size_t i) const
Method for retrieving a 64-bit integer attribute value (8 bytes long).
std::string getPropertyName(std::size_t i) const
It returns the property name at position pos.
bool moveBeforeFirst()
It moves the internal pointer to a position before the first item in the collection.
char getChar(std::size_t i) const
Method for retrieving a signed character attribute value (1 byte long).
bool moveNext()
It moves the internal pointer to the next item of the collection.
bool isAfterEnd() const
It tells if the dataset internal pointer is on the sentinel position after the last element of the co...
bool getBool(std::size_t i) const
Method for retrieving a boolean attribute value.
std::string getDatasetNameOfProperty(std::size_t i) const
It returns the underlying dataset name of the property at position pos.
bool isAtBegin() const
It tells if the dataset internal pointer is on the first element of the collection or not...
double getDouble(std::size_t i) const
Method for retrieving a double attribute value.
FwDataSet(sqlite3_stmt *stmt, DataSourceTransactor *t)
float getFloat(std::size_t i) const
Method for retrieving a float attribute value.
std::auto_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 isBeforeBegin() const
It tells if the dataset internal pointer is in a position before the first element of the collection ...
boost::int16_t getInt16(std::size_t i) const
Method for retrieving a 16-bit integer attribute value (2 bytes long).
AccessPolicy
Supported data access policies (can be used as bitfield).
Definition: Enums.h:40
TraverseType
A dataset can be traversed in two ways:
Definition: Enums.h:53
std::string getString(std::size_t i) const
Method for retrieving a string value attribute.
int getPropertyDataType(std::size_t i) const
It returns the underlying data type of the property at position pos.
bool moveLast()
It sets the dataset internal pointer to the last item in the collection.
unsigned char getUChar(std::size_t i) const
Method for retrieving an unsigned character attribute value (1 byte long).
bool isConnected() const
It returns true if the dataset is connected and false if it is disconnected. A dataset can be connect...
bool isEmpty() const
It returns true if the collection is empty.
std::auto_ptr< te::dt::Array > getArray(std::size_t i) const
Method for retrieving an array.
URI C++ Library.
std::size_t getNumProperties() const
It returns the number of properties that composes an item of the dataset.
std::auto_ptr< te::gm::Geometry > getGeometry(std::size_t i) const
Method for retrieving a geometric attribute value.
std::auto_ptr< te::gm::Envelope > getExtent(std::size_t i)
It computes the bounding rectangle for a spatial property of the dataset.
te::common::TraverseType getTraverseType() const
It returns the traverse type associated to the dataset.
A dataset is the unit of information manipulated by the data access module of TerraLib.
Definition: DataSet.h:112
std::auto_ptr< te::dt::ByteArray > getByteArray(std::size_t i) const
Method for retrieving a byte array.
bool movePrevious()
It moves the internal pointer to the previous item of the collection.
bool isAtEnd() const
It tells if the dataset internal pointer is on the last element of the collection.
bool move(std::size_t i)
It moves the dataset internal pointer to a given position.
struct sqlite3_stmt sqlite3_stmt
Definition: FwDataSet.h:35
bool isNull(std::size_t i) const
It checks if the attribute value is NULL.
bool moveFirst()
It moves the internal pointer to the first item in the collection.
std::string getNumeric(std::size_t i) const
Method for retrieving a numeric attribute value.
std::auto_ptr< te::rst::Raster > getRaster(std::size_t i) const
Method for retrieving a raster attribute value.
boost::int32_t getInt32(std::size_t i) const
Method for retrieving a 32-bit integer attribute value (4 bytes long).