`libnetdude` Manual
Prev |  | Next

# libnd_filter_factory

## Name

libnd_filter_factory --

## Synopsis

    void        (*LND_FilterCreateFunc)         (void);
    void        (*LND_FilterModifyFunc)         (LND_Filter *filter);
    void        (*LND_FilterFactoryFunc)        (LND_FilterFactory *factory,
                                                 void *user_data);
    LND_FilterFactory* libnd_filter_factory_new (const char *name,
                                                 LND_FilterCreateFunc create_func,
                                                 LND_FilterModifyFunc modify_func);
    void        libnd_filter_factory_free       (LND_FilterFactory *factory);
    gboolean    libnd_filter_factory_register   (LND_FilterFactory *factory);
    void        libnd_filter_factory_foreach    (LND_FilterFactoryFunc callback,
                                                 void *user_data);
    LND_FilterFactory* libnd_filter_factory_find
                                                (const char *name);

## Description

## Details

### LND_FilterCreateFunc ()

    void        (*LND_FilterCreateFunc)         (void);

### LND_FilterModifyFunc ()

    void        (*LND_FilterModifyFunc)         (LND_Filter *filter);

`filter` :

### LND_FilterFactoryFunc ()

    void        (*LND_FilterFactoryFunc)        (LND_FilterFactory *factory,
                                                 void *user_data);

This is the signature of callbacks passed to `libnd_filter_factory_foreach()`.

`factory` :

  currently iterated factory.

`user_data` :

  arbitrary data.

### libnd_filter_factory_new ()

    LND_FilterFactory* libnd_filter_factory_new (const char *name,
                                                 LND_FilterCreateFunc create_func,
                                                 LND_FilterModifyFunc modify_func);

`name` :

  name of the new factory.

`create_func` :

  implementation of the filter creation function.

`modify_func` :

  implementation of the filter modification function.

Returns :

  new filter factory.

### libnd_filter_factory_free ()

    void        libnd_filter_factory_free       (LND_FilterFactory *factory);

The factory releases the memory occupied by a filter factory.

`factory` :

  factory to free.

### libnd_filter_factory_register ()

    gboolean    libnd_filter_factory_register   (LND_FilterFactory *factory);

This function adds `factory` to the registry of known factories.

`factory` :

  filter factory to register.

Returns :

  TRUE if the factory was registered, FALSE if the factory was already known or in case of an error.

### libnd_filter_factory_foreach ()

    void        libnd_filter_factory_foreach    (LND_FilterFactoryFunc callback,
                                                 void *user_data);

The function iterates over all registered filter factories, calling `callback` for each of them.

`callback` :

  callback function to call for each registered factory.

`user_data` :

  arbitrary user data passed to `callback`.

### libnd_filter_factory_find ()

    LND_FilterFactory* libnd_filter_factory_find
                                                (const char *name);

`name` :

  name of the factory to find.

Returns :

  filter factory with matching name, NULL otherwise.

Prev | Home | Next
libnd_filter | Up | libnd_filter_registry