1
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
4
* Copyright (C) 2008 Sun Microsystems
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; version 2 of the License.
10
* This program 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 General Public License for more details.
15
* You should have received a copy of the GNU General Public License
16
* along with this program; if not, write to the Free Software
17
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21
* @TODO There is plugin.h and also sql_plugin.h. Ostensibly,
22
* it seems that the two files exist so that plugin.h can provide an
23
* external API for plugin developers and sql_plugin.h will provide
24
* and internal server API for dealing with those plugins.
26
* However, there are parts of plugin.h marked "INTERNAL USE ONLY" which
27
* seems to contradict the above...
29
* Let's figure out a better way of dividing the public and internal API
30
* and name the files more appropriately.
32
* Also, less #defines, more enums and bitmaps...
36
#ifndef DRIZZLE_SERVER_PLUGIN_H
37
#define DRIZZLE_SERVER_PLUGIN_H
39
#include <drizzled/plugin.h>
40
#include <drizzled/plugin/manifest.h>
41
#include <drizzled/plugin/library.h>
42
#include <drizzled/plugin/handle.h>
46
typedef struct st_mysql_lex_string LEX_STRING;
49
extern char *opt_plugin_load;
50
extern char *opt_plugin_dir_ptr;
51
extern char opt_plugin_dir[FN_REFLEN];
53
extern int plugin_init(drizzled::plugin::Registry &plugins,
54
int *argc, char **argv, int init_flags);
55
extern void plugin_shutdown(drizzled::plugin::Registry &plugins);
56
extern void my_print_help_inc_plugins(my_option *options);
57
extern bool plugin_is_ready(const LEX_STRING *name, int type);
58
extern bool mysql_install_plugin(Session *session, const LEX_STRING *name,
59
const LEX_STRING *dl);
60
extern bool mysql_uninstall_plugin(Session *session, const LEX_STRING *name);
61
extern void plugin_sessionvar_init(Session *session);
62
extern void plugin_sessionvar_cleanup(Session *session);
63
extern sys_var *intern_find_sys_var(const char *str, uint32_t, bool no_error);
65
#endif /* DRIZZLE_SERVER_PLUGIN_H */