All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
RasterHandler.cpp
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/rp/RasterHandler.cpp
22  \brief Raster tuple.
23 */
24 
25 #include "RasterHandler.h"
26 
27 namespace te
28 {
29  namespace rp
30  {
32  {
33  }
34 
36  te::da::DataSource* dataSourcePtr,
37  te::da::DataSourceTransactor* transactorPtr,
38  te::da::DataSet* dataSetPtr,
39  te::rst::Raster* rasterPtr )
40  {
41  m_dataSourcePtr.reset( dataSourcePtr );
42  m_transactorPtr.reset( transactorPtr );
43  m_dataSetPtr.reset( dataSetPtr );
44  m_rasterPtr.reset( rasterPtr );
45  }
46 
48  te::da::DataSourceTransactor* transactorPtr,
49  te::da::DataSet* dataSetPtr,
50  te::rst::Raster* rasterPtr )
51  {
52  m_transactorPtr.reset( transactorPtr );
53  m_dataSetPtr.reset( dataSetPtr );
54  m_rasterPtr.reset( rasterPtr );
55  }
56 
57 
59  {
60  m_rasterPtr.reset( rasterPtr );
61  }
62 
64  {
65  reset();
66  }
67 
69  {
70  // Inverse order is requred
71  m_rasterPtr.reset();
72  m_dataSetPtr.reset();
73  m_transactorPtr.reset();
74  m_dataSourcePtr.reset();
75  }
76 
78  te::da::DataSource* dataSourcePtr,
79  te::da::DataSourceTransactor* transactorPtr,
80  te::da::DataSet* dataSetPtr,
81  te::rst::Raster* rasterPtr )
82  {
83  reset();
84 
85  m_dataSourcePtr.reset( dataSourcePtr );
86  m_transactorPtr.reset( transactorPtr );
87  m_dataSetPtr.reset( dataSetPtr );
88  m_rasterPtr.reset( rasterPtr );
89  }
90 
92  te::da::DataSourceTransactor* transactorPtr,
93  te::da::DataSet* dataSetPtr,
94  te::rst::Raster* rasterPtr )
95  {
96  reset();
97 
98  m_transactorPtr.reset( transactorPtr );
99  m_dataSetPtr.reset( dataSetPtr );
100  m_rasterPtr.reset( rasterPtr );
101  }
102 
104  {
105  reset();
106  m_rasterPtr.reset( rasterPtr );
107  }
108 
110  {
111  return m_rasterPtr.get();
112  }
113 
115  std::auto_ptr< te::da::DataSource >& dataSourcePtr,
116  std::auto_ptr< te::da::DataSourceTransactor >& transactorPtr,
117  std::auto_ptr< te::da::DataSet >& dataSetPtr,
118  std::auto_ptr< te::rst::Raster >& rasterPtr )
119  {
120  rasterPtr.reset( m_rasterPtr.release() );
121  dataSetPtr.reset( m_dataSetPtr.release() );
122  transactorPtr.reset( m_transactorPtr.release() );
123  dataSourcePtr.reset( m_dataSourcePtr.release() );
124  }
125 
127  {
128  other.m_rasterPtr.reset( m_rasterPtr.release() );
129  other.m_dataSetPtr.reset( m_dataSetPtr.release() );
130  other.m_transactorPtr.reset( m_transactorPtr.release() );
131  other.m_dataSourcePtr.reset( m_dataSourcePtr.release() );
132  }
133 
134  } // end namespace rp
135 } // end namespace te
136 
void reset()
Reset the internal state (all internal pointed objects are deleted).
void release(std::auto_ptr< te::da::DataSource > &dataSourcePtr, std::auto_ptr< te::da::DataSourceTransactor > &transactorPtr, std::auto_ptr< te::da::DataSet > &dataSetPtr, std::auto_ptr< te::rst::Raster > &rasterPtr)
Relase the internal state and give the ownership to the given pointers.
std::auto_ptr< te::da::DataSourceTransactor > m_transactorPtr
A pointer to a transactor instance that may or may not be related to data source instance pointed by ...
An abstract class for data providers like a DBMS, Web Services or a regular file. ...
Definition: DataSource.h:118
std::auto_ptr< te::da::DataSet > m_dataSetPtr
A pointer to a data set instance related to the transactor instance pointed by m_transactorPtr.
An abstract class for raster data strucutures.
Definition: Raster.h:71
std::auto_ptr< te::da::DataSource > m_dataSourcePtr
A pointer to a datasource instance.
Raster tuple.
RasterHandler.
Definition: RasterHandler.h:47
A DataSourceTransactor can be viewed as a connection to the data source for reading/writing things in...
std::auto_ptr< te::rst::Raster > m_rasterPtr
A pointer to a raster instance related to the data set instance pointed by m_dataSetPtr.
A dataset is the unit of information manipulated by the data access module of TerraLib.
Definition: DataSet.h:112
te::rst::Raster * getRasterPtr()
Returns a pointer the the handled raster instance or NULL if no instance is handled.