13
13
along with this program; if not, write to the Free Software
14
14
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
27
27
#include <boost/program_options.hpp>
29
#include <drizzled/option.h>
30
#include <drizzled/internal/m_string.h>
29
#include "drizzled/option.h"
30
#include "drizzled/internal/m_string.h"
32
#include <drizzled/plugin.h>
33
#include <drizzled/module/load_list.h>
34
#include <drizzled/module/library.h>
35
#include <drizzled/module/registry.h>
36
#include <drizzled/module/option_context.h>
37
#include <drizzled/sql_parse.h>
38
#include <drizzled/show.h>
39
#include <drizzled/cursor.h>
40
#include <drizzled/set_var.h>
41
#include <drizzled/session.h>
42
#include <drizzled/item/null.h>
43
#include <drizzled/error.h>
44
#include <drizzled/gettext.h>
45
#include <drizzled/errmsg_print.h>
46
#include <drizzled/strfunc.h>
47
#include <drizzled/pthread_globals.h>
48
#include <drizzled/util/tokenize.h>
32
#include "drizzled/plugin.h"
33
#include "drizzled/module/load_list.h"
34
#include "drizzled/module/library.h"
35
#include "drizzled/module/registry.h"
36
#include "drizzled/module/option_context.h"
37
#include "drizzled/sql_parse.h"
38
#include "drizzled/show.h"
39
#include "drizzled/cursor.h"
40
#include "drizzled/set_var.h"
41
#include "drizzled/session.h"
42
#include "drizzled/item/null.h"
43
#include "drizzled/error.h"
44
#include "drizzled/gettext.h"
45
#include "drizzled/errmsg_print.h"
46
#include "drizzled/strfunc.h"
47
#include "drizzled/pthread_globals.h"
48
#include "drizzled/util/tokenize.h"
50
50
#include <boost/foreach.hpp>
163
163
if (registry.find(library->getName()))
165
errmsg_printf(error::WARN, ER(ER_PLUGIN_EXISTS),
165
errmsg_printf(ERRMSG_LVL_WARN, ER(ER_PLUGIN_EXISTS),
166
166
library->getName().c_str());
174
174
if (registry.find(manifest->name))
176
errmsg_printf(error::ERROR,
176
errmsg_printf(ERRMSG_LVL_ERROR,
177
177
_("Plugin '%s' contains the name '%s' in its manifest, which "
178
178
"has already been registered.\n"),
179
179
library->getName().c_str(),
190
190
registry.add(tmp);
193
errmsg_printf(error::ERROR, ER(ER_CANT_FIND_DL_ENTRY),
193
errmsg_printf(ERRMSG_LVL_ERROR, ER(ER_CANT_FIND_DL_ENTRY),
194
194
library->getName().c_str());
221
221
if (module->getManifest().init(loading_context))
223
errmsg_printf(error::ERROR,
223
errmsg_printf(ERRMSG_LVL_ERROR,
224
224
_("Plugin '%s' init function returned error.\n"),
225
225
module->getName().c_str());
371
371
Now we initialize all remaining plugins
373
module::Registry::ModuleList module_list= registry.getList();
374
module::Registry::ModuleList::iterator modules= module_list.begin();
373
module::Registry::ModuleMap::const_iterator modules=
374
registry.getModulesMap().begin();
376
while (modules != module_list.end())
376
while (modules != registry.getModulesMap().end())
378
module::Module *module= *modules;
378
module::Module *module= (*modules).second;
380
380
if (module->isInited == false)
401
Window of opportunity for plugins to issue any queries with the database up and running but with no user's connected.
403
void plugin_startup_window(module::Registry ®istry, drizzled::Session &session)
405
BOOST_FOREACH(plugin::Plugin::map::value_type value, registry.getPluginsMap())
407
value.second->startup(session);
411
400
class PrunePlugin :
412
401
public unary_function<string, bool>
459
448
library= registry.addLibrary(plugin_name, builtin);
460
449
if (library == NULL)
462
errmsg_printf(error::ERROR,
451
errmsg_printf(ERRMSG_LVL_ERROR,
463
452
_("Couldn't load plugin library named '%s'.\n"),
464
453
plugin_name.c_str());
469
458
if (plugin_add(registry, tmp_root, library, long_options))
471
460
registry.removeLibrary(plugin_name);
472
errmsg_printf(error::ERROR,
461
errmsg_printf(ERRMSG_LVL_ERROR,
473
462
_("Couldn't load plugin named '%s'.\n"),
474
463
plugin_name.c_str());