1 #include <glib.h>
2 #include <gmodule.h>
3 
4 #include <cutter/cut-module-impl.h>
5 #include <cutter/cut-module-factory.h>
6 #include <cutter/cut-test.h>
7 
8 static gchar *function_name = NULL;
9 
10 #define CUT_TYPE_MODULE_FACTORY_TYPE1_TEST1            cut_type_module_factory_type1_test1
11 #define CUT_MODULE_FACTORY_TYPE1_TEST1(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), CUT_TYPE_MODULE_FACTORY_TYPE1_TEST1, CutModuleFactoryType1Test1))
12 #define CUT_MODULE_FACTORY_TYPE1_TEST1_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), CUT_TYPE_MODULE_FACTORY_TYPE1_TEST1, CutModuleFactoryType1Test1Class))
13 #define CUT_IS_MODULE_FACTORY_TYPE1_TEST1(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CUT_TYPE_MODULE_FACTORY_TYPE1_TEST1))
14 #define CUT_IS_MODULE_FACTORY_TYPE1_TEST1_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CUT_TYPE_MODULE_FACTORY_TYPE1_TEST1))
15 #define CUT_MODULE_FACTORY_TYPE1_TEST1_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), CUT_TYPE_MODULE_FACTORY_TYPE1_TEST1, CutModuleFactoryType1Test1Class))
16 
17 typedef struct _CutModuleFactoryType1Test1 CutModuleFactoryType1Test1;
18 typedef struct _CutModuleFactoryType1Test1Class CutModuleFactoryType1Test1Class;
19 
20 struct _CutModuleFactoryType1Test1
21 {
22     CutModuleFactory     object;
23 };
24 
25 struct _CutModuleFactoryType1Test1Class
26 {
27     CutModuleFactoryClass parent_class;
28 };
29 
30 static GType cut_type_module_factory_type1_test1 = 0;
31 static CutModuleFactoryClass *parent_class;
32 
33 static void       set_option_group (CutModuleFactory *factory,
34                                     GOptionContext   *context);
35 static GObject   *create           (CutModuleFactory *factory);
36 
37 static void
class_init(CutModuleFactoryClass * klass)38 class_init (CutModuleFactoryClass *klass)
39 {
40     CutModuleFactoryClass *factory_class;
41 
42     parent_class = g_type_class_peek_parent(klass);
43     factory_class  = CUT_MODULE_FACTORY_CLASS(klass);
44 
45     factory_class->set_option_group = set_option_group;
46     factory_class->create           = create;
47 }
48 
49 static void
init(CutModuleFactoryType1Test1 * type1_test1)50 init (CutModuleFactoryType1Test1 *type1_test1)
51 {
52 }
53 
54 static void
register_type(GTypeModule * type_module)55 register_type (GTypeModule *type_module)
56 {
57     static const GTypeInfo info =
58         {
59             sizeof (CutModuleFactoryType1Test1Class),
60             (GBaseInitFunc) NULL,
61             (GBaseFinalizeFunc) NULL,
62             (GClassInitFunc) class_init,
63             NULL,           /* class_finalize */
64             NULL,           /* class_data */
65             sizeof(CutModuleFactoryType1Test1),
66             0,
67             (GInstanceInitFunc) init,
68         };
69 
70     cut_type_module_factory_type1_test1 =
71         g_type_module_register_type(type_module,
72                                     CUT_TYPE_MODULE_FACTORY,
73                                     "CutModuleFactoryType1Test1",
74                                     &info, 0);
75 }
76 
77 G_MODULE_EXPORT GList *
CUT_MODULE_IMPL_INIT(GTypeModule * type_module)78 CUT_MODULE_IMPL_INIT (GTypeModule *type_module)
79 {
80     GList *registered_types = NULL;
81 
82     register_type(type_module);
83     if (cut_type_module_factory_type1_test1)
84         registered_types =
85             g_list_prepend(registered_types,
86                            (gchar *)g_type_name(cut_type_module_factory_type1_test1));
87 
88     return registered_types;
89 }
90 
91 G_MODULE_EXPORT void
CUT_MODULE_IMPL_EXIT(void)92 CUT_MODULE_IMPL_EXIT (void)
93 {
94 }
95 
96 G_MODULE_EXPORT GObject *
CUT_MODULE_IMPL_INSTANTIATE(const gchar * first_property,va_list var_args)97 CUT_MODULE_IMPL_INSTANTIATE (const gchar *first_property, va_list var_args)
98 {
99     return g_object_new_valist(CUT_TYPE_MODULE_FACTORY_TYPE1_TEST1, first_property, var_args);
100 }
101 
102 static void
set_option_group(CutModuleFactory * factory,GOptionContext * context)103 set_option_group (CutModuleFactory *factory, GOptionContext *context)
104 {
105     GOptionGroup *group;
106     GOptionEntry entries[] = {
107         {"function", 'f', 0, G_OPTION_ARG_STRING, &function_name,
108          "Set function name", "FUNCTION_NAME"},
109         {NULL}
110     };
111 
112     group = g_option_group_new(("type1-module"),
113                                ("Type1 Module Options"),
114                                ("TYpe1 Module Options"),
115                                factory, NULL);
116     g_option_group_add_entries(group, entries);
117     g_option_context_add_group(context, group);
118 }
119 
120 GObject *
create(CutModuleFactory * factory)121 create (CutModuleFactory *factory)
122 {
123     return g_object_new(CUT_TYPE_TEST,
124                         "name", function_name,
125                         NULL);
126 }
127 
128 /*
129 vi:ts=4:nowrap:ai:expandtab:sw=4
130 */
131 
132