## GTypePlugin

GTypePlugin — An interface for dynamically loadable types

## Synopsis

    #include <gobject.h>

    struct      GTypePlugin;
    struct      GTypePluginClass;
    void        (*GTypePluginUse)               (GTypePlugin *plugin);
    void        (*GTypePluginUnuse)             (GTypePlugin *plugin);
    void        (*GTypePluginCompleteTypeInfo)  (GTypePlugin *plugin,
                                                 GType g_type,
                                                 GTypeInfo *info,
                                                 GTypeValueTable *value_table);
    void        (*GTypePluginCompleteInterfaceInfo)
                                                (GTypePlugin *plugin,
                                                 GType instance_type,
                                                 GType interface_type,
                                                 GInterfaceInfo *info);
    void        g_type_plugin_use               (GTypePlugin *plugin);
    void        g_type_plugin_unuse             (GTypePlugin *plugin);
    void        g_type_plugin_complete_type_info
                                                (GTypePlugin *plugin,
                                                 GType g_type,
                                                 GTypeInfo *info,
                                                 GTypeValueTable *value_table);
    void        g_type_plugin_complete_interface_info
                                                (GTypePlugin *plugin,
                                                 GType instance_type,
                                                 GType interface_type,
                                                 GInterfaceInfo *info);

## Description

## Details

### struct GTypePlugin

    struct GTypePlugin;

### struct GTypePluginClass

    struct GTypePluginClass {

      GTypeInterface		   base_iface;

      GTypePluginUse		   use_plugin;
      GTypePluginUnuse		   unuse_plugin;
      GTypePluginCompleteTypeInfo	   complete_type_info;
      GTypePluginCompleteInterfaceInfo complete_interface_info;
    };

### GTypePluginUse ()

    void        (*GTypePluginUse)               (GTypePlugin *plugin);

`plugin` : |

### GTypePluginUnuse ()

    void        (*GTypePluginUnuse)             (GTypePlugin *plugin);

`plugin` : |

### GTypePluginCompleteTypeInfo ()

    void        (*GTypePluginCompleteTypeInfo)  (GTypePlugin *plugin,
                                                 GType g_type,
                                                 GTypeInfo *info,
                                                 GTypeValueTable *value_table);

`plugin` : |
`g_type` : |
`info` : |
`value_table` : |

### GTypePluginCompleteInterfaceInfo ()

    void        (*GTypePluginCompleteInterfaceInfo)
                                                (GTypePlugin *plugin,
                                                 GType instance_type,
                                                 GType interface_type,
                                                 GInterfaceInfo *info);

`plugin` : |
`instance_type` : |
`interface_type` : |
`info` : |

### g_type_plugin_use ()

    void        g_type_plugin_use               (GTypePlugin *plugin);

`plugin` : |

### g_type_plugin_unuse ()

    void        g_type_plugin_unuse             (GTypePlugin *plugin);

`plugin` : |

### g_type_plugin_complete_type_info ()

    void        g_type_plugin_complete_type_info
                                                (GTypePlugin *plugin,
                                                 GType g_type,
                                                 GTypeInfo *info,
                                                 GTypeValueTable *value_table);

`plugin` : |
`g_type` : |
`info` : |
`value_table` : |

### g_type_plugin_complete_interface_info ()

    void        g_type_plugin_complete_interface_info
                                                (GTypePlugin *plugin,
                                                 GType instance_type,
                                                 GType interface_type,
                                                 GInterfaceInfo *info);

`plugin` : |
`instance_type` : |
`interface_type` : |
`info` : |