$darkmode
Libical API Documentation 4.0 STABLE VERSION Visit the v3.0 documentation
icaldirset.h
Go to the documentation of this file.
1 /*======================================================================
2  FILE: icaldirset.h
3  CREATOR: eric 28 November 1999
4 
5  SPDX-FileCopyrightText: 2000, Eric Busboom <eric@civicknowledge.com>
6  SPDX-License-Identifier: LGPL-2.1-only OR MPL-2.0
7 
8  The Original Code is eric. The Initial Developer of the Original
9  Code is Eric Busboom
10 ======================================================================*/
11 
37 #ifndef ICALDIRSET_H
38 #define ICALDIRSET_H
39 
40 #include "libical_icalss_export.h"
41 #include "icalset.h"
42 
43 /* icaldirset Routines for storing, fetching, and searching for ical
44  * objects in a database */
45 
46 typedef struct icaldirset_impl icaldirset;
47 
48 LIBICAL_ICALSS_EXPORT icalset *icaldirset_new(const char *dir);
49 
50 LIBICAL_ICALSS_EXPORT icalset *icaldirset_new_reader(const char *dir);
51 
52 LIBICAL_ICALSS_EXPORT icalset *icaldirset_new_writer(const char *dir);
53 
54 LIBICAL_ICALSS_EXPORT icalset *icaldirset_init(icalset *set, const char *dir, void *options_in);
55 
56 LIBICAL_ICALSS_EXPORT void icaldirset_free(icalset *set);
57 
58 LIBICAL_ICALSS_EXPORT const char *icaldirset_path(icalset *set);
59 
60 /* Marks the cluster as changed, so it will be written to disk when it
61  is freed. Commit writes to disk immediately*/
62 LIBICAL_ICALSS_EXPORT void icaldirset_mark(icalset *set);
63 
64 LIBICAL_ICALSS_EXPORT icalerrorenum icaldirset_commit(icalset *set);
65 
78 LIBICAL_ICALSS_EXPORT icalerrorenum icaldirset_add_component(icalset *set, icalcomponent *comp);
79 
91 LIBICAL_ICALSS_EXPORT icalerrorenum icaldirset_remove_component(icalset *set,
92  icalcomponent *comp);
93 
94 LIBICAL_ICALSS_EXPORT int icaldirset_count_components(icalset *store, icalcomponent_kind kind);
95 
96 /* Restricts the component returned by icaldirset_first, _next to those
97  that pass the gauge. _clear removes the gauge. */
98 LIBICAL_ICALSS_EXPORT icalerrorenum icaldirset_select(icalset *set, icalgauge *gauge);
99 
100 LIBICAL_ICALSS_EXPORT void icaldirset_clear(icalset *set);
101 
102 /* Gets a component by uid */
103 LIBICAL_ICALSS_EXPORT icalcomponent *icaldirset_fetch(icalset *set,
104  icalcomponent_kind kind, const char *uid);
105 
106 LIBICAL_ICALSS_EXPORT int icaldirset_has_uid(icalset *set, const char *uid);
107 
108 LIBICAL_ICALSS_EXPORT icalcomponent *icaldirset_fetch_match(icalset *set, const icalcomponent *c);
109 
110 /* Modifies components according to the MODIFY method of CAP. Works on
111  the currently selected components. */
112 LIBICAL_ICALSS_EXPORT icalerrorenum icaldirset_modify(icalset *set,
113  icalcomponent *oldcomp, icalcomponent *newcomp);
114 
115 /* Iterates through the components. If a gauge has been defined, these
116  will skip over components that do not pass the gauge */
117 
118 LIBICAL_ICALSS_EXPORT icalcomponent *icaldirset_get_current_component(icalset *set);
119 
120 LIBICAL_ICALSS_EXPORT icalcomponent *icaldirset_get_first_component(icalset *set);
121 
122 LIBICAL_ICALSS_EXPORT icalcomponent *icaldirset_get_next_component(icalset *set);
123 
124 /* External iterator for thread safety */
125 LIBICAL_ICALSS_EXPORT icalsetiter icaldirset_begin_component(icalset *set,
126  icalcomponent_kind kind,
127  icalgauge *gauge, const char *tzid);
128 
129 LIBICAL_ICALSS_EXPORT icalcomponent *icaldirsetiter_to_next(icalset *set, icalsetiter *i);
130 
131 LIBICAL_ICALSS_EXPORT icalcomponent *icaldirsetiter_to_prior(icalset *set, icalsetiter *i);
132 
133 typedef struct icaldirset_options {
134  int flags;
136 
137 #endif /* !ICALDIRSET_H */
Icalset is the "base class" for representations of a collection of iCal components.
icalerrorenum
Represents the different types of errors that can be triggered in libical.
Definition: icalerror.h:41
icalerrorenum icaldirset_remove_component(icalset *set, icalcomponent *comp)
Definition: icaldirset.c:371
icalerrorenum icaldirset_add_component(icalset *set, icalcomponent *comp)
Definition: icaldirset.c:293
icalcomponent_kind
Definition: icalenums.h:28