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

## Functions

gboolean | e_source_revision_guards_get_enabled ()
void | e_source_revision_guards_set_enabled ()

## Types and Values

#define | E_SOURCE_EXTENSION_REVISION_GUARDS
struct | ESourceRevisionGuards
struct | ESourceRevisionGuardsClass

## Includes

    #include <libedataserver/libedataserver.h>

## 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);

## Functions

### 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.

#### Parameters

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.

#### Parameters

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

Since 3.8

## Types and Values

### 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;
    };