factory: remove unneeded sync construction API
This commit is contained in:
@@ -15,10 +15,7 @@ struct _WpFactory
|
||||
GWeakRef core;
|
||||
gchar *name;
|
||||
GQuark name_quark;
|
||||
union {
|
||||
WpFactoryFunc sync;
|
||||
WpFactoryAsyncFunc async;
|
||||
} create_object;
|
||||
WpFactoryFunc create_object;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE (WpFactory, wp_factory, G_TYPE_OBJECT)
|
||||
@@ -48,29 +45,20 @@ wp_factory_class_init (WpFactoryClass * klass)
|
||||
object_class->finalize = wp_factory_finalize;
|
||||
}
|
||||
|
||||
static
|
||||
WpFactory * create_factory (WpCore * core, const gchar * name)
|
||||
WpFactory *
|
||||
wp_factory_new (WpCore * core, const gchar * name,
|
||||
WpFactoryFunc func)
|
||||
{
|
||||
WpFactory *f = NULL;
|
||||
|
||||
g_return_val_if_fail (func, NULL);
|
||||
g_return_val_if_fail (name != NULL && *name != '\0', NULL);
|
||||
|
||||
f = g_object_new (WP_TYPE_FACTORY, NULL);
|
||||
g_weak_ref_init (&f->core, core);
|
||||
f->name = g_strdup (name);
|
||||
f->name_quark = g_quark_from_string (f->name);
|
||||
|
||||
return f;
|
||||
}
|
||||
|
||||
WpFactory *
|
||||
wp_factory_new (WpCore * core, const gchar * name, WpFactoryFunc func)
|
||||
{
|
||||
WpFactory *f = NULL;
|
||||
g_return_val_if_fail (func, NULL);
|
||||
|
||||
f = create_factory(core, name);
|
||||
f->create_object.sync = func;
|
||||
f->create_object = func;
|
||||
|
||||
g_info ("WpFactory:%p new factory: %s", f, name);
|
||||
|
||||
@@ -79,23 +67,6 @@ wp_factory_new (WpCore * core, const gchar * name, WpFactoryFunc func)
|
||||
return f;
|
||||
}
|
||||
|
||||
WpFactory *
|
||||
wp_factory_new_async (WpCore * core, const gchar * name,
|
||||
WpFactoryAsyncFunc func)
|
||||
{
|
||||
WpFactory *f = NULL;
|
||||
g_return_val_if_fail (func, NULL);
|
||||
|
||||
f = create_factory(core, name);
|
||||
f->create_object.async = func;
|
||||
|
||||
g_info ("WpFactory:%p new async factory: %s", f, name);
|
||||
|
||||
wp_core_register_global (core, WP_GLOBAL_FACTORY, f, g_object_unref);
|
||||
|
||||
return f;
|
||||
}
|
||||
|
||||
const gchar *
|
||||
wp_factory_get_name (WpFactory * self)
|
||||
{
|
||||
@@ -114,23 +85,14 @@ wp_factory_get_core (WpFactory * self)
|
||||
return g_weak_ref_get (&self->core);
|
||||
}
|
||||
|
||||
gpointer
|
||||
wp_factory_create_object (WpFactory * self, GType type, GVariant * properties)
|
||||
void
|
||||
wp_factory_create_object (WpFactory * self, GType type,
|
||||
GVariant * properties, GAsyncReadyCallback ready, gpointer user_data)
|
||||
{
|
||||
g_debug ("WpFactory:%p (%s) create object of type %s", self, self->name,
|
||||
g_type_name (type));
|
||||
|
||||
return self->create_object.sync (self, type, properties);
|
||||
}
|
||||
|
||||
void
|
||||
wp_factory_create_object_async (WpFactory * self, GType type,
|
||||
GVariant * properties, GAsyncReadyCallback ready, gpointer user_data)
|
||||
{
|
||||
g_debug ("WpFactory:%p (%s) create object async of type %s", self, self->name,
|
||||
g_type_name (type));
|
||||
|
||||
self->create_object.async (self, type, properties, ready, user_data);
|
||||
self->create_object (self, type, properties, ready, user_data);
|
||||
}
|
||||
|
||||
struct find_factory_data
|
||||
@@ -160,20 +122,11 @@ wp_factory_find (WpCore * core, const gchar * name)
|
||||
return d.ret;
|
||||
}
|
||||
|
||||
gpointer
|
||||
wp_factory_make (WpCore * core, const gchar * name, GType type,
|
||||
GVariant * properties)
|
||||
{
|
||||
WpFactory *f = wp_factory_find (core, name);
|
||||
if (!f) return NULL;
|
||||
return wp_factory_create_object (f, type, properties);
|
||||
}
|
||||
|
||||
void
|
||||
wp_factory_make_async (WpCore * core, const gchar * name, GType type,
|
||||
wp_factory_make (WpCore * core, const gchar * name, GType type,
|
||||
GVariant * properties, GAsyncReadyCallback ready, gpointer user_data)
|
||||
{
|
||||
WpFactory *f = wp_factory_find (core, name);
|
||||
if (!f) return;
|
||||
wp_factory_create_object_async (f, type, properties, ready, user_data);
|
||||
wp_factory_create_object (f, type, properties, ready, user_data);
|
||||
}
|
||||
|
@@ -18,27 +18,19 @@ G_BEGIN_DECLS
|
||||
#define WP_TYPE_FACTORY (wp_factory_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (WpFactory, wp_factory, WP, FACTORY, GObject)
|
||||
|
||||
typedef gpointer (*WpFactoryFunc) (WpFactory * self, GType type,
|
||||
GVariant * properties);
|
||||
typedef void (*WpFactoryAsyncFunc) (WpFactory * self, GType type,
|
||||
typedef void (*WpFactoryFunc) (WpFactory * self, GType type,
|
||||
GVariant * properties, GAsyncReadyCallback ready, gpointer user_data);
|
||||
|
||||
WpFactory * wp_factory_new (WpCore * core, const gchar * name,
|
||||
WpFactoryFunc func);
|
||||
WpFactory * wp_factory_new_async (WpCore * core, const gchar * name,
|
||||
WpFactoryAsyncFunc func);
|
||||
|
||||
const gchar * wp_factory_get_name (WpFactory * self);
|
||||
WpCore * wp_factory_get_core (WpFactory * self);
|
||||
gpointer wp_factory_create_object (WpFactory * self, GType type,
|
||||
GVariant * properties);
|
||||
void wp_factory_create_object_async (WpFactory * self, GType type,
|
||||
void wp_factory_create_object (WpFactory * self, GType type,
|
||||
GVariant * properties, GAsyncReadyCallback ready, gpointer user_data);
|
||||
|
||||
WpFactory * wp_factory_find (WpCore * core, const gchar * name);
|
||||
gpointer wp_factory_make (WpCore * core, const gchar * name, GType type,
|
||||
GVariant * properties);
|
||||
void wp_factory_make_async (WpCore * core, const gchar * name, GType type,
|
||||
void wp_factory_make (WpCore * core, const gchar * name, GType type,
|
||||
GVariant * properties, GAsyncReadyCallback ready, gpointer user_data);
|
||||
|
||||
G_END_DECLS
|
||||
|
Reference in New Issue
Block a user