~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/module/loader.cc

  • Committer: Lee Bieber
  • Date: 2011-01-15 03:08:27 UTC
  • mfrom: (1994.5.38 doc)
  • mto: This revision was merged to the branch mainline in revision 2087.
  • Revision ID: kalebral@gmail.com-20110115030827-0h9s99kiknrmt9ti
Merge Stewart - some documentation clean up

Show diffs side-by-side

added added

removed removed

Lines of Context:
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 */
15
15
 
16
 
#include <config.h>
 
16
#include "config.h"
17
17
 
18
18
#include <dlfcn.h>
19
19
 
26
26
 
27
27
#include <boost/program_options.hpp>
28
28
 
29
 
#include <drizzled/option.h>
30
 
#include <drizzled/internal/m_string.h>
 
29
#include "drizzled/option.h"
 
30
#include "drizzled/internal/m_string.h"
31
31
 
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"
49
49
 
50
50
#include <boost/foreach.hpp>
51
51
 
162
162
 
163
163
  if (registry.find(library->getName()))
164
164
  {
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());
167
167
    return false;
168
168
  }
173
173
 
174
174
  if (registry.find(manifest->name))
175
175
  {
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);
191
191
    return false;
192
192
  }
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());
195
195
  return true;
196
196
}
220
220
  {
221
221
    if (module->getManifest().init(loading_context))
222
222
    {
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());
226
226
      return true;
370
370
  /*
371
371
    Now we initialize all remaining plugins
372
372
  */
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();
375
375
    
376
 
  while (modules != module_list.end())
 
376
  while (modules != registry.getModulesMap().end())
377
377
  {
378
 
    module::Module *module= *modules;
 
378
    module::Module *module= (*modules).second;
379
379
    ++modules;
380
380
    if (module->isInited == false)
381
381
    {
397
397
  return false;
398
398
}
399
399
 
400
 
/*
401
 
  Window of opportunity for plugins to issue any queries with the database up and running but with no user's connected.
402
 
*/
403
 
void plugin_startup_window(module::Registry &registry, drizzled::Session &session)
404
 
{
405
 
  BOOST_FOREACH(plugin::Plugin::map::value_type value, registry.getPluginsMap())
406
 
  {
407
 
    value.second->startup(session);
408
 
  }
409
 
}
410
 
 
411
400
class PrunePlugin :
412
401
  public unary_function<string, bool>
413
402
{
459
448
    library= registry.addLibrary(plugin_name, builtin);
460
449
    if (library == NULL)
461
450
    {
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());
465
454
      return true;
469
458
    if (plugin_add(registry, tmp_root, library, long_options))
470
459
    {
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());
475
464
      return true;