PeasObjectModule

PeasObjectModule — Type module which allows extension registration.

Synopsis

                    PeasObjectModule;
                    PeasObjectModuleClass;
GObject *           (*PeasFactoryFunc)                  (guint n_parameters,
                                                         GParameter *parameters,
                                                         gpointer user_data);
void                peas_object_module_register_extension_factory
                                                        (PeasObjectModule *module,
                                                         GType iface_type,
                                                         PeasFactoryFunc factory_func,
                                                         gpointer user_data,
                                                         GDestroyNotify destroy_func);
void                peas_object_module_register_extension_type
                                                        (PeasObjectModule *module,
                                                         GType iface_type,
                                                         GType extension_type);

Description

PeasObjectModule is a subclass of GTypeModule which allows registration of extensions. It will be used by C extensions implementors to register extension implementations from within the peas_register_types module function.

Details

PeasObjectModule

typedef struct {
  GTypeModule parent;

  PeasObjectModulePrivate *priv;
} PeasObjectModule;

PeasObjectModuleClass

typedef struct {
  GTypeModuleClass parent_class;
} PeasObjectModuleClass;

PeasFactoryFunc ()

GObject *           (*PeasFactoryFunc)                  (guint n_parameters,
                                                         GParameter *parameters,
                                                         gpointer user_data);

peas_object_module_register_extension_factory ()

void                peas_object_module_register_extension_factory
                                                        (PeasObjectModule *module,
                                                         GType iface_type,
                                                         PeasFactoryFunc factory_func,
                                                         gpointer user_data,
                                                         GDestroyNotify destroy_func);

Register an implementation for an extension type through a factory function factory_func which will instantiate the extension when requested.

This method is primarily meant to be used by native bindings (like gtkmm), creatint native types which cannot be instantiated correctly using g_object_new(). For other uses, you will usually prefer relying on peas_object_module_register_extension_type().

module :

Your plugin's PeasObjectModule.

iface_type :

The GType of the extension interface you implement.

factory_func :

The PeasFactoryFunc that will create the iface_type instance when requested.

user_data :

Data to pass to func calls.

destroy_func :

A GDestroyNotify for user_data.

peas_object_module_register_extension_type ()

void                peas_object_module_register_extension_type
                                                        (PeasObjectModule *module,
                                                         GType iface_type,
                                                         GType extension_type);

Register an extension type which implements the extension interface iface_type.

module :

Your plugin's PeasObjectModule.

iface_type :

The GType of the extension interface you implement.

extension_type :

The GType of your implementation of iface_type.