Loading...
Searching...
No Matches
VectorDataSet.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/VectorDataSet.h
22
23 \brief ????
24*/
25
26#ifndef __TERRALIB_TERRALIB4_INTERNAL_VECTORDATASET_H
27#define __TERRALIB_TERRALIB4_INTERNAL_VECTORDATASET_H
28
29// TerraLib
30#include "../dataaccess/dataset/DataSet.h"
31#include "Config.h"
32
33// Terralib 4.x
34#include <terralib4/kernel/TeQuerier.h>
35
36// STL
37#include <memory>
38#include <vector>
39
40namespace te
41{
42// Forward declarations
43 namespace da
44 {
45 class GeometryProperty;
46 }
47}
48
49class TeLayer;
50class TeDatabasePortal;
51
52namespace terralib4
53{
54 /*!
55 \class VectorDataSet
56
57 \brief Implementation of a dataset for the TerraLib 4 driver.
58
59 \sa te::da::DataSet
60 */
62 {
63 public:
64
65 VectorDataSet(TeLayer* layer);
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
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 TeQuerier* m_querier;
147 mutable TeSTInstance m_instance;
148 int m_i;
153 TeLayer* m_layer;
154 };
155
156} // end namespace te
157
158
159#endif // __TERRALIB_TERRALIB4_INTERNAL_VECTORDATASET_H
160
161
162
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: VectorDataSet.h:62
bool move(std::size_t i)
It moves the dataset internal pointer to a given position.
std::size_t getNumProperties() const
It returns the number of properties that composes an item of the dataset.
std::string getDatasetNameOfProperty(std::size_t i) const
It returns the underlying dataset name of the property at position pos.
bool moveLast()
It sets the dataset internal pointer to the last 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).
unsigned char getUChar(std::size_t i) const
Method for retrieving an unsigned character attribute value (1 byte long).
bool getBool(std::size_t i) const
Method for retrieving a boolean attribute value.
bool isAtBegin() const
It tells if the dataset internal pointer is on the first element of the collection or not.
te::common::TraverseType getTraverseType() const
It returns the traverse type associated to the dataset.
std::string getNumeric(std::size_t i) const
Method for retrieving a numeric attribute value.
bool moveBeforeFirst()
It moves the internal pointer to a position before the first item in the collection.
bool isNull(std::size_t i) const
It checks if the attribute value is NULL.
te::common::AccessPolicy getAccessPolicy() const
It returns the read and write permission associated to the dataset.
std::string getPropertyName(std::size_t i) const
It returns the property name at position pos.
std::unique_ptr< te::rst::Raster > getRaster(std::size_t i) const
Method for retrieving a raster attribute value.
float getFloat(std::size_t i) const
Method for retrieving a float attribute value.
double getDouble(std::size_t i) const
Method for retrieving a double attribute value.
bool isBeforeBegin() const
It tells if the dataset internal pointer is in a position before the first element of the collection ...
char getChar(std::size_t i) const
Method for retrieving a signed character attribute value (1 byte long).
boost::int64_t getInt64(std::size_t i) const
Method for retrieving a 64-bit integer attribute value (8 bytes long).
te::da::DataSetType * m_dt
int getPropertyDataType(std::size_t i) const
It returns the underlying data type of the property at position pos.
std::unique_ptr< te::dt::Array > getArray(std::size_t i) const
Method for retrieving an array.
std::size_t size() const
It returns the collection size, if it is known.
bool moveNext()
It moves the internal pointer to the next item of the collection.
std::unique_ptr< te::dt::DateTime > getDateTime(std::size_t i) const
Method for retrieving a date and time attribute value.
bool isAfterEnd() const
It tells if the dataset internal pointer is on the sentinel position after the last element of the co...
boost::int32_t getInt32(std::size_t i) const
Method for retrieving a 32-bit integer attribute value (4 bytes long).
std::unique_ptr< te::gm::Envelope > getExtent(std::size_t i)
It computes the bounding rectangle for a spatial property of the dataset.
bool isAtEnd() const
It tells if the dataset internal pointer is on the last element of the collection.
std::string getString(std::size_t i) const
Method for retrieving a string value attribute.
std::unique_ptr< te::gm::Geometry > getGeometry(std::size_t i) const
Method for retrieving a geometric attribute value.
VectorDataSet(TeLayer *layer)
bool movePrevious()
It moves the internal pointer to the previous item of the collection.
bool isEmpty() const
It returns true if the collection is empty.
bool isPositionValid() const
It tells if the dataset internal pointer is on a valid position.
bool isConnected() const
It returns true if the dataset is connected and false if it is disconnected. A dataset can be connect...
bool moveFirst()
It moves the internal pointer to the first item in the collection.
std::unique_ptr< te::dt::ByteArray > getByteArray(std::size_t i) const
Method for retrieving a byte array.
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).