## AnjutaPluginDescription AnjutaPluginDescription — Plugin description from .plugin file |

## Stability Level

Unstable, unless otherwise indicated

## Synopsis

    #include <libanjuta/anjuta-plugin-description.h>

    #define             ANJUTA_PLUGIN_DESCRIPTION_PARSE_ERROR
                        AnjutaPluginDescription;
    void                (*AnjutaPluginDescriptionLineFunc)  (AnjutaPluginDescription *df,
                                                             const gchar *key,
                                                             const gchar *locale,
                                                             const gchar *value,
                                                             gpointer data);
    enum                AnjutaPluginDescriptionParseError;
    void                (*AnjutaPluginDescriptionSectionFunc)
                                                            (AnjutaPluginDescription *df,
                                                             const gchar *name,
                                                             gpointer user_data);
    void                anjuta_plugin_description_foreach_key
                                                            (AnjutaPluginDescription *df,
                                                             const gchar *section_name,
                                                             gboolean include_localized,
                                                             AnjutaPluginDescriptionLineFunc func,
                                                             gpointer user_data);
    void                anjuta_plugin_description_foreach_section
                                                            (AnjutaPluginDescription *df,
                                                             AnjutaPluginDescriptionSectionFunc func,
                                                             gpointer user_data);
    void                anjuta_plugin_description_free      (AnjutaPluginDescription *df);
    gboolean            anjuta_plugin_description_get_boolean
                                                            (AnjutaPluginDescription *df,
                                                             const gchar *section,
                                                             const gchar *keyname,
                                                             gboolean *val);
    gboolean            anjuta_plugin_description_get_integer
                                                            (AnjutaPluginDescription *df,
                                                             const gchar *section,
                                                             const gchar *keyname,
                                                             gint *val);
    gboolean            anjuta_plugin_description_get_locale_string
                                                            (AnjutaPluginDescription *df,
                                                             const gchar *section,
                                                             const gchar *keyname,
                                                             gchar **val);
    gboolean            anjuta_plugin_description_get_raw   (AnjutaPluginDescription *df,
                                                             const gchar *section_name,
                                                             const gchar *keyname,
                                                             const gchar *locale,
                                                             gchar **val);
    gboolean            anjuta_plugin_description_get_string
                                                            (AnjutaPluginDescription *df,
                                                             const gchar *section,
                                                             const gchar *keyname,
                                                             gchar **val);
    AnjutaPluginDescription * anjuta_plugin_description_new (const gchar *filename,
                                                             GError **error);
    AnjutaPluginDescription * anjuta_plugin_description_new_from_string
                                                            (gchar *data,
                                                             GError **error);
    GQuark              anjuta_plugin_description_parse_error_quark
                                                            (void);
    gchar *             anjuta_plugin_description_to_string (AnjutaPluginDescription *df);

## Description

## Details

### ANJUTA_PLUGIN_DESCRIPTION_PARSE_ERROR

    #define             ANJUTA_PLUGIN_DESCRIPTION_PARSE_ERROR

### AnjutaPluginDescription

    typedef struct _AnjutaPluginDescription AnjutaPluginDescription;

### AnjutaPluginDescriptionLineFunc ()

    void                (*AnjutaPluginDescriptionLineFunc)  (AnjutaPluginDescription *df,
                                                             const gchar *key,
                                                             const gchar *locale,
                                                             const gchar *value,
                                                             gpointer data);

### enum AnjutaPluginDescriptionParseError

    typedef enum {
      ANJUTA_PLUGIN_DESCRIPTION_PARSE_ERROR_INVALID_SYNTAX,
      ANJUTA_PLUGIN_DESCRIPTION_PARSE_ERROR_INVALID_ESCAPES,
      ANJUTA_PLUGIN_DESCRIPTION_PARSE_ERROR_INVALID_CHARS
    } AnjutaPluginDescriptionParseError;

Possible errors when parsing a plugin file

`ANJUTA_PLUGIN_DESCRIPTION_PARSE_ERROR_INVALID_SYNTAX` | Syntax of plugin file is invalid
`ANJUTA_PLUGIN_DESCRIPTION_PARSE_ERROR_INVALID_ESCAPES` | Invalid escape sequence
`ANJUTA_PLUGIN_DESCRIPTION_PARSE_ERROR_INVALID_CHARS` | Invalid characters

### AnjutaPluginDescriptionSectionFunc ()

    void                (*AnjutaPluginDescriptionSectionFunc)
                                                            (AnjutaPluginDescription *df,
                                                             const gchar *name,
                                                             gpointer user_data);

### anjuta_plugin_description_foreach_key ()

    void                anjuta_plugin_description_foreach_key
                                                            (AnjutaPluginDescription *df,
                                                             const gchar *section_name,
                                                             gboolean include_localized,
                                                             AnjutaPluginDescriptionLineFunc func,
                                                             gpointer user_data);

