ekg2  GIT master
Funkcje | Zmienne
Dokumentacja pliku plugins.c
#include "ekg2.h"
#include <gmodule.h>
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include "objects.h"
#include "abort.h"
Wykres zależności załączania dla plugins.c:

Funkcje

static gint plugin_register_compare (gconstpointer a, gconstpointer b)
 
static void plugins_add (plugin_t *pl)
 
void plugins_unlink (plugin_t *pl)
 
void query_free_data (query_t *data)
 
static void queries_list_add (query_t **lista, query_t *new_)
 
static void queries_list_remove (query_t **lista, query_t *elem)
 
void queries_list_destroy (query_t **lista)
 
void ekg2_dlinit (const gchar *argv0)
 
int ekg2_dlclose (GModule *plugin)
 
static GModule * ekg2_dlopen (const char *name)
 
static void * ekg2_dlsym (GModule *plugin, char *name)
 
int plugin_load (const char *name, int prio, int quiet)
 
plugin_tplugin_find (const char *name)
 
plugin_tplugin_find_uid (const char *uid)
 
int plugin_unload (plugin_t *p)
 
int plugin_register (plugin_t *p, int prio)
 
int plugin_unregister (plugin_t *p)
 
int plugin_var_find (plugin_t *pl, const char *name)
 
int plugin_var_add (plugin_t *pl, const char *name, int type, const char *value, int secret, plugin_notify_func_t *notify)
 
static void registered_query_free_data (query_def_t *data)
 
void registered_queries_free ()
 
static int query_register_common (const char *name, query_def_t **res)
 
int query_register (const char *name,...)
 
int query_register_const (const query_def_t *def)
 
int query_free (query_t *g)
 
query_tquery_connect (plugin_t *plugin, const char *name, query_handler_func_t *handler, void *data)
 
static int query_emit_inner (query_t *g, va_list ap)
 
int query_emit (plugin_t *plugin, const char *name,...)
 
static int query_compare (const query_t *data1, const query_t *data2)
 
void queries_reconnect ()
 
int have_plugin_of_class (plugin_class_t pclass)
 
int watch_timeout_set (watch_t *o, time_t v)
 
int plugin_abi_version (int plugin_abi_ver, const char *plugin_name)
 

Zmienne

GSList * plugins = NULL
 
gchar * rel_plugin_dir = NULL
 
list_t watches = NULL
 
query_tqueries [64]
 
query_def_tregistered_queries
 
int registered_queries_count = 0
 

Dokumentacja funkcji

◆ ekg2_dlclose()

int ekg2_dlclose ( GModule *  plugin)

ekg2_dlclose()

Close handler to dynamic loaded library.

Parametry
plugin- Handler to loaded library.
Zwraca
0 on success, else fail.

◆ ekg2_dlinit()

void ekg2_dlinit ( const gchar *  argv0)

◆ ekg2_dlopen()

static GModule* ekg2_dlopen ( const char *  name)
static

ekg2_dlopen()

Load dynamic library file from name

Do zrobienia:
Think more about flags for dlopen() [was: RTLD_LAZY | RTLD_GLOBAL]
Parametry
name- Full path of library to load.
Zwraca
Pointer to the loaded library, or NULL if fail.

◆ ekg2_dlsym()

static void* ekg2_dlsym ( GModule *  plugin,
char *  name 
)
static

ekg2_dlsym()

Get symbol with name from loaded dynamic library.

Parametry
plugin- Pointer to the loaded library.
name- Name of symbol to lookup.
Zwraca
Address of symbol or NULL if error occur.

◆ have_plugin_of_class()

int have_plugin_of_class ( plugin_class_t  pclass)

have_plugin_of_class()

Check if we have loaded plugin from pclass

Parametry
pclass
Zwraca
1 - If such plugin was founded
else 0

◆ plugin_abi_version()

int plugin_abi_version ( int  plugin_abi_ver,
const char *  plugin_name 
)

◆ plugin_find()

plugin_t* plugin_find ( const char *  name)

plugin_find()

Find plugin by name

Parametry
name- name of plugin_t
Zwraca
plugin_t with given name, or NULL if not found.

◆ plugin_find_uid()

plugin_t* plugin_find_uid ( const char *  uid)

plugin_find_uid()

Find PLUGIN_PROTOCOL plugin which can handle uid

Do zrobienia:
used only by session_add() in session.c move it there?
Zobacz również
valid_plugin_uid() - For function to check if given plugin can handle given uid
Zwraca
If such plugin was founded return it, or NULL if not found.

◆ plugin_load()

int plugin_load ( const char *  name,
int  prio,
int  quiet 
)

◆ plugin_register()

int plugin_register ( plugin_t p,
int  prio 
)

◆ plugin_register_compare()

static gint plugin_register_compare ( gconstpointer  a,
gconstpointer  b 
)
static

◆ plugin_unload()

int plugin_unload ( plugin_t p)

◆ plugin_unregister()

int plugin_unregister ( plugin_t p)

◆ plugin_var_add()

int plugin_var_add ( plugin_t pl,
const char *  name,
int  type,
const char *  value,
int  secret,
plugin_notify_func_t notify 
)

◆ plugin_var_find()

int plugin_var_find ( plugin_t pl,
const char *  name 
)

plugin_var_find()

it looks for given variable name in given plugin

Parametry
pl- plugin
name- variable name

returns sequence number+1 of variable if found, else 0

◆ plugins_add()

static void plugins_add ( plugin_t pl)
static

◆ plugins_unlink()

void plugins_unlink ( plugin_t pl)

◆ queries_list_add()

static void queries_list_add ( query_t **  lista,
query_t new_ 
)
static

◆ queries_list_destroy()

void queries_list_destroy ( query_t **  lista)

◆ queries_list_remove()

static void queries_list_remove ( query_t **  lista,
query_t elem 
)
static

◆ queries_reconnect()

void queries_reconnect ( )

queries_reconnect()

Reconnect (resort) all queries, e.g. after plugin prio change.

◆ query_compare()

static int query_compare ( const query_t data1,
const query_t data2 
)
static

◆ query_connect()

query_t* query_connect ( plugin_t plugin,
const char *  name,
query_handler_func_t handler,
void *  data 
)

◆ query_emit()

int query_emit ( plugin_t plugin,
const char *  name,
  ... 
)

◆ query_emit_inner()

static int query_emit_inner ( query_t g,
va_list  ap 
)
static

◆ query_free()

int query_free ( query_t g)

◆ query_free_data()

void query_free_data ( query_t data)

◆ query_register()

int query_register ( const char *  name,
  ... 
)

◆ query_register_common()

static int query_register_common ( const char *  name,
query_def_t **  res 
)
static

◆ query_register_const()

int query_register_const ( const query_def_t def)

◆ registered_queries_free()

void registered_queries_free ( )

◆ registered_query_free_data()

static void registered_query_free_data ( query_def_t data)
static

◆ watch_timeout_set()

int watch_timeout_set ( watch_t o,
time_t  v 
)

Dokumentacja zmiennych

◆ plugins

GSList* plugins = NULL

◆ queries

query_t* queries[64]

◆ registered_queries

query_def_t* registered_queries

◆ registered_queries_count

int registered_queries_count = 0

◆ rel_plugin_dir

gchar* rel_plugin_dir = NULL

◆ watches

list_t watches = NULL