sgwdynspeed: add plugin
[olsrd.git] / lib / sgwdynspeed / src / olsrdPlugin.c
1 #include "olsrdPlugin.h"
2
3 /* Plugin includes */
4 #include "sgwDynSpeed.h"
5
6 /* OLSRD includes */
7 #include "olsr.h"
8
9 /* System includes */
10 #include <stdbool.h>
11
12 /*
13  * OLSR Entrypoints
14  */
15
16 /**
17  OLSR entrypoint to initialise the plugin.
18
19  @return
20  - 0 on fail
21  - 1 on success
22  */
23 int olsrd_plugin_init(void) {
24         bool retval = initSgwDynSpeed();
25         if (retval) {
26                 olsr_printf(0, "%s\n", SGWDYNSPEED_PLUGIN_NAME_LONG
27 #ifdef GIT_SHA
28                                 " (" GIT_SHA ")"
29 #endif
30                                 );
31         }
32         return (retval ? 1 : 0);
33 }
34
35 /**
36  OLSR entrypoint to retrieve the interface version supported by the plugin.
37
38  @return
39  the supported interface version
40  */
41 int olsrd_plugin_interface_version(void) {
42         return SGWDYNSPEED_PLUGIN_INTERFACE_VERSION;
43 }
44
45 /**
46  OLSR entrypoint to retrieve the plugin parameter configuration.
47
48  @param params
49  a pointer to a variable in which the function stores a pointer to the
50  plugin parameter configuration
51  @param size
52  a pointer to a variable in which the function stores the number of rows of the
53  plugin parameter configuration
54  */
55 void olsrd_get_plugin_parameters(const struct olsrd_plugin_parameters **params, int *size) {
56         *params = &plugin_parameters[0];
57         *size = ARRAYSIZE(plugin_parameters);
58 }
59
60 /*
61  * Shared Library Entrypoints
62  */
63
64 /**
65  Shared library entrypoint declaration for initialisation
66  */
67 static void __attribute__ ((constructor)) sgwDynSpeed_init(void);
68
69 /**
70  Shared library entrypoint declaration for destruction
71  */
72 static void __attribute__ ((destructor)) sgwDynSpeed_fini(void);
73
74 /**
75  Shared library entrypoint for initialisation
76  */
77 static void sgwDynSpeed_init(void) {
78 }
79
80 /**
81  Shared library entrypoint for destruction
82  */
83 static void sgwDynSpeed_fini(void) {
84         stopSgwDynSpeed();
85 }