PeasObjectModule

PeasObjectModule — Type module which allows extension registration.

Synopsis

struct              PeasObjectModule;
struct              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);

Object Hierarchy

  GObject
   +----GTypeModule
         +----PeasObjectModule

Implemented Interfaces

PeasObjectModule implements GTypePlugin.

Properties

  "module-name"              gchar*                : Read / Write / Construct Only
  "path"                     gchar*                : Read / Write / Construct Only
  "resident"                 gboolean              : Read / Write / Construct Only

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

struct PeasObjectModule

struct PeasObjectModule;

The PeasObjectModule structure contains only private data and should only be accessed using the provided API.


struct PeasObjectModuleClass

struct PeasObjectModuleClass {
  GTypeModuleClass parent_class;
};

The class structure for PeasObjectModule.

GTypeModuleClass parent_class;

The parent class.

PeasFactoryFunc ()

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

A PeasFactoryFunc is a factory function which will instanciate a new extension of a given type. g_object_newv() is such a function.

It is used with peas_object_module_register_extension_factory().

n_parameters :

The number of paramteters.

parameters :

The parameters. [array length=n_parameters]

user_data :

Optional data to be passed to the function, or NULL.

Returns :

The created object. [transfer full]

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), creating 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.

Property Details

The "module-name" property

  "module-name"              gchar*                : Read / Write / Construct Only

The module to load for this object.

Default value: NULL


The "path" property

  "path"                     gchar*                : Read / Write / Construct Only

The path to use when loading this module.

Default value: NULL


The "resident" property

  "resident"                 gboolean              : Read / Write / Construct Only

Whether the module is resident.

Default value: FALSE