## GgitObjectFactory GgitObjectFactory |

## Synopsis

                        GgitObjectFactory;
    struct              GgitObjectFactoryClass;
    GgitObjectFactory * ggit_object_factory_get_default     (void);
    void                ggit_object_factory_register        (GgitObjectFactory *factory,
                                                             GType basetype,
                                                             GType subtype);
    void                ggit_object_factory_unregister      (GgitObjectFactory *factory,
                                                             GType basetype,
                                                             GType subtype);
    GObject *           ggit_object_factory_construct       (GgitObjectFactory *factory,
                                                             GObjectClass *parent_class,
                                                             GType basetype,
                                                             guint n_construct_properties,
                                                             GObjectConstructParam *construct_properties);

## Object Hierarchy

      GObject
       +----GgitObjectFactory

## Description

## Details

### GgitObjectFactory

    typedef struct _GgitObjectFactory GgitObjectFactory;

Represents an object factory.

### struct GgitObjectFactoryClass

    struct GgitObjectFactoryClass {
    };

The class structure for GgitObjectFactoryClass.

### ggit_object_factory_get_default ()

    GgitObjectFactory * ggit_object_factory_get_default     (void);

Get the default type factory instance.

Returns : | a GgitObjectFactory. [transfer none]

### ggit_object_factory_register ()

    void                ggit_object_factory_register        (GgitObjectFactory *factory,
                                                             GType basetype,
                                                             GType subtype);

Register `subtype` as the instantiation class for `basetype`. Each time an object of type `basetype` is going to be created, an instance of `subtype` is created instead. `basetype` must be subclassed from GgitObjectFactoryBase.

`factory` : | a GgitObjectFactory.
`basetype` : | a GType.
`subtype` : | a GType.

### ggit_object_factory_unregister ()

    void                ggit_object_factory_unregister      (GgitObjectFactory *factory,
                                                             GType basetype,
                                                             GType subtype);

Unregister a subtype from the factory.

`factory` : | a GgitObjectFactory.
`basetype` : | a GType.
`subtype` : | a GType.

### ggit_object_factory_construct ()

    GObject *           ggit_object_factory_construct       (GgitObjectFactory *factory,
                                                             GObjectClass *parent_class,
                                                             GType basetype,
                                                             guint n_construct_properties,
                                                             GObjectConstructParam *construct_properties);

Construct a new object.

`factory` : | a GgitObjectFactory.
`parent_class` : | a GObjectClass.
`basetype` : | a GType.
`n_construct_properties` : | number of construct properties.
`construct_properties` : | (array length=n_construct_properties) a list of GObjectConstructParam.
Returns : | a GObject. [transfer full]