ECalBackendSExp

ECalBackendSExp — A utility for comparing ECalComponents with search expressions.

Synopsis

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

struct              ECalBackendSExp;
struct              ECalBackendSExpClass;
ECalBackendSExp *   e_cal_backend_sexp_new              (const gchar *text);
const gchar *       e_cal_backend_sexp_text             (ECalBackendSExp *sexp);
gboolean            e_cal_backend_sexp_match_object     (ECalBackendSExp *sexp,
                                                         const gchar *object,
                                                         ETimezoneCache *cache);
gboolean            e_cal_backend_sexp_match_comp       (ECalBackendSExp *sexp,
                                                         ECalComponent *comp,
                                                         ETimezoneCache *cache);
ESExpResult *       e_cal_backend_sexp_func_time_now    (ESExp *esexp,
                                                         gint argc,
                                                         ESExpResult **argv,
                                                         gpointer data);
ESExpResult *       e_cal_backend_sexp_func_make_time   (ESExp *esexp,
                                                         gint argc,
                                                         ESExpResult **argv,
                                                         gpointer data);
ESExpResult *       e_cal_backend_sexp_func_time_add_day
                                                        (ESExp *esexp,
                                                         gint argc,
                                                         ESExpResult **argv,
                                                         gpointer data);
ESExpResult *       e_cal_backend_sexp_func_time_day_begin
                                                        (ESExp *esexp,
                                                         gint argc,
                                                         ESExpResult **argv,
                                                         gpointer data);
ESExpResult *       e_cal_backend_sexp_func_time_day_end
                                                        (ESExp *esexp,
                                                         gint argc,
                                                         ESExpResult **argv,
                                                         gpointer data);
gboolean            e_cal_backend_sexp_evaluate_occur_times
                                                        (ECalBackendSExp *sexp,
                                                         time_t *start,
                                                         time_t *end);

Description

This API is an all purpose utility for comparing ECalComponents with search expressions and is used by various backends to implement component filtering and searching.

Details

struct ECalBackendSExp

struct ECalBackendSExp {
};

struct ECalBackendSExpClass

struct ECalBackendSExpClass {
};

e_cal_backend_sexp_new ()

ECalBackendSExp *   e_cal_backend_sexp_new              (const gchar *text);

e_cal_backend_sexp_text ()

const gchar *       e_cal_backend_sexp_text             (ECalBackendSExp *sexp);

Retrieve the text expression for the given ECalBackendSExp object.

sexp :

An ECalBackendSExp object.

Returns :

the text expression

e_cal_backend_sexp_match_object ()

gboolean            e_cal_backend_sexp_match_object     (ECalBackendSExp *sexp,
                                                         const gchar *object,
                                                         ETimezoneCache *cache);

Checks if object matches sexp.

sexp :

An ESExp object.

object :

An iCalendar string.

cache :

an ETimezoneCache

Returns :

TRUE if the object matches, FALSE otherwise

e_cal_backend_sexp_match_comp ()

gboolean            e_cal_backend_sexp_match_comp       (ECalBackendSExp *sexp,
                                                         ECalComponent *comp,
                                                         ETimezoneCache *cache);

Checks if comp matches sexp.

sexp :

An ESExp object.

comp :

Component to match against the expression.

cache :

an ETimezoneCache

Returns :

TRUE if the component matches, FALSE otherwise

e_cal_backend_sexp_func_time_now ()

ESExpResult *       e_cal_backend_sexp_func_time_now    (ESExp *esexp,
                                                         gint argc,
                                                         ESExpResult **argv,
                                                         gpointer data);

Processes the (time-now) sexp expression.

esexp :

An ESExp object.

argc :

Number of arguments.

argv :

The arguments.

data :

Closure data.

Returns :

The result of the function.

e_cal_backend_sexp_func_make_time ()

ESExpResult *       e_cal_backend_sexp_func_make_time   (ESExp *esexp,
                                                         gint argc,
                                                         ESExpResult **argv,
                                                         gpointer data);

(make-time ISODATE) ISODATE - string, ISO 8601 date/time representation

Constructs a time_t value for the specified date.

esexp :

An ESExp object.

argc :

Number of arguments.

argv :

The arguments.

data :

Closure data.

Returns :

The result of the function.

e_cal_backend_sexp_func_time_add_day ()

ESExpResult *       e_cal_backend_sexp_func_time_add_day
                                                        (ESExp *esexp,
                                                         gint argc,
                                                         ESExpResult **argv,
                                                         gpointer data);

(time-add-day TIME N) TIME - time_t, base time N - int, number of days to add

Adds the specified number of days to a time value.

FIXME: TIMEZONES - need to use a timezone or daylight saving changes will make the result incorrect.

esexp :

An ESExp object.

argc :

Number of arguments.

argv :

The arguments.

data :

Closure data.

Returns :

The result of the function.

e_cal_backend_sexp_func_time_day_begin ()

ESExpResult *       e_cal_backend_sexp_func_time_day_begin
                                                        (ESExp *esexp,
                                                         gint argc,
                                                         ESExpResult **argv,
                                                         gpointer data);

(time-day-begin TIME) TIME - time_t, base time

Returns the start of the day, according to the local time.

FIXME: TIMEZONES - this uses the current Unix timezone.

esexp :

An ESExp object.

argc :

Number of arguments.

argv :

The arguments.

data :

Closure data.

Returns :

The result of the function.

e_cal_backend_sexp_func_time_day_end ()

ESExpResult *       e_cal_backend_sexp_func_time_day_end
                                                        (ESExp *esexp,
                                                         gint argc,
                                                         ESExpResult **argv,
                                                         gpointer data);

(time-day-end TIME) TIME - time_t, base time

Returns the end of the day, according to the local time.

FIXME: TIMEZONES - this uses the current Unix timezone.

esexp :

An ESExp object.

argc :

Number of arguments.

argv :

The arguments.

data :

Closure data.

Returns :

The result of the function.

e_cal_backend_sexp_evaluate_occur_times ()

gboolean            e_cal_backend_sexp_evaluate_occur_times
                                                        (ECalBackendSExp *sexp,
                                                         time_t *start,
                                                         time_t *end);

Determines biggest time window given by expressions "occur-in-range" in sexp.

sexp :

An ESExp object.

start :

Start of the time window will be stored here.

end :

End of the time window will be stored here.

Since 2.32