RendererFactory.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/maptools/RendererFactory.h
22 
23  \brief An abstract factory for layer renderers.
24 */
25 
26 #ifndef __TERRALIB_MAPTOOLS_INTERNAL_RENDERERFACTORY_H
27 #define __TERRALIB_MAPTOOLS_INTERNAL_RENDERERFACTORY_H
28 
29 // TerraLib
30 #include "../common/AbstractFactory.h"
31 #include "AbstractRenderer.h"
32 
33 namespace te
34 {
35  namespace map
36  {
37 
38  /*!
39  \class RendererFactory
40 
41  \brief This is the abstract factory for layer renderers.
42 
43  \ingroup map
44 
45  \sa AbstractRenderer, DataSetLayerRendererFactory, FeatureTypeStyleRendererFactory, CoverageStyleRendererFactory
46  */
47  class TEMAPEXPORT RendererFactory : public te::common::AbstractFactory<AbstractRenderer, std::string>
48  {
49  public:
50 
51  /*!
52  \brief Virtual destructor.
53 
54  \note It will automatically unregister the factory from the dictionary.
55  */
56  virtual ~RendererFactory();
57 
58  protected:
59 
60  /*!
61  \brief It creates the factory.
62 
63  \param factoryKey The key that identifies the factory.
64  */
65  RendererFactory(const std::string& factoryKey);
66  };
67 
68  } // end namespace map
69 } // end namespace te
70 
71 #endif // __TERRALIB_MAPTOOLS_INTERNAL_RENDERERFACTORY_H
72 
This class defines the interface of abstract factories without initializing parameters.
This is the abstract factory for layer renderers.
URI C++ Library.
#define TEMAPEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:60
This is the base class for renderers.