All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Module.cpp
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/plugin/Module.cpp
22 
23  \brief This singleton defines the TerraLib Plugin module entry.
24 */
25 
26 // TerraLib
27 #include "../common/Logger.h"
28 #include "../common/TerraLib.h"
29 #include "../common/Translator.h"
30 #include "CppPluginEngineFactory.h"
31 #include "Module.h"
32 #include "PluginInfo.h"
33 #include "PluginManager.h"
34 #include "Utils.h"
35 
36 #if TE_AUTOMATICALLY_LOAD_DEFAULT_XML_PLUGIN
38 #endif
39 
41 
43 {
47  };
48 
49 // initialize TerraLib singleton
51 
52 // just to make our singleton alive!
54 }
55 
57 {
59 }
60 
62 {
63 #if TE_AUTOMATICALLY_LOAD_DEFAULT_XML_PLUGIN
65  pinfo.m_name = "TERRALIB_XERCES";
66  pinfo.m_category = "XML";
68  //pinfo.m_folder = "."; //the default search directories will be used
69  pinfo.m_resources.push_back(te::plugin::PluginInfo::Resource("SharedLibraryName", "terralib_mod_xerces"));
70 
72 
74 #endif
75  TE_LOG_TRACE(TE_TR("TerraLib Plugin module initialized!"));
76 }
77 
79 {
81 
82 // then, clear all registered plugins
84 
85 #if TE_AUTOMATICALLY_LOAD_DEFAULT_XML_PLUGIN
87  {
89  }
90 #endif
91 
92  TE_LOG_TRACE(TE_TR("TerraLib Plugin module finalized!"));
93 }
94 
95 
96 
#define TE_LOG_TRACE(msg)
Use this tag in order to log a message to a specified logger with the TRACE level.
Definition: Logger.h:137
#define TE_PLUGIN_MODULE_NAME
The module name (identifier).
Definition: Config.h:42
std::string m_name
The plugin name: an internal value used to identify the plugin in the system. Must be a unique value...
Definition: PluginInfo.h:66
An abstract class for TerraLib Plugins.
void unloadAll()
It try to unload all plugins.
This singleton defines the TerraLib Plugin module entry.
Module()
The singleton constructor is not callable outside the class.
Definition: Module.cpp:42
#define TE_TR(message)
It marks a string in order to get translated.
Definition: Translator.h:347
void load(boost::ptr_vector< PluginInfo > &plugins, const bool start=true)
It tries to load all informed plugins.
std::string m_engine
The type of plugin execution engine: C++, JAVA.
Definition: PluginInfo.h:71
static Module & getInstance()
It returns a reference to the singleton instance.
Utility functions for dealing with plugins.
AbstractPlugin * detach(const std::string &pluginName)
It detaches the given plugin from the list of loaded plugins.
void remove(const std::string &moduleName)
It removes the module entry identified by the given name.
Definition: TerraLib.cpp:101
const te::addressgeocoding::Module & sm_module
Definition: Module.cpp:33
void add(const Module &m)
It registers the module in the TerraLib Platform.
Definition: TerraLib.cpp:95
static te::plugin::AbstractPlugin * sg_xercesPlugins(0)
#define TE_CPPPLUGINENGINE_CODE
The plugin engine name for C++ plugins.
Definition: Config.h:68
TEPLUGINEXPORT void UnloadAllPluginsFromEngine(const std::string &engine)
It unloads all plugins from a given engine.
Definition: Utils.cpp:40
A singleton for managing plugins.
std::vector< Resource > m_resources
The list of resources used by plugin.
Definition: PluginInfo.h:81
std::pair< std::string, std::string > Resource
Definition: PluginInfo.h:63
This internal structure is used to model the basic information about a TerraLib module.
Definition: TerraLib.h:97
static void finalize()
This is the cleanup function for the TerraLib Plugin module.
Definition: Module.cpp:78
This singleton defines the TerraLib Plugin module entry.
Definition: Module.h:41
The basic information about a plugin.
Definition: PluginInfo.h:61
The basic information about a plugin.
std::string m_category
The plugin category.
Definition: PluginInfo.h:75
static void initialize()
This is the startup function for the TerraLib Plugin module.
Definition: Module.cpp:61
void unload(const std::string &name)
It tries to unload a given plugin.
This is the concrete factory for C++ plugin engines.