## ESourceRevisionGuards ESourceRevisionGuards — ESource extension to configure revision guards |

## Synopsis

    #include <libedataserver/libedataserver.h>

    #define             E_SOURCE_EXTENSION_REVISION_GUARDS
    struct              ESourceRevisionGuards;
    struct              ESourceRevisionGuardsClass;
    gboolean            e_source_revision_guards_get_enabled
                                                            (ESourceRevisionGuards *extension);
    void                e_source_revision_guards_set_enabled
                                                            (ESourceRevisionGuards *extension,
                                                             gboolean enabled);

## Description

The ESourceRevisionGuards extension configures whether revisions should be checked on modified objects. If a modified object has a conflicting revision with an existing object, then an `E_CLIENT_ERROR_OUT_OF_SYNC` error should be produced for that object and the modification should be discarded.

Access the extension as follows:

    1
    2
    3
    4
    5
    #include <libedataserver/libedataserver.h>

    ESourceRevisionGuards *extension;

    extension = e_source_get_extension (source, E_SOURCE_EXTENSION_REVISION_GUARDS);

## Details

### E_SOURCE_EXTENSION_REVISION_GUARDS

    #define E_SOURCE_EXTENSION_REVISION_GUARDS "Revision Guards"

Pass this extension name to `e_source_get_extension()` to access ESourceRevisionGuards. This is also used as a group name in key files.

Since 3.8

### struct ESourceRevisionGuards

    struct ESourceRevisionGuards {
    	ESourceExtension parent;
    	ESourceRevisionGuardsPrivate *priv;
    };

Contains only private data that should be read and manipulated using the functions below.

Since 3.8

### struct ESourceRevisionGuardsClass

    struct ESourceRevisionGuardsClass {
    	ESourceExtensionClass parent_class;
    };

### e_source_revision_guards_get_enabled ()

    gboolean            e_source_revision_guards_get_enabled
                                                            (ESourceRevisionGuards *extension);

Checks whether revision guards for the given ESource are enabled.

`extension` : | An ESourceRevisionGuards
Returns : | `TRUE` if the revision guards are enabled.

Since 3.8

### e_source_revision_guards_set_enabled ()

    void                e_source_revision_guards_set_enabled
                                                            (ESourceRevisionGuards *extension,
                                                             gboolean enabled);

Enables or disables the revision guards for a given ESource.

Revision guards are disabled by default.

`extension` : | An ESourceRevisionGuards
`enabled` : | Whether to enable or disable the revision guards.

Since 3.8