Libical API Documentation 4.0 UNRELEASED Go to the stable 3.0 documentation
Loading...
Searching...
No Matches
icalset.h
Go to the documentation of this file.
1/*
2 SPDX-FileCopyrightText: 2000, Eric Busboom <eric@civicknowledge.com>
3 SPDX-License-Identifier: LGPL-2.1-only OR MPL-2.0
4
5 The Original Code is eric. The Initial Developer of the Original
6 Code is Eric Busboom
7*/
8
23
24#ifndef ICALSET_H
25#define ICALSET_H
26
27#include "libical_icalss_export.h"
28#include "icalgauge.h"
29#include "icalcomponent.h"
30#include "icalerror.h"
31
32typedef struct icalset_impl icalset;
33
43
44struct icalcompiter;
45typedef struct icalsetiter {
46 icalcompiter iter; /* icalcomponent_kind, icalpvl_elem iter */
47 icalgauge *gauge;
48 icalrecur_iterator *ritr; /*the last iterator */
49 icalcomponent *last_component; /*the pending recurring component to be processed */
50 const char *tzid; /* the calendar's timezone id */
52
54 icalset_kind kind;
55 size_t size;
56 char *dsn;
57 icalset *(*init)(icalset *set, const char *dsn, void *options);
58 void (*free)(icalset *set);
59 const char *(*path)(icalset *set);
60 void (*mark)(icalset *set);
61 icalerrorenum (*commit)(icalset *set);
62 icalerrorenum (*add_component)(icalset *set, icalcomponent *comp);
63 icalerrorenum (*remove_component)(icalset *set, icalcomponent *comp);
64 int (*count_components)(icalset *set, icalcomponent_kind kind);
65 icalerrorenum (*select)(icalset *set, icalgauge *gauge);
66 void (*clear)(icalset *set);
67 icalcomponent *(*fetch)(icalset *set, icalcomponent_kind kind, const char *uid);
68 icalcomponent *(*fetch_match)(icalset *set, const icalcomponent *comp);
69 int (*has_uid)(icalset *set, const char *uid);
70 icalerrorenum (*modify)(icalset *set, icalcomponent *old, icalcomponent *newc);
71 icalcomponent *(*get_current_component)(icalset *set);
72 icalcomponent *(*get_first_component)(icalset *set);
73 icalcomponent *(*get_next_component)(icalset *set);
74 icalsetiter (*icalset_begin_component)(icalset *set,
75 icalcomponent_kind kind, icalgauge *gauge,
76 const char *tzid);
77 icalcomponent *(*icalsetiter_to_next)(icalset *set, icalsetiter *i);
78 icalcomponent *(*icalsetiter_to_prior)(icalset *set, icalsetiter *i);
79};
80
88LIBICAL_ICALSS_EXPORT bool icalset_register_class(icalset *set);
89
101
102LIBICAL_ICALSS_EXPORT icalset *icalset_new(icalset_kind kind, const char *dsn, void *options);
103
104LIBICAL_ICALSS_EXPORT icalset *icalset_new_file(const char *path);
105
106LIBICAL_ICALSS_EXPORT icalset *icalset_new_file_reader(const char *path);
107
108LIBICAL_ICALSS_EXPORT icalset *icalset_new_file_writer(const char *path);
109
110LIBICAL_ICALSS_EXPORT icalset *icalset_new_dir(const char *path);
111
116LIBICAL_ICALSS_EXPORT void icalset_free(icalset *set);
117
118LIBICAL_ICALSS_EXPORT const char *icalset_path(icalset *set);
119
123LIBICAL_ICALSS_EXPORT void icalset_mark(icalset *set);
124
128LIBICAL_ICALSS_EXPORT icalerrorenum icalset_commit(icalset *set);
129
130LIBICAL_ICALSS_EXPORT icalerrorenum icalset_add_component(icalset *set, icalcomponent *comp);
131
132LIBICAL_ICALSS_EXPORT icalerrorenum icalset_remove_component(icalset *set, icalcomponent *comp);
133
134LIBICAL_ICALSS_EXPORT int icalset_count_components(icalset *set, icalcomponent_kind kind);
135
139LIBICAL_ICALSS_EXPORT icalerrorenum icalset_select(icalset *set, icalgauge *gauge);
140
144LIBICAL_ICALSS_EXPORT icalcomponent *icalset_fetch(icalset *set, const char *uid);
145
146LIBICAL_ICALSS_EXPORT int icalset_has_uid(icalset *set, const char *uid);
147
148LIBICAL_ICALSS_EXPORT icalcomponent *icalset_fetch_match(icalset *set, const icalcomponent *c);
149
154LIBICAL_ICALSS_EXPORT icalerrorenum icalset_modify(icalset *set,
155 icalcomponent *oldc, icalcomponent *newc);
156
161
169LIBICAL_ICALSS_EXPORT icalcomponent *icalset_get_current_component(icalset *set);
170
178LIBICAL_ICALSS_EXPORT icalcomponent *icalset_get_first_component(icalset *set);
179
187LIBICAL_ICALSS_EXPORT icalcomponent *icalset_get_next_component(icalset *set);
188
190LIBICAL_ICALSS_EXPORT extern icalsetiter icalsetiter_null;
191
192LIBICAL_ICALSS_EXPORT icalsetiter icalset_begin_component(icalset *set,
194 icalgauge *gauge, const char *tzid);
195
197LIBICAL_ICALSS_EXPORT icalcomponent *icalsetiter_next(icalsetiter *i);
198
199LIBICAL_ICALSS_EXPORT icalcomponent *icalsetiter_prior(icalsetiter *i);
200
201LIBICAL_ICALSS_EXPORT icalcomponent *icalsetiter_deref(icalsetiter *i);
202
204
205LIBICAL_ICALSS_EXPORT icalcomponent *icalsetiter_to_next(icalset *set, icalsetiter *i);
206
207LIBICAL_ICALSS_EXPORT icalcomponent *icalsetiter_to_prior(icalset *set, icalsetiter *i);
208
209#endif /* !ICALSET_H */
Defines the data structure for iCalendar components.
icalcomponent_kind
Definition icalenums.h:29
Error handling for libical.
icalerrorenum
Represents the different types of errors that can be triggered in libical.
Definition icalerror.h:42
Routines implementing a filter for ical components.
icalsetiter icalsetiter_null
Definition icalset.c:413
icalerrorenum icalset_select(icalset *set, icalgauge *gauge)
Definition icalset.c:368
void icalset_free(icalset *set)
Definition icalset.c:325
icalerrorenum icalset_commit(icalset *set)
Definition icalset.c:348
void icalset_mark(icalset *set)
Definition icalset.c:343
icalcomponent * icalsetiter_next(icalsetiter *i)
Definition icalset.c:421
icalset_kind
Definition icalset.h:38
@ ICAL_FILE_SET
Definition icalset.h:39
@ ICAL_BDB_SET
Definition icalset.h:41
@ ICAL_DIR_SET
Definition icalset.h:40
icalcomponent * icalset_get_current_component(icalset *set)
Definition icalset.c:398
icalcomponent * icalsetiter_to_next(icalset *set, icalsetiter *i)
Definition icalset.c:460
icalcomponent * icalset_get_first_component(icalset *set)
Definition icalset.c:403
bool icalset_register_class(icalset *set)
icalcomponent * icalset_fetch(icalset *set, const char *uid)
Definition icalset.c:378
icalcomponent * icalset_get_next_component(icalset *set)
Definition icalset.c:408
icalset * icalset_new(icalset_kind kind, const char *dsn, void *options)
Definition icalset.c:193
icalerrorenum icalset_modify(icalset *set, icalcomponent *oldc, icalcomponent *newc)
Definition icalset.c:393