Main Page
Modules
Namespaces
Classes
Files
File List
File Members
src/terralib/core/plugin/CppPluginEngine.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2008 National Institute For Space Research (INPE) - Brazil.
3
4
This file is part of the TerraLib - a Framework for building GIS enabled applications.
5
6
TerraLib is free software: you can redistribute it and/or modify
7
it under the terms of the GNU Lesser General Public License as published by
8
the Free Software Foundation, either version 3 of the License,
9
or (at your option) any later version.
10
11
TerraLib is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
GNU Lesser General Public License for more details.
15
16
You should have received a copy of the GNU Lesser General Public License
17
along with TerraLib. See COPYING. If not, write to
18
TerraLib Team at <terralib-team@terralib.org>.
19
*/
20
21
/*!
22
\file terralib/core/plugin/CppPluginEngine.h
23
24
\brief A plugin engine for plugins written in C++.
25
26
\author Gilberto Ribeiro de Queiroz
27
\author Matheus Cavassan Zaglia
28
*/
29
30
#ifndef __TERRALIB_CORE_PLUGIN_CPPPLUGINENGINE_H__
31
#define __TERRALIB_CORE_PLUGIN_CPPPLUGINENGINE_H__
32
33
// TerraLib
34
#include "
AbstractPluginEngine.h
"
35
36
namespace
te
37
{
38
namespace
core
39
{
40
41
/*!
42
\class CppPluginEgine
43
44
\brief A plugin engine for plugins written in C++.
45
*/
46
class
TECOREEXPORT
CppPluginEngine
:
public
AbstractPluginEngine
47
{
48
public
:
49
50
/*! \brief Default construtor. */
51
CppPluginEngine
();
52
53
/*! \brief Destructor. */
54
~
CppPluginEngine
();
55
56
/*! \brief It returns the id of the plugin engine */
57
const
std::string& id()
const
;
58
59
/*! \brief It returns the name of the plugin engine */
60
const
std::string& name()
const
;
61
62
/*!
63
\brief It loads a cpp plugin from a give PluginInfo
64
65
\exception PluginEngineLoadException If the plugin cannot be loaded.
66
\return A unique_ptr of the loaded plugin.
67
*/
68
std::unique_ptr<AbstractPlugin> load(
const
PluginInfo
& pinfo);
69
70
/*!
71
\brief It unloads a cpp plugin from a give AbstractPlugin unique_ptr
72
73
\exception PluginEngineUnloadException If the plugin cannot be unloaded.
74
*/
75
void
unload(std::unique_ptr<AbstractPlugin> plugin);
76
77
private
:
78
79
struct
Impl
;
80
81
Impl
*
m_pimpl
;
82
};
83
84
}
// end namespace core
85
}
// end namespace te
86
87
#endif // __TERRALIB_CORE_PLUGIN_CPPPLUGINENGINE_H__
te::core::PluginInfo
Basic information about a plugin.
Definition:
src/terralib/core/plugin/PluginInfo.h:63
AbstractPluginEngine.h
The base class for plugin engines.
TECOREEXPORT
#define TECOREEXPORT
Definition:
src/terralib/core/Config.h:52
te
URI C++ Library.
Definition:
Attributes.h:37
te::core::AbstractPluginEngine
The base class for plugin engines.
Definition:
src/terralib/core/plugin/AbstractPluginEngine.h:54
te::core::CppPluginEngine::Impl
Definition:
src/terralib/core/plugin/CppPluginEngine.cpp:48
te::core::CppPluginEngine
Definition:
src/terralib/core/plugin/CppPluginEngine.h:46
te::core::CppPluginEngine::m_pimpl
Impl * m_pimpl
Definition:
src/terralib/core/plugin/CppPluginEngine.h:79
terralib5_src
src
terralib
core
plugin
CppPluginEngine.h
Generated on Wed Jun 6 2018 12:16:07 for TerraLib by
1.8.11