All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Module.cpp
Go to the documentation of this file.
1 /* Copyright (C) 2001-2009 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 // it initializes the Translator support for the TerraLib Plugin module
54 
55 // just to make our singleton alive!
57 }
58 
60 {
62 }
63 
65 {
66 #if TE_AUTOMATICALLY_LOAD_DEFAULT_XML_PLUGIN
68  pinfo.m_name = "TERRALIB_XERCES";
69  pinfo.m_category = "XML";
71  //pinfo.m_folder = "."; //the default search directories will be used
72  pinfo.m_resources.push_back(te::plugin::PluginInfo::Resource("SharedLibraryName", "terralib_xerces"));
73 
75 
77 #endif
78  TE_LOG_TRACE(TR_PLUGIN("TerraLib Plugin module initialized!"));
79 }
80 
82 {
84 
85 // then, clear all registered plugins
87 
88 #if TE_AUTOMATICALLY_LOAD_DEFAULT_XML_PLUGIN
90  {
92  }
93 #endif
94 
95  TE_LOG_TRACE(TR_PLUGIN("TerraLib Plugin module finalized!"));
96 }
97 
98 
99 
static te::plugin::AbstractPlugin * sg_xercesPlugins(0)
std::pair< std::string, std::string > Resource
Definition: PluginInfo.h:63
The basic information about a plugin.
Definition: PluginInfo.h:61
void unloadAll()
It try to unload all plugins.
The basic information about a plugin.
An abstract class for TerraLib Plugins.
This internal structure is used to model the basic information about a TerraLib module.
Definition: TerraLib.h:97
std::vector< Resource > m_resources
The list of resources used by plugin.
Definition: PluginInfo.h:82
static void initialize()
This is the startup function for the TerraLib Plugin module.
Definition: Module.cpp:64
#define TR_PLUGIN(message)
It marks a string in order to get translated. This is a special mark used in the Plugin module of Ter...
Definition: Config.h:117
TEPLUGINEXPORT void UnloadAllPluginsFromEngine(const std::string &engine)
It unloads all plugins from a given engine.
Definition: Utils.cpp:40
Utility functions for dealing with plugins.
This singleton defines the TerraLib Plugin module entry.
Definition: Module.h:41
void unload(const std::string &name)
It tries to unload a given plugin.
#define TE_CPPPLUGINENGINE_CODE
The plugin engine name for C++ plugins.
Definition: Config.h:68
const te::at::Module & sm_module
This is a helper function that will be automatically called when the TerraLib Annotation Text module ...
Definition: Module.cpp:53
void load(boost::ptr_vector< PluginInfo > &plugins, const bool start=true)
It tries to load all informed plugins.
#define TE_LOG_TRACE(msg)
Use this tag in order to log a message to a specified logger with the TRACE level.
Definition: Config.h:418
AbstractPlugin * detach(const std::string &pluginName)
It detaches the given plugin from the list of loaded plugins.
A singleton for managing plugins.
void remove(const std::string &moduleName)
It removes the module entry identified by the given name.
Definition: TerraLib.cpp:101
Module()
The singleton constructor is not callable outside the class.
Definition: Module.cpp:42
#define TE_PLUGIN_MODULE_NAME
The module name (identifier).
Definition: Config.h:42
static void finalize()
This is the cleanup function for the TerraLib Plugin module.
Definition: Module.cpp:81
#define TE_ADD_TEXT_DOMAIN(domain, domaindir, codeset)
It adds the given text domain located at domain-dir with the given codeset to the multilingual system...
Definition: Config.h:118
std::string m_engine
The type of plugin execution engine: C++, JAVA.
Definition: PluginInfo.h:71
#define TE_PLUGIN_TEXT_DOMAIN_DIR
It contains the translation catalog directory.
Definition: Config.h:110
#define TE_PLUGIN_TEXT_DOMAIN
It contains the name of the text domain used in the translation of messages in TerraLib Plugin module...
Definition: Config.h:103
This is the concrete factory for C++ plugin engines.
static Module & getInstance()
It returns a reference to the singleton instance.
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
This singleton defines the TerraLib Plugin module entry.
void add(const Module &m)
It registers the module in the TerraLib Platform.
Definition: TerraLib.cpp:95
std::string m_category
The plugin category.
Definition: PluginInfo.h:75