diff options
-rw-r--r-- | src/mm-plugin-manager.c | 29 | ||||
-rw-r--r-- | src/mm-plugin-manager.h | 2 |
2 files changed, 27 insertions, 4 deletions
diff --git a/src/mm-plugin-manager.c b/src/mm-plugin-manager.c index 6a32af84..e007887b 100644 --- a/src/mm-plugin-manager.c +++ b/src/mm-plugin-manager.c @@ -16,18 +16,27 @@ #include <string.h> #include <ctype.h> +#include <gio/gio.h> + #include "mm-plugin-manager.h" -G_DEFINE_TYPE (MMPluginManager, mm_plugin_manager, G_TYPE_OBJECT); +static void initable_iface_init (GInitableIface *iface); + +G_DEFINE_TYPE_EXTENDED (MMPluginManager, mm_plugin_manager, G_TYPE_OBJECT, 0, + G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, + initable_iface_init)); struct _MMPluginManagerPrivate { gpointer dummy; }; MMPluginManager * -mm_plugin_manager_new (void) +mm_plugin_manager_new (GError **error) { - return g_object_new (MM_TYPE_PLUGIN_MANAGER, NULL); + return g_initable_new (MM_TYPE_PLUGIN_MANAGER, + NULL, + error, + NULL); } static void @@ -39,6 +48,14 @@ mm_plugin_manager_init (MMPluginManager *manager) MMPluginManagerPrivate); } +static gboolean +initable_init (GInitable *initable, + GCancellable *cancellable, + GError **error) +{ + return TRUE; +} + static void finalize (GObject *object) { @@ -46,6 +63,12 @@ finalize (GObject *object) } static void +initable_iface_init (GInitableIface *iface) +{ + iface->init = initable_init; +} + +static void mm_plugin_manager_class_init (MMPluginManagerClass *manager_class) { GObjectClass *object_class = G_OBJECT_CLASS (manager_class); diff --git a/src/mm-plugin-manager.h b/src/mm-plugin-manager.h index c70592da..906c7ef3 100644 --- a/src/mm-plugin-manager.h +++ b/src/mm-plugin-manager.h @@ -38,6 +38,6 @@ typedef struct { GType mm_plugin_manager_get_type (void); -MMPluginManager *mm_plugin_manager_new (void); +MMPluginManager *mm_plugin_manager_new (GError **error); #endif /* MM_PLUGIN_MANAGER_H */ |