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 
74  const std::vector<te::rst::BandProperty*> bands,
75  const std::map<std::string, std::string>& rinfo,
76  const std::map<std::string, std::string>& metadata,
77  void* h = 0, void (*deleter)(void*) = 0);
78 
80 
81  private:
82 
84  };
85 
86  } // end namespace mem
87 } // end namespace te
88 
89 #endif // __TERRALIB_MEMORY_INTERNAL_EXPANSIBLERASTERFACTORY_H
void getCreationalParameters(std::vector< std::pair< std::string, std::string > > &params) const
It returns the list of parameters accepted as raster info.
te::rst::Raster * build()
Concrete factories (derived from this one) must implement this method in order to create objects.
static ExpansibleRasterFactory * sm_factoryPointer
const std::string & getType() const
Returns the type (name) of this factory.
std::map< std::string, std::string > getCapabilities() const
It returns a map<string, string> containing all supported formats.
te::rst::Raster * create(te::rst::Grid *g, const std::vector< te::rst::BandProperty * > bands, const std::map< std::string, std::string > &rinfo, const std::map< std::string, std::string > &metadata, void *h=0, void(*deleter)(void *)=0)
This method must be implemented by subclasses (raster drivers).
static void finalize()
It finalizes the factory: the singleton instance will be destroyed and will be unregistered from the ...
static void initialize()
It initializes the factory: the singleton instance will be registered in the abstract factory DataSou...
A rectified grid is the spatial support for raster data.
Definition: Grid.h:69
This is the abstract factory for Rasters.
Definition: RasterFactory.h:51
An abstract class for raster data strucutures.
Definition: Raster.h:72
TerraLib.
#define TEMEMORYEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:84
Proxy configuration file for TerraView (see terraview_config.h).