## IAnjutaLoader IAnjutaLoader — Interface to load file or stream |

## Stability Level

Unstable, unless otherwise indicated

## Synopsis

    #include <libanjuta/interfaces/ianjuta-loader.h>

    #define             IANJUTA_LOADER_ERROR
                        IAnjutaLoader;
                        IAnjutaLoaderIface;
    GQuark              ianjuta_loader_error_quark          (void);
    GList*              ianjuta_loader_find_plugins         (IAnjutaLoader *obj,
                                                             GError **err);

## Object Hierarchy

      GInterface
       +----IAnjutaLoader

## Prerequisites

IAnjutaLoader requires GObject.

## Known Derived Interfaces

IAnjutaLoader is required by IAnjutaFileLoader and IAnjutaStreamLoader.

## Description

Loaders can deterime correct plugin to open a file or stream. They themselves can not load it, but will correctly redirect the request to an implementor of IAnjutaFile, IAnjutaFileSavable, IAnjutaStream or IAnjutaStreamSavable, depending on the mime-type, meta-type or any other requirements.

## Details

### IANJUTA_LOADER_ERROR

    #define IANJUTA_LOADER_ERROR ianjuta_loader_error_quark()

### IAnjutaLoader

    typedef struct _IAnjutaLoader IAnjutaLoader;

### IAnjutaLoaderIface

    typedef struct {
    	GTypeInterface g_iface;

    	GList* (*find_plugins) (IAnjutaLoader *obj, GError **err);
    } IAnjutaLoaderIface;

### ianjuta_loader_error_quark ()

    GQuark              ianjuta_loader_error_quark          (void);

Returns : |

### ianjuta_loader_find_plugins ()

    GList*              ianjuta_loader_find_plugins         (IAnjutaLoader *obj,
                                                             GError **err);

`obj` : | Self
`err` : | Error propagation and reporting.
Returns : | all plugins supporting loader interface.