Lumiera 0.pre.04~rc.1
»edit your freedom«
Loading...
Searching...
No Matches
plugin.h
Go to the documentation of this file.
1/*
2 PLUGIN.h - Plugin loader
3
4 Copyright (C)
5 2008, Christian Thaeter <ct@pipapo.org>
6
7  **Lumiera** is free software; you can redistribute it and/or modify it
8  under the terms of the GNU General Public License as published by the
9  Free Software Foundation; either version 2 of the License, or (at your
10  option) any later version. See the file COPYING for further details.
11
12*/
13
14
41#ifndef COMMON_PLUGIN_H
42#define COMMON_PLUGIN_H
43
44#include "lib/psplay.h"
45#include "lib/error.h"
46
47#include "common/interface.h"
48
49#include <stdlib.h>
50#include <nobug.h>
51
52
56LUMIERA_ERROR_DECLARE(PLUGIN_REGISTER);
57LUMIERA_ERROR_DECLARE(PLUGIN_VERSION);
58
59
60
61
63typedef struct lumiera_plugin_struct lumiera_plugin;
64typedef lumiera_plugin* LumieraPlugin;
65
66
74lumiera_plugin_new (const char* name);
75
86
87
96lumiera_plugin_load (const char* plugin);
97
98
108int
110
111
119
125void*
127
128
135const char*
137
138
143void
145
146
151void
153
154
161unsigned
163
164
171lumiera_plugin_lookup (const char* name);
172
173
180int
181lumiera_plugin_discover (LumieraPlugin (*callback_load)(const char* plugin),
182 int (*callback_register) (LumieraPlugin));
183
184
185/* === psplay support functions === */
186
187int
188lumiera_plugin_cmp_fn (const void* keya, const void* keyb);
189
190const void*
192
193void
195
196
197
198#endif /*COMMON_PLUGIN_H*/
Lumiera error handling (C interface).
const char * lumiera_err
Definition error.h:48
#define LUMIERA_ERROR_DECLARE(err)
Forward declare an error constant.
Definition error.h:62
Lumiera interface macros and structures.
lumiera_interface * LumieraInterface
Definition interface.h:355
const char * name
Definition plugin.c:102
LumieraInterface plugin
Definition plugin.c:115
psplaynode node
Definition plugin.c:99
void lumiera_plugin_refdec(LumieraPlugin self)
Definition plugin.c:179
void lumiera_plugin_refinc(LumieraPlugin self)
Definition plugin.c:172
void lumiera_plugin_delete_fn(PSplaynode node)
Definition plugin.c:393
LumieraPlugin lumiera_plugin_lookup(const char *name)
Lookup a plugin handle in the pluginregistry.
Definition plugin.c:338
LumieraPlugin lumiera_plugin_load(const char *plugin)
Tries to load a plugin Creates a new plugin structure and tries to load and initialise the plugin.
Definition plugin.c:241
lumiera_plugin * LumieraPlugin
Definition plugin.h:64
void * lumiera_plugin_handle(LumieraPlugin self)
Query the plugin handle.
Definition plugin.c:157
int lumiera_plugin_register(LumieraPlugin self)
Register a plugin and its interfaces.
Definition plugin.c:260
const char * lumiera_plugin_name(LumieraPlugin self)
Query the plugin name The name is the path and filename under which it was loaded.
Definition plugin.c:165
lumiera_err lumiera_plugin_error(LumieraPlugin self)
Query the error state of a plugin.
Definition plugin.c:149
LumieraPlugin lumiera_plugin_init(LumieraPlugin self, void *handle, LumieraInterface plugin)
Definition plugin.c:139
unsigned lumiera_plugin_unload(LumieraPlugin self)
Tries to unload a plugin.
Definition plugin.c:297
int lumiera_plugin_discover(LumieraPlugin(*callback_load)(const char *plugin), int(*callback_register)(LumieraPlugin))
discover new plugins traverses the configured plugin paths and calls the callback_load function for a...
Definition plugin.c:187
const void * lumiera_plugin_key_fn(const PSplaynode node)
Definition plugin.c:386
LumieraPlugin lumiera_plugin_new(const char *name)
Allocates an preinitialises a plugin structure.
Definition plugin.c:123
int lumiera_plugin_cmp_fn(const void *keya, const void *keyb)
Definition plugin.c:379
Probabilistic splay tree.
psplaynode * PSplaynode
Definition psplay.h:40