domain-control: added domain-control plugin (modified decision-proto).
[profile/ivi/murphy.git] / src / plugins / decision-proto / plugin-decision.c
1 #include <murphy/common/macros.h>
2
3 #include <murphy/core/plugin.h>
4 #include <murphy/core/console.h>
5
6 #include "decision-types.h"
7 #include "decision.h"
8 #include "client.h"
9
10
11 static int plugin_init(mrp_plugin_t *plugin)
12 {
13     plugin->data = create_decision(plugin->ctx, MRP_DEFAULT_PEP_ADDRESS);
14
15     return (plugin->data != NULL);
16 }
17
18
19 static void plugin_exit(mrp_plugin_t *plugin)
20 {
21     pdp_t *pdp = (pdp_t *)plugin->data;
22
23     destroy_decision(pdp);
24 }
25
26
27 static void cmd_cb(mrp_console_t *c, void *user_data, int argc, char **argv)
28 {
29     MRP_UNUSED(user_data);
30     MRP_UNUSED(argc);
31     MRP_UNUSED(argv);
32
33     mrp_console_printf(c, "decision:%s() called...\n", __FUNCTION__);
34 }
35
36
37 #define PLUGIN_DESCRIPTION "Murphy decision making plugin prototype."
38 #define PLUGIN_VERSION     MRP_VERSION_INT(0, 0, 1)
39 #define PLUGIN_HELP        "TODO..."
40 #define PLUGIN_AUTHORS     "Aku Ankka <aku.ankka@ankkalinna.org>"
41
42 MRP_CONSOLE_GROUP(plugin_commands, "decision", NULL, NULL, {
43         MRP_TOKENIZED_CMD("cmd", cmd_cb, TRUE,
44                           "cmd [args]", "a command", "A command..."),
45 });
46
47 MURPHY_REGISTER_PLUGIN("decision-proto",
48                        PLUGIN_VERSION, PLUGIN_DESCRIPTION,
49                        PLUGIN_AUTHORS, PLUGIN_HELP, MRP_SINGLETON,
50                        plugin_init, plugin_exit,
51                        NULL, 0, /* plugin argument table */
52                        NULL, 0, /* exported methods */
53                        NULL, 0, /* imported methods */
54                        &plugin_commands);