ExpansibleRasterFactory.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/memory/ExpansibleRasterFactory.h
22 
23  \brief This is the concrete factory for expansible raster.
24 */
25 
26 #ifndef __TERRALIB_MEMORY_INTERNAL_EXPANSIBLERASTERFACTORY_H
27 #define __TERRALIB_MEMORY_INTERNAL_EXPANSIBLERASTERFACTORY_H
28 
29 // TerraLib
30 #include "../raster/RasterFactory.h"
31 #include "Config.h"
32 
33 namespace te
34 {
35  namespace mem
36  {
37  /*!
38  \class ExpansibleRasterFactory
39 
40  \briefThis is the concrete factory for expansible raster.
41 
42  \note The factory ID for this factory is EXPANSIBLE.
43 
44  \note This factory accepts the following raster infor (rinfo) parameter: MAXMEMPERCENTUSED - The maximum free memory percentual to use valid range: [1:100].
45 
46  \note This factory accepts the following raster infor (rinfo) parameter: MAXNUMBEROFRAMBLOCKS - The maximum number of RAM blocks.
47 
48  \sa te::rst::RasterFactory
49  */
51  {
52  public:
53 
55 
56  const std::string& getType() const;
57 
58  void getCreationalParameters(std::vector< std::pair<std::string, std::string> >& params) const;
59 
60  std::map<std::string, std::string> getCapabilities() const;
61 
62  /*! \brief It initializes the factory: the singleton instance will be registered in the abstract factory DataSourceFactory. */
63  static void initialize();
64 
65  /*! \brief It finalizes the factory: the singleton instance will be destroyed and will be unregistered from the abstract factory DataSourceFactory. */
66  static void finalize();
67 
68 
69  protected:
70 
72 
73  te::rst::Raster* create(te::rst::Grid* g, const std::vector<te::rst::BandProperty*> bands, const std::map<std::string, std::string>& rinfo, void* h = 0, void (*deleter)(void*) = 0);
74 
75  te::rst::Raster* build();
76 
77  private:
78 
80  };
81 
82  } // end namespace mem
83 } // end namespace te
84 
85 #endif // __TERRALIB_MEMORY_INTERNAL_EXPANSIBLERASTERFACTORY_H
#define TEMEMORYEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:84
Configuration flags for the TerraLib In-memory Data Access driver.
static ExpansibleRasterFactory * sm_factoryPointer
An abstract class for raster data strucutures.
Definition: Raster.h:71
URI C++ Library.
This is the abstract factory for Rasters.
Definition: RasterFactory.h:50
A rectified grid is the spatial support for raster data.
Definition: Grid.h:68