## EDataCalView

EDataCalView — A server side object for issuing view notifications

## Synopsis

    #include <libedata-cal/libedata-cal.h>

    struct              EDataCalView;
    struct              EDataCalViewClass;
    EDataCalView *      e_data_cal_view_new                 (struct _ECalBackend *backend,
                                                             struct _ECalBackendSExp *sexp,
                                                             GDBusConnection *connection,
                                                             const gchar *object_path,
                                                             GError **error);
    struct _ECalBackend * e_data_cal_view_get_backend       (EDataCalView *view);
    GDBusConnection *   e_data_cal_view_get_connection      (EDataCalView *view);
    const gchar *       e_data_cal_view_get_object_path     (EDataCalView *view);
    struct _ECalBackendSExp * e_data_cal_view_get_sexp      (EDataCalView *view);
    gboolean            e_data_cal_view_object_matches      (EDataCalView *view,
                                                             const gchar *object);
    gboolean            e_data_cal_view_component_matches   (EDataCalView *view,
                                                             ECalComponent *component);
    gboolean            e_data_cal_view_is_started          (EDataCalView *view);
    gboolean            e_data_cal_view_is_completed        (EDataCalView *view);
    gboolean            e_data_cal_view_is_stopped          (EDataCalView *view);
    GHashTable *        e_data_cal_view_get_fields_of_interest
                                                            (EDataCalView *view);
    ECalClientViewFlags e_data_cal_view_get_flags           (EDataCalView *view);
    gchar *             e_data_cal_view_get_component_string
                                                            (EDataCalView *view,
                                                             ECalComponent *component);
    void                e_data_cal_view_notify_components_added
                                                            (EDataCalView *view,
                                                             const GSList *ecalcomponents);
    void                e_data_cal_view_notify_components_added_1
                                                            (EDataCalView *view,
                                                             ECalComponent *component);
    void                e_data_cal_view_notify_components_modified
                                                            (EDataCalView *view,
                                                             const GSList *ecalcomponents);
    void                e_data_cal_view_notify_components_modified_1
                                                            (EDataCalView *view,
                                                             ECalComponent *component);
    void                e_data_cal_view_notify_objects_removed
                                                            (EDataCalView *view,
                                                             const GSList *ids);
    void                e_data_cal_view_notify_objects_removed_1
                                                            (EDataCalView *view,
                                                             const ECalComponentId *id);
    void                e_data_cal_view_notify_progress     (EDataCalView *view,
                                                             gint percent,
                                                             const gchar *message);
    void                e_data_cal_view_notify_complete     (EDataCalView *view,
                                                             const GError *error);

## Description

This class communicates with ECalClientViews over the bus.

Calendar backends can automatically own a number of views requested by the client, this API can be used by the backend to issue notifications which will be delivered to the ECalClientView

## Details

### struct EDataCalView

    struct EDataCalView {
    	GObject parent;
    	EDataCalViewPrivate *priv;
    };

### struct EDataCalViewClass

    struct EDataCalViewClass {
    	GObjectClass parent_class;
    };

### e_data_cal_view_new ()

    EDataCalView *      e_data_cal_view_new                 (struct _ECalBackend *backend,
                                                             struct _ECalBackendSExp *sexp,
                                                             GDBusConnection *connection,
                                                             const gchar *object_path,
                                                             GError **error);

Creates a new EDataCalView and exports its D-Bus interface on `connection` at `object_path`. If an error occurs while exporting, the function sets `error` and returns `NULL`.

`backend` : | an ECalBackend
`sexp` : | an ECalBackendSExp
`connection` : | a GDBusConnection
`object_path` : | an object path for the view
`error` : | return location for a GError, or `NULL`
Returns : | an EDataCalView

### e_data_cal_view_get_backend ()

    struct _ECalBackend * e_data_cal_view_get_backend       (EDataCalView *view);

Gets the backend that `view` is querying.

`view` : | an EDataCalView
Returns : | The associated ECalBackend.

Since 3.8

### e_data_cal_view_get_connection ()

    GDBusConnection *   e_data_cal_view_get_connection      (EDataCalView *view);

Returns the GDBusConnection on which the CalendarView D-Bus interface is exported.

`view` : | an EDataCalView
Returns : | the GDBusConnection

Since 3.8

### e_data_cal_view_get_object_path ()

    const gchar *       e_data_cal_view_get_object_path     (EDataCalView *view);

Return the object path at which the CalendarView D-Bus inteface is exported.

`view` : | an EDataCalView
Returns : | the object path

Since 3.8

### e_data_cal_view_get_sexp ()

    struct _ECalBackendSExp * e_data_cal_view_get_sexp      (EDataCalView *view);

Get the ECalBackendSExp object used for the given view.

`view` : | an EDataCalView
Returns : | The expression object used to search.

Since 3.8

### e_data_cal_view_object_matches ()

    gboolean            e_data_cal_view_object_matches      (EDataCalView *view,
                                                             const gchar *object);

Compares the given `object` to the regular expression used for the given view.

`view` : | an EDataCalView
`object` : | Object to match.
Returns : | TRUE if the object matches the expression, FALSE if not.

### e_data_cal_view_component_matches ()

    gboolean            e_data_cal_view_component_matches   (EDataCalView *view,
                                                             ECalComponent *component);

Compares the given `component` to the regular expression used for the given view.

`view` : | an EDataCalView
`component` : | the ECalComponent object to match.
Returns : | TRUE if the object matches the expression, FALSE if not.

Since 3.4

### e_data_cal_view_is_started ()

    gboolean            e_data_cal_view_is_started          (EDataCalView *view);

