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