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