1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- /*
- * Copyright (C) 2008 Martin Willi
- * HSR Hochschule fuer Technik Rapperswil
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * for more details.
- */
- /**
- * @defgroup plugin plugin
- * @{ @ingroup plugins
- */
- #ifndef PLUGIN_H_
- #define PLUGIN_H_
- typedef struct plugin_t plugin_t;
- #include <library.h>
- #include <plugins/plugin_feature.h>
- /**
- * Interface definition of a plugin.
- */
- struct plugin_t {
- /**
- * Get the name of the plugin.
- *
- * @return plugin name
- */
- char* (*get_name)(plugin_t *this);
- /**
- * Get plugin features with dependencies.
- *
- * The returned array contains features provided by the plugin and
- * dependencies for that feature. See plugin_feature_t for details.
- *
- * @param features pointer receiving plugin features
- * @return number of features
- */
- int (*get_features)(plugin_t *this, plugin_feature_t *features[]);
- /**
- * Try to reload plugin configuration.
- *
- * @return TRUE if reloaded, FALSE if reloading not supporty by plugin
- */
- bool (*reload)(plugin_t *this);
- /**
- * Destroy a plugin instance.
- */
- void (*destroy)(plugin_t *this);
- };
- /**
- * Plugin constructor function definition.
- *
- * Each plugin has a constructor function. This function is called on daemon
- * startup to initialize each plugin.
- * The plugin function is named plugin_name_plugin_create().
- *
- * @return plugin_t instance
- */
- typedef plugin_t *(*plugin_constructor_t)(void);
- #endif /** PLUGIN_H_ @}*/
|