Calls `func` for each of the keys in the given section. `include_localized`, if set to TRUE will make it call `func` for the localized keys also, otherwise only one call is made for the key in current locale.

`df` : | an AnjutaPluginDescription object.
`section_name` : | Name of the section.
`include_localized` : | Whether each localized key should be called separately.
`func` : | The callback function.
`user_data` : | User data to pass to `func`.

### anjuta_plugin_description_foreach_section ()

    void                anjuta_plugin_description_foreach_section
                                                            (AnjutaPluginDescription *df,
                                                             AnjutaPluginDescriptionSectionFunc func,
                                                             gpointer user_data);

Calls `func` for each of the sections in the description.

`df` : | an AnjutaPluginDescription object.
`func` : | Callback function.
`user_data` : | User data to pass to `func`.

### anjuta_plugin_description_free ()

    void                anjuta_plugin_description_free      (AnjutaPluginDescription *df);

Frees the AnjutaPluginDescription instance.

`df` : | an AnjutaPluginDescription object

### anjuta_plugin_description_get_boolean ()

    gboolean            anjuta_plugin_description_get_boolean
                                                            (AnjutaPluginDescription *df,
                                                             const gchar *section,
                                                             const gchar *keyname,
                                                             gboolean *val);

Returns the value of key as boolean in the given section.

`df` : | an AnjutaPluginDescription object.
`section` : | Section name.
`keyname` : | Key name.
`val` : | Pointer to value to store retured value.
Returns : | TRUE if sucessful, otherwise FALSE.

### anjuta_plugin_description_get_integer ()

    gboolean            anjuta_plugin_description_get_integer
                                                            (AnjutaPluginDescription *df,
                                                             const gchar *section,
                                                             const gchar *keyname,
                                                             gint *val);

Returns the value of key as integer in the given section.

`df` : | an AnjutaPluginDescription object.
`section` : | Section name.
`keyname` : | Key name.
`val` : | Pointer to value to store retured value.
Returns : | TRUE if sucessful, otherwise FALSE.

### anjuta_plugin_description_get_locale_string ()

    gboolean            anjuta_plugin_description_get_locale_string
                                                            (AnjutaPluginDescription *df,
                                                             const gchar *section,
                                                             const gchar *keyname,
                                                             gchar **val);

Returns the value of key in the given section in current locale.

`df` : | an AnjutaPluginDescription object.
`section` : | Section name.
`keyname` : | Key name.
`val` : | Pointer to value to store retured value.
Returns : | TRUE if sucessful, otherwise FALSE.

### anjuta_plugin_description_get_raw ()

    gboolean            anjuta_plugin_description_get_raw   (AnjutaPluginDescription *df,
                                                             const gchar *section_name,
                                                             const gchar *keyname,
                                                             const gchar *locale,
                                                             gchar **val);

Retrieves the value of a key (in the given section) for the given locale. The value returned in `val` must be freed after use.

`df` : | an AnjutaPluginDescription object.
`section_name` : | Name of the section.
`keyname` : | Name of the key.
`locale` : | The locale for which the value is to be retrieved.
`val` : | Pointer to the variable to store the string value.
Returns : | TRUE if sucessful, otherwise FALSE.

### anjuta_plugin_description_get_string ()

    gboolean            anjuta_plugin_description_get_string
                                                            (AnjutaPluginDescription *df,
                                                             const gchar *section,
                                                             const gchar *keyname,
                                                             gchar **val);

Returns the value of key in the given section.

`df` : | an AnjutaPluginDescription object.
`section` : | Section name.
`keyname` : | Key name.
`val` : | Pointer to value to store retured value.
Returns : | TRUE if sucessful, otherwise FALSE.

### anjuta_plugin_description_new ()

    AnjutaPluginDescription * anjuta_plugin_description_new (const gchar *filename,
                                                             GError **error);

### anjuta_plugin_description_new_from_string ()

    AnjutaPluginDescription * anjuta_plugin_description_new_from_string
                                                            (gchar *data,
                                                             GError **error);

Parses the given plugin description data (usally read from the plugin description file and creates an instance of AnjutaPluginDescription. The format of the content string is similar to .ini format.

`data` : | The data to parse. The format of the data is .ini style.
Returns : | a new AnjutaPluginDescription object

### anjuta_plugin_description_parse_error_quark ()

    GQuark              anjuta_plugin_description_parse_error_quark
                                                            (void);

### anjuta_plugin_description_to_string ()

    gchar *             anjuta_plugin_description_to_string (AnjutaPluginDescription *df);

Converts the description detains into string format, usually for saving it in a file.

`df` : | an AnjutaPluginDescription object.
Returns : | The string representation of the description. The returned values must be freed after use.

## See Also

AnjutaPlugin, AnjutaPluginHandle