Checks whether the given view has already been started.

`view` : | an EDataCalView
Returns : | TRUE if the view has already been started, FALSE otherwise.

### e_data_cal_view_is_completed ()

    gboolean            e_data_cal_view_is_completed        (EDataCalView *view);

Checks whether the given view is already completed. Being completed means the initial matching of objects have been finished, not that no more notifications about changes will be sent. In fact, even after completed, notifications will still be sent if there are changes in the objects matching the view search expression.

`view` : | an EDataCalView
Returns : | TRUE if the view is completed, FALSE if still in progress.

Since 3.2

### e_data_cal_view_is_stopped ()

    gboolean            e_data_cal_view_is_stopped          (EDataCalView *view);

Checks whether the given view has been stopped.

`view` : | an EDataCalView
Returns : | TRUE if the view has been stopped, FALSE otherwise.

Since 2.32

### e_data_cal_view_get_fields_of_interest ()

    GHashTable *        e_data_cal_view_get_fields_of_interest
                                                            (EDataCalView *view);

`view` : | an EDataCalView
Returns : | Hash table of field names which the listener is interested in. Backends can return fully populated objects, but the listener advertised that it will use only these. Returns `NULL` for all available fields. Note: The data pointer in the hash table has no special meaning, it's only GINT_TO_POINTER(1) for easier checking. Also, field names are compared case insensitively.

Since 3.2

### e_data_cal_view_get_flags ()

    ECalClientViewFlags e_data_cal_view_get_flags           (EDataCalView *view);

Gets the ECalClientViewFlags that control the behaviour of `view`.

`view` : | an EDataCalView
Returns : | the flags for `view`.

Since 3.6

### e_data_cal_view_get_component_string ()

    gchar *             e_data_cal_view_get_component_string
                                                            (EDataCalView *view,
                                                             ECalComponent *component);

This function is similar to `e_cal_component_get_as_string()` except that it takes into account the fields-of-interest that `view` is configured with and filters out any unneeded fields.

`view` : | an EDataCalView
`component` : | The ECalComponent to get the string for.
Returns : | A newly allocated string representation of `component` suitable for `view`. [transfer full]

Since 3.4

### e_data_cal_view_notify_components_added ()

    void                e_data_cal_view_notify_components_added
                                                            (EDataCalView *view,
                                                             const GSList *ecalcomponents);

Notifies all view listeners of the addition of a list of components.

Like `e_data_cal_view_notify_objects_added()` except takes a list of ECalComponent-s instead of ical string representations and uses the EDataCalView's fields-of-interest to filter out unwanted information from ical strings sent over the bus.

`view` : | an EDataCalView
`ecalcomponents` : | List of ECalComponent-s that have been added.

Since 3.4

### e_data_cal_view_notify_components_added_1 ()

    void                e_data_cal_view_notify_components_added_1
                                                            (EDataCalView *view,
                                                             ECalComponent *component);

Notifies all the view listeners of the addition of a single object.

Like `e_data_cal_view_notify_objects_added_1()` except takes an ECalComponent instead of an ical string representation and uses the EDataCalView's fields-of-interest to filter out unwanted information from ical strings sent over the bus.

`view` : | an EDataCalView
`component` : | The ECalComponent that has been added.

Since 3.4

### e_data_cal_view_notify_components_modified ()

    void                e_data_cal_view_notify_components_modified
                                                            (EDataCalView *view,
                                                             const GSList *ecalcomponents);

Notifies all view listeners of the modification of a list of components.

Like `e_data_cal_view_notify_objects_modified()` except takes a list of ECalComponents instead of a ical string representations and uses the EDataCalView's fields-of-interest to filter out unwanted information from ical strings sent over the bus.

`view` : | an EDataCalView
`ecalcomponents` : | List of modified ECalComponent-s.

Since 3.4

### e_data_cal_view_notify_components_modified_1 ()

    void                e_data_cal_view_notify_components_modified_1
                                                            (EDataCalView *view,
                                                             ECalComponent *component);

Notifies all view listeners of the modification of `component`.

Like `e_data_cal_view_notify_objects_modified_1()` except takes an ECalComponent instead of an ical string representation and uses the EDataCalView's fields-of-interest to filter out unwanted information from ical strings sent over the bus.

`view` : | an EDataCalView
`component` : | The modified ECalComponent.

Since 3.4

### e_data_cal_view_notify_objects_removed ()

    void                e_data_cal_view_notify_objects_removed
                                                            (EDataCalView *view,
                                                             const GSList *ids);

Notifies all view listener of the removal of a list of objects.

`view` : | an EDataCalView
`ids` : | List of IDs for the objects that have been removed.

### e_data_cal_view_notify_objects_removed_1 ()

    void                e_data_cal_view_notify_objects_removed_1
                                                            (EDataCalView *view,
                                                             const ECalComponentId *id);

Notifies all view listener of the removal of a single object.

`view` : | an EDataCalView
`id` : | ID of the removed object.

### e_data_cal_view_notify_progress ()

    void                e_data_cal_view_notify_progress     (EDataCalView *view,
                                                             gint percent,
                                                             const gchar *message);

Notifies all view listeners of progress messages.

`view` : | an EDataCalView
`percent` : | Percentage completed.
`message` : | Progress message to send to listeners.

### e_data_cal_view_notify_complete ()

    void                e_data_cal_view_notify_complete     (EDataCalView *view,
                                                             const GError *error);

Notifies all view listeners of the completion of the view, including a status code.

`view` : | an EDataCalView
`error` : | View completion error, if any.

Since 3.2