New plugins system
[opsoft.git] / silentbob / templates / simple_plugin.cxx
bloba8362af5c335fea6c12a7af8d9e083abd4cb11e3
1 /*
2 * (c) Oleg Puchinin 2007
3 * graycardinalster@gmail.com
5 */
7 #include <stdio.h>
8 #include <stdlib.h>
9 #include <unistd.h>
10 #include <fcntl.h>
11 #include <gclib/gclib.h>
12 #include <gclib/gclib_c.h>
13 #include <mod.h>
14 #include <head.h>
15 #include <dbg.h>
17 extern "C" DArray * plugin_init (struct env_t *env);
18 struct env_t *ENV;
20 char simple_plugin_opt (DArray * d_opts, int * pos)
22 int count;
23 char * S;
25 if (! d_opts || ! pos)
26 return 0;
28 count = d_opts->get_size ();
29 S = d_opts->get (*pos);
30 if (EQ (S, "--simple_plugin")) {
31 if (++(*pos) >= count)
32 return 0; // Missed argument for option "--simple-plugin".
33 // Do somethings.
36 return 0;
39 char simple_plugin_opt2 (DArray * d_opts, int * pos)
41 char * S;
43 if (! d_opts || ! pos)
44 return 0;
46 S = d_opts->get (*pos);
47 if (EQ (S, "--simple_plugin")) {
48 // Do somethings at stage two.
51 return 0;
54 void simple_plugin_short_info ()
56 printf ("Simple plugin.");
59 void simple_plugin_long_info ()
61 printf ("Simple plugin.\n");
62 printf ("Version: 1.0\n");
63 printf ("options: --simple-plugin\n");
66 DArray * plugin_init (struct env_t *env)
68 DArray * Ret;
69 struct mod_feature * pm;
71 ENV = env;
72 Ret = new DArray (1);
73 pm = CNEW (mod_feature, 1);
74 memset (pm, 0, sizeof (mod_feature));
75 pm->mod.Type = TYPE_FEATURE;
76 pm->mod.Version = strdup ("1.0");
77 pm->mod.short_info = simple_plugin_short_info;
78 pm->mod.long_info = simple_plugin_long_info;
79 pm->opt = simple_plugin_opt;
80 pm->opt2 = simple_plugin_opt2;
82 Ret->add (LPCHAR (pm));
83 return Ret;