aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mm-plugin-manager.c29
-rw-r--r--src/mm-plugin-manager.h2
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 */