The GObject type system supports dynamic loading of types. The #GTypePlugin interface is used to handle the lifecycle of dynamically loaded types. It goes as follows:
See Source File