70 #include "libical_ical_export.h" 78 typedef enum icalrecurrencetype_frequency
83 ICAL_SECONDLY_RECURRENCE = 0,
84 ICAL_MINUTELY_RECURRENCE = 1,
85 ICAL_HOURLY_RECURRENCE = 2,
86 ICAL_DAILY_RECURRENCE = 3,
87 ICAL_WEEKLY_RECURRENCE = 4,
88 ICAL_MONTHLY_RECURRENCE = 5,
89 ICAL_YEARLY_RECURRENCE = 6,
90 ICAL_NO_RECURRENCE = 7
91 } icalrecurrencetype_frequency;
93 typedef enum icalrecurrencetype_weekday
99 ICAL_WEDNESDAY_WEEKDAY,
100 ICAL_THURSDAY_WEEKDAY,
102 ICAL_SATURDAY_WEEKDAY
103 } icalrecurrencetype_weekday;
105 typedef enum icalrecurrencetype_skip
107 ICAL_SKIP_BACKWARD = 0,
111 } icalrecurrencetype_skip;
113 enum icalrecurrence_array_max_values
115 ICAL_RECURRENCE_ARRAY_MAX = 0x7f7f,
116 ICAL_RECURRENCE_ARRAY_MAX_BYTE = 0x7f
123 LIBICAL_ICAL_EXPORT icalrecurrencetype_frequency icalrecur_string_to_freq(
const char *str);
124 LIBICAL_ICAL_EXPORT
const char *icalrecur_freq_to_string(icalrecurrencetype_frequency kind);
126 LIBICAL_ICAL_EXPORT icalrecurrencetype_skip icalrecur_string_to_skip(
const char *str);
127 LIBICAL_ICAL_EXPORT
const char *icalrecur_skip_to_string(icalrecurrencetype_skip kind);
129 LIBICAL_ICAL_EXPORT
const char *icalrecur_weekday_to_string(icalrecurrencetype_weekday kind);
130 LIBICAL_ICAL_EXPORT icalrecurrencetype_weekday icalrecur_string_to_weekday(
const char *str);
141 #define ICAL_BY_SECOND_SIZE 62 142 #define ICAL_BY_MINUTE_SIZE 61 143 #define ICAL_BY_HOUR_SIZE 25 144 #define ICAL_BY_MONTH_SIZE 14 145 #define ICAL_BY_MONTHDAY_SIZE 32 146 #define ICAL_BY_WEEKNO_SIZE 56 147 #define ICAL_BY_YEARDAY_SIZE 386 148 #define ICAL_BY_SETPOS_SIZE ICAL_BY_YEARDAY_SIZE 149 #define ICAL_BY_DAY_SIZE 7*(ICAL_BY_WEEKNO_SIZE-1)+1 154 icalrecurrencetype_frequency freq;
162 icalrecurrencetype_weekday week_start;
174 short by_minute[ICAL_BY_MINUTE_SIZE];
175 short by_hour[ICAL_BY_HOUR_SIZE];
176 short by_day[ICAL_BY_DAY_SIZE];
177 short by_month_day[ICAL_BY_MONTHDAY_SIZE];
178 short by_year_day[ICAL_BY_YEARDAY_SIZE];
179 short by_week_no[ICAL_BY_WEEKNO_SIZE];
180 short by_month[ICAL_BY_MONTH_SIZE];
181 short by_set_pos[ICAL_BY_SETPOS_SIZE];
185 icalrecurrencetype_skip skip;
188 LIBICAL_ICAL_EXPORT
int icalrecurrencetype_rscale_is_supported(
void);
190 LIBICAL_ICAL_EXPORT
icalarray *icalrecurrencetype_rscale_supported_calendars(
void);
217 LIBICAL_ICAL_EXPORT
int icalrecurrencetype_month_month(
short month);
224 LIBICAL_ICAL_EXPORT
char *icalrecurrencetype_as_string(
struct icalrecurrencetype *recur);
226 LIBICAL_ICAL_EXPORT
char *icalrecurrencetype_as_string_r(
struct icalrecurrencetype *recur);
255 int count, time_t *array);
struct icalrecurrencetype icalrecurrencetype_from_string(const char *str)
Definition: icalrecur.c:545
int icalrecur_expand_recurrence(const char *rule, time_t start, int count, time_t *array)
Definition: icalrecur.c:3046
void icalrecur_iterator_free(icalrecur_iterator *)
Definition: icalrecur.c:1907
struct icaltimetype icalrecur_iterator_next(icalrecur_iterator *)
Definition: icalrecur.c:2750
struct icaltimetype is a pseudo-object that abstracts time handling.
Definition: icalarray.h:35
#define ICAL_BY_SECOND_SIZE
Definition: icalrecur.h:141
int icalrecur_iterator_set_start(icalrecur_iterator *impl, struct icaltimetype start)
Definition: icalrecur.c:2953
int month
Definition: icaltime.h:108
enum icalrecurrencetype_weekday icalrecurrencetype_day_day_of_week(short day)
Definition: icalrecur.c:3006
Definition: icaltime.h:105
icalrecur_iterator * icalrecur_iterator_new(struct icalrecurrencetype rule, struct icaltimetype dtstart)
Definition: icalrecur.c:1794
Definition: icalrecur.h:152
int icalrecurrencetype_day_position(short day)
Definition: icalrecur.c:3011
An array of arbitrarily-sized elements which grows dynamically as elements are added.
Definition: icalrecur.c:825
int icalrecurrencetype_month_is_leap(short month)
Definition: icalrecur.c:3030