## FsPlugin FsPlugin — A class for defining Farstream plugins |

## Functions

GObject * | fs_plugin_create_valist ()
GObject * | fs_plugin_create ()
#define | FS_INIT_PLUGIN()
gchar ** | fs_plugin_list_available ()

## Types and Values

struct | FsPlugin

## Includes

    #include <farstream/fs-plugin.h>

## Description

This class is a generic class to load GType plugins based on their name. With this simple class, you can only have one type per plugin.

## Functions

### fs_plugin_create_valist ()

    GObject *
    fs_plugin_create_valist (const gchar *name,
                             const gchar *type_suffix,
                             GError **error,
                             const gchar *first_property_name,
                             va_list var_args);

Loads the appropriate plugin if necessary and creates a GObject of the requested type

#### Parameters

name | The name of the plugin to load |
type_suffix | The type of plugin to load (normally "transmitter") |
error | location of a GError, or NULL if no error occured |
first_property_name | The name of the first property to be set on the object |
var_args | The rest of the arguments |

#### Returns

The object created (or NULL if there is an error).

[transfer full]

### fs_plugin_create ()

    GObject *
    fs_plugin_create (const gchar *name,
                      const gchar *type_suffix,
                      GError **error,
                      const gchar *first_property_name,
                      ...);

Loads the appropriate plugin if necessary and creates a GObject of the requested type

#### Parameters

name | The name of the plugin to load |
type_suffix | The type of plugin to load (normally "transmitter") |
error | location of a GError, or NULL if no error occured |
first_property_name | The name of the first property to be set on the object |
... | The NULL-terminated list of properties to set on the transmitter |

#### Returns

The object created (or NULL if there is an error).

[transfer full]

### FS_INIT_PLUGIN()

    #define             FS_INIT_PLUGIN(type_register_func)

This macro is used to declare Farstream plugins and must be used once in any farstream plugin.

#### Parameters

type_register_func | A function that register a GType and returns it |

### fs_plugin_list_available ()

    gchar **
    fs_plugin_list_available (const gchar *type_suffix);

Gets the list of all available plugins of a certain type

#### Parameters

type_suffix | Get list of plugins with this type suffix |

#### Returns

a newly allocated NULL terminated array of strings or `NULL` if no strings were found. It should be freed with `g_strfreev()`.

[transfer full]

## Types and Values

### struct FsPlugin

    struct FsPlugin {
      GTypeModule parent;
    };

This structure represents a plugin, it is opaque.

#### Members

GTypeModule `parent`; | the parent object |