mirror of
https://github.com/ElementsProject/lightning.git
synced 2024-11-19 18:11:28 +01:00
39 lines
1.0 KiB
C
39 lines
1.0 KiB
C
|
#ifndef LIGHTNING_LIGHTNINGD_PLUGIN_H
|
||
|
#define LIGHTNING_LIGHTNINGD_PLUGIN_H
|
||
|
#include "config.h"
|
||
|
#include <ccan/take/take.h>
|
||
|
#include <ccan/tal/tal.h>
|
||
|
|
||
|
/**
|
||
|
* A collection of plugins, and some associated information.
|
||
|
*
|
||
|
* Mainly used as root context for calls in the plugin subsystem.
|
||
|
*/
|
||
|
struct plugins;
|
||
|
|
||
|
/**
|
||
|
* Create a new plugins context.
|
||
|
*/
|
||
|
struct plugins *plugins_new(const tal_t *ctx);
|
||
|
|
||
|
/**
|
||
|
* Initialize the registered plugins.
|
||
|
*
|
||
|
* Initialization includes spinning up the plugins, reading their
|
||
|
* manifest, and registering the JSON-RPC passthrough and command line
|
||
|
* arguments. In order to read the getmanifest reply from the plugins
|
||
|
* we spin up our own io_loop that exits once all plugins have
|
||
|
* responded.
|
||
|
*/
|
||
|
void plugins_init(struct plugins *plugins);
|
||
|
|
||
|
/**
|
||
|
* Register a plugin for initialization and execution.
|
||
|
*
|
||
|
* @param plugins: Plugin context
|
||
|
* @param path: The path of the executable for this plugin
|
||
|
*/
|
||
|
void plugin_register(struct plugins *plugins, const char* path TAKES);
|
||
|
|
||
|
#endif /* LIGHTNING_LIGHTNINGD_PLUGIN_H */